/* 전역 스크롤 등장 애니메이션
 * #main-content 안 top-level <section>이 뷰포트에 들어오면 페이드업.
 * - html.cv-on 은 reveal.js가 <head>에서 동기로 추가(첫 페인트 전 → 플래시 없음).
 * - IO 미지원 / prefers-reduced-motion / JS 에러 시 cv-on 미적용 → 섹션 그대로 보임(안전).
 * - proof 페이지엔 이 에셋을 enqueue하지 않음(자체 reveal 사용). 중첩 섹션은 :not(section section)으로 제외.
 */
html.cv-on #main-content section:not(section section) {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s cubic-bezier(.4, 0, .2, 1), transform .6s cubic-bezier(.4, 0, .2, 1);
  will-change: opacity, transform;
}
html.cv-on #main-content section:not(section section).cv-in {
  opacity: 1;
  transform: none;
}
/* 첫 섹션(히어로) = 애니메이션 없이 즉시 노출. !important로 hide 규칙을 항상 이김(절대 숨겨지지 않게) */
html.cv-on #main-content section:not(section section).cv-first {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html.cv-on #main-content section:not(section section) {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
