:root {
  --paper: #f9fafb; --paper-light: #ffffff; --ink: #111827; --muted: #6b7280;
  --accent: #111827; --rule: #e5e7eb; --gold: #6b7280;
  --font-title: "Pretendard Variable", "Pretendard", system-ui, sans-serif;
  --font-body: "Pretendard Variable", "Pretendard", system-ui, sans-serif;
  --bs-body-bg: #f9fafb; --bs-body-color: #111827; --bs-body-font-family: var(--font-body); --bs-border-color: #e5e7eb;
}
html, body, button, input, select, textarea { font-family: var(--font-body); }
html { height: 100%; overscroll-behavior: none; }
body { color: #111827; background: #f9fafb; min-height: 100%; touch-action: manipulation; overscroll-behavior: none; }
h1, h2, h3, .page-title, .section-title, .poster-heading, .empty-title { font-family: var(--font-body); }
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }
a, a:hover { color: #111827; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea { border-color: #d1d5db; border-radius: .75rem; color: #111827; background: #ffffff; }
.button { border-color: #111827; border-radius: 9999px; }
.button-primary, .button-primary:hover { color: #ffffff; background: #111827; }
.button-secondary { color: #111827; background: #ffffff; }
.button-secondary:hover { color: #000000; background: #f3f4f6; }
.filter-panel, .form-panel, .empty-state, .review-card, .stat-card { border-color: #e5e7eb; border-radius: 1.25rem; background: #ffffff; box-shadow: 0 1px 2px rgb(0 0 0 / .05); }
.badge, .badge-muted, .badge-demo, .badge-ending { border-radius: 9999px; color: #374151; background: #f3f4f6; }
.badge-notice { background: #111827; color: #fff; font-weight: 700; }
.rating { color: #374151; }
.board-list .badge-category { padding: 5px 9px; border: 1px solid transparent; border-radius: 9999px; font-size: .75rem; font-weight: 500; line-height: 1.25; }
.board-list .badge-category-review { border-color: #dbeafe; background: #eff6ff; color: #2563eb; }
.board-list .badge-category-companion { border-color: #ffedd5; background: #fff7ed; color: #ea580c; }
.board-list .badge-category-free { border-color: #ede9fe; background: #f5f3ff; color: #7c3aed; }
.board-list .badge-category-question { border-color: #d1fae5; background: #ecfdf5; color: #059669; }
.board-list .badge-category-notice { border-color: #e2e8f0; background: #f8fafc; color: #475569; }
.board-list .board-rating-separator { margin-inline: 2px; color: #cbd5e1; }
.board-list .board-rating { color: #d97706; font-size: .875rem; font-weight: 600; }
.board-list .board-row { padding-inline: 16px; transition: background-color .2s ease; }
.board-list .board-row:hover { background: rgb(248 250 252 / 80%); }
.board-list .board-exhibition-link { color: #475569; font-weight: 500; text-decoration: none; }
.board-list .board-exhibition-link:hover, .board-list .board-exhibition-link:focus-visible { color: #0f172a; text-decoration: underline; }
.poster-placeholder, .exhibition-card:nth-child(4n+2) .poster-placeholder, .exhibition-card:nth-child(4n+3) .poster-placeholder, .exhibition-card:nth-child(4n+4) .poster-placeholder { color: #ffffff; background: #18181b; border-color: #27272a; }
.exhibition-card-title {
  display: -webkit-box;
  height: 2.5rem;
  overflow: hidden;
  font-size: .875rem !important;
  font-weight: 700;
  line-height: 1.25rem !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.exhibition-card-title > a { display: block; font: inherit; color: inherit; }
.region-grid {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: .5rem;
}
.region-grid > a {
  display: flex;
  min-width: 0;
  min-height: 2rem;
  align-items: center;
  justify-content: center;
  padding-inline: .125rem;
  font-size: .625rem;
  line-height: 1rem;
  text-align: center;
}
@media (min-width: 640px) {
  .region-grid > a { min-height: 2.5rem; padding-inline: .25rem; font-size: .75rem; }
}
@media (min-width: 1024px) {
  .region-grid > a { padding-inline: .5rem; font-size: .875rem; }
}
.related-exhibition { background: #f3f4f6; }
.stat-card.active { border-color: #111827; background: #f3f4f6; }
.page-link { border-color: #e5e7eb; background: #ffffff; }
.page-link:hover { color: #000000; border-color: #9ca3af; background: #f3f4f6; }
.site-message, .site-message-error { border-color: #e5e7eb; background: #ffffff; }
/* 기존 화면과 테스트가 사용하는 site-header 이름을 유지하면서 새 상단바를 적용한다. */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(229, 231, 235, 0.8);
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}
.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar { display: none; }
