/**
 * 공통 스타일 — index.html, article.html에서 공유
 */
body {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

/* 라이트 모드 */
html:not(.dark) body { background: #f8f9fb; color: #1a1a2e; }
html:not(.dark) .card-bg { background: #fff; }

/* 카드 hover */
.news-card {
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.news-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
html:not(.dark) .news-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

/* 필터 칩 */
.filter-chip {
  transition: all 0.15s ease;
}
.filter-chip:hover {
  opacity: 0.85;
}
.filter-chip.active {
  ring: 2px;
}

/* 스크롤바 */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
.dark ::-webkit-scrollbar-thumb { background: #2e3039; border-radius: 3px; }
html:not(.dark) ::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }

/* 로딩 애니메이션 */
@keyframes pulse-fade {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}
.loading-pulse {
  animation: pulse-fade 1.5s ease-in-out infinite;
}

/* 카테고리 뱃지 */
.badge-backend { background: rgba(34,211,238,0.15); color: #22d3ee; }
.badge-frontend { background: rgba(167,139,250,0.15); color: #a78bfa; }
.badge-general { background: rgba(251,191,36,0.15); color: #fbbf24; }

html:not(.dark) .badge-backend { background: rgba(34,211,238,0.12); color: #0e7490; }
html:not(.dark) .badge-frontend { background: rgba(167,139,250,0.12); color: #6d28d9; }
html:not(.dark) .badge-general { background: rgba(251,191,36,0.12); color: #a16207; }
