/* v1.7 — full (uncropped) poster images everywhere + paginated / infinite grids.
   All thumbnails are square 1024×1024 infographic posters, so every image box is 1:1 and object-fit:contain. */
.poster-img{position:relative;aspect-ratio:1/1;background:#f3f5f8;overflow:hidden;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0}
.poster-img img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;transform:none!important;transition:transform .5s ease}
.poster-card:hover .poster-img img{transform:scale(1.02)!important}
.poster-card{overflow:hidden}
.poster-card .card-body{padding:.75rem .85rem .9rem}
.poster-card h3{font-size:.98rem;line-height:1.25;margin-bottom:.25rem}
.line-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-grid>[class*=col-]{display:flex}.card-grid>[class*=col-]>.card{width:100%}
.card-grid .is-new{animation:cgIn .45s ease both}
@keyframes cgIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* mini poster tiles (sidebar, recently updated, popular) */
.mini-grid-2,.mini-grid-3{display:grid;gap:.75rem}
.mini-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mini-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mini-card{display:flex;flex-direction:column;gap:.4rem;color:var(--sn-ink,#162026);text-decoration:none;border-radius:12px;padding:.35rem;transition:background .2s,transform .2s}
.mini-card:hover{background:#f1f8f8;transform:translateY(-2px)}
.mini-card img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;border-radius:10px;background:#f3f5f8;display:block}
.mini-card strong{display:block;font-size:.85rem;line-height:1.2}
.mini-card small{display:block;font-size:.72rem;color:#6c757d;text-transform:capitalize}
.sticky-side{position:static!important}

/* profile + post main image: full poster */
.portrait img{aspect-ratio:1/1!important;width:100%;height:auto!important;object-fit:contain!important;background:#f3f5f8}
.post-cover{max-width:720px;margin-left:auto;margin-right:auto}
.post-cover img{aspect-ratio:1/1;width:100%;height:auto;object-fit:contain;background:#f3f5f8}
.suggest-box img{width:40px!important;height:40px!important;aspect-ratio:1/1;object-fit:contain!important}
.prose img{max-width:100%;height:auto}

/* pagination + infinite scroll */
.pager-nav .pagination{gap:.25rem}
.pager-nav .page-item.disabled .page-link{background:transparent;box-shadow:none;color:#9aa4ab}
.pager-status{margin-top:.4rem}
.infinite-loader{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem 0;color:#56646c;font-size:.9rem}
.infinite-loader i{width:18px;height:18px;border-radius:50%;border:2px solid #cfe9e8;border-top-color:var(--sn-teal,#0fa3a3);animation:cgSpin .8s linear infinite}
@keyframes cgSpin{to{transform:rotate(360deg)}}
.filters .form-select{min-width:150px}

@media(max-width:575.98px){
  .poster-card .card-body{padding:.55rem .6rem .7rem}
  .poster-card h3{font-size:.88rem}
  .poster-card .chip{font-size:.66rem;padding:.1rem .45rem}
  .poster-card p.line-2{font-size:.74rem}
  .mini-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
  .filters .form-select{min-width:0;flex:1 1 40%}
  .pager-nav .page-link{padding:.3rem .55rem;font-size:.85rem}
}
@media(prefers-reduced-motion:reduce){.card-grid .is-new{animation:none}}
