/* core/base.css — 모든 테마에 공통인 최소 규칙 (디자인은 각 테마가 담당) */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; -webkit-text-size-adjust: 100%; }
body { margin: 0; word-break: keep-all; overflow-wrap: break-word; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 방명록: 스팸 방지용 숨김 칸 */
.gb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* 라이트박스 */
.lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(12, 10, 8, .93); display: grid; place-items: center; padding: 20px; }
.lightbox img { max-width: min(96vw, 1400px); max-height: 88vh; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .6); }
.lb-btn { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .14); color: #fff; font-size: 24px; line-height: 1; display: grid; place-items: center; }
.lb-btn:hover { background: rgba(255, 255, 255, .28); }
.lb-close { top: 16px; right: 16px; font-size: 18px; } .lb-prev { left: 14px; } .lb-next { right: 14px; }
.lb-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: rgba(255, 255, 255, .7); font-size: 13px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition: none !important; scroll-behavior: auto !important; }
}
