/* rgleetax 공통 가독성·모션 보강 (2026-10-15). 페이지별 디자인은 그대로 두고 위에 얹는다. */
html { -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* 한글 줄바꿈: 단어 중간에서 끊지 않고, 마지막 줄에 한 글자만 남는 것을 줄인다 */
body p, body li, body dd, body td, body th, body figcaption, body blockquote { word-break: keep-all; overflow-wrap: anywhere; }
body p, body li { text-wrap: pretty; }
body h1, body h2, body h3 { word-break: keep-all; text-wrap: balance; }

/* 본문 문단 사이 숨 쉴 틈 */
body main p + p { margin-top: .9em; }

/* 표: 숫자 칸 정렬과 줄 간격 */
body table { font-variant-numeric: tabular-nums; }
body td, body th { line-height: 1.6; }

/* 스크롤하며 나타나기 (JS가 붙인 요소만, 모션 줄이기 설정이면 끔) */
@media (prefers-reduced-motion: no-preference) {
  html.sp-js .sp-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: var(--sp-delay, 0ms); will-change: opacity, transform; }
  html.sp-js .sp-reveal.sp-in { opacity: 1; transform: none; }
  html.sp-js img.sp-img { opacity: 0; transition: opacity .6s ease; }
  html.sp-js img.sp-img.sp-loaded { opacity: 1; }

  /* 카드·링크 카드 살짝 떠오르기 */
  .sp-lift { transition: transform .22s ease, box-shadow .22s ease; }
  .sp-lift:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(23, 32, 42, .10); }
}

/* 그림 보강 블록 */
.sp-figure { margin: 28px auto; max-width: 760px; }
.sp-figure img { display: block; width: 100%; height: auto; border-radius: 16px; background: #f4f6f8; }
.sp-figure figcaption { margin-top: 8px; font-size: 13px; color: #737980; text-align: center; }
