@charset "UTF-8";
/* ==========================================================
   스크롤 리빌 모션 (index.html 전용)
   - 켜기/끄기: <body class="reveal-on"> 여부 (제거 시 전체 비활성, 요소는 정상 표시)
   - 완전 제거: 이 파일 링크 + motion.js + .reveal 클래스 + body.reveal-on 삭제
   ========================================================== */
.reveal-on .reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .8s cubic-bezier(.16, .7, .3, 1), transform .8s cubic-bezier(.16, .7, .3, 1);
  will-change: opacity, transform;
}
.reveal-on .reveal.is-visible { opacity: 1; transform: none; }

/* 접근성: 모션 최소화 설정 사용자에게는 즉시 표시 */
@media (prefers-reduced-motion: reduce) {
  .reveal-on .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------- 히어로 텍스트 리빌 (활성 슬라이드에서 fade-up, 최초 1회 + 스와이프마다 재생) ---------- */
@keyframes heroRise {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: none; }
}
.hero-txt.anim > * { opacity: 0; animation: heroRise .8s cubic-bezier(.16, .7, .3, 1) forwards; }
.hero-txt.anim > *:nth-child(1) { animation-delay: .1s; }
.hero-txt.anim > *:nth-child(2) { animation-delay: .25s; }
.hero-txt.anim > *:nth-child(3) { animation-delay: .4s; }
.hero-txt.anim > *:nth-child(4) { animation-delay: .55s; }
@media (prefers-reduced-motion: reduce) {
  .hero-txt.anim > * { opacity: 1 !important; animation: none !important; }
}
