@charset "utf-8";

/* 카드 선택모드 UI */
  #blogGrid.select-mode .blog-card {
    filter: grayscale(10%) opacity(0.9);
    transition: filter .2s ease;
  }
  #blogGrid .blog-card .card-select {
    position:absolute; top:.5rem; left:.5rem; z-index:3;
    display:none;
  }
  #blogGrid.select-mode .blog-card .card-select { display:block !important; }
  #blogGrid.select-mode .blog-card a { pointer-events:none; } /* 선택모드에서 카드 클릭 방지 */

  /* 센티넬 로더 */
  .infinite-sentinel .htmx-indicator { display:none; }
  .infinite-sentinel.htmx-request .htmx-indicator { display:inline-block; }

  /* 제목 말줄임 */
  .subject-ellipsis{ display:-webkit-box; -webkit-line-clamp:2;line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

  /* list.skin.php의 style.css 등에 추가 */
#blogWrap.blog-stabilize {
  min-height: var(--prev-height, 0px); /* JS가 기존 높이를 넣어줌 */
}

/* 이미지가 로드되기 전에 자리부터 확보 */
.blog-card .card-img {
  aspect-ratio: 4 / 3;   /* GRID_W:GRID_H 비율(예: 800:600) */
  object-fit: cover;
  width: 100%;
  height: auto;           /* 브라우저가 공간을 먼저 잡아둡니다 */
  display: block;
}

/* 무한 스크롤 센티넬의 최소 높이(로딩때 줄어드는 걸 방지) */
.infinite-sentinel { min-height: 56px; }

/* 크롬의 자동 스크롤 앵커링 끄기(가끔 튀는 것 보정) */
#blogWrap { overflow-anchor: none; }