/* ===== 글로벌 리셋 & 기본 ===== */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:var(--sans);
    color:var(--ink);
    /* ✅ 아이보리에서 완전 흰색으로 자연스럽게 내려가는 그라디언트 */
    background:
      linear-gradient(180deg, var(--ivory) 0%, #ffffff 100%);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }
  

/* 공통 컨테이너 폭 */
#nft-auth section{width:100%;}

/* 등장 애니메이션용 (IntersectionObserver로 제어) */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.is-visible{opacity:1; transform:none;}

/* 푸터 */
.site-footer{
  margin-top:80px; padding:40px 16px; text-align:center; font-size:14px; color:var(--sub-ink);
  border-top:1px solid rgba(0,0,0,.06);
}
.site-footer a{color:inherit; text-decoration:none; border-bottom:1px solid rgba(0,0,0,.2)}

/* 등장 애니메이션 */
.reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .8s cubic-bezier(.21,.61,.35,1), transform .8s cubic-bezier(.21,.61,.35,1);
    transition-delay: var(--d, 0s);     /* ✅ 요소별 지연 시간 지정 */
  }
  .reveal.is-visible{opacity:1; transform:none}
  
  /* ===== EN 본문(있다면) 포괄 적용 — 세련된 범용 규칙 ===== */
/* #nft-auth 영역 내에서 lang="en" 또는 .en 이 달린 텍스트를 우아하게 통일 */
#nft-auth :where([lang="en"], .en){
    font-family: var(--en-body-family);
    font-weight: var(--en-body-weight);
    letter-spacing: var(--en-body-tracking);
    font-feature-settings: "kern" 1, "liga" 1; /* 커닝/합자 활성화 */
  }
  
  /* EN '본문'만 크기 조절 — 제목/헤더 라벨은 제외 */
  #nft-auth :where(p, li, figcaption, dd, dt, blockquote, small, a, button, label)
           :where([lang="en"], .en){
    font-size: calc(1em * var(--en-body-scale)); /* ✅ EN 본문 크기 전역 제어 */
    line-height: 1.75;
  }
  
  /* 캡스/헤딩(히어로 포함)은 현재 스타일 유지 */
  #nft-auth :where(h1,h2,h3,h4,h5,h6,.caps) :where([lang="en"], .en){
    font-size: inherit;
    letter-spacing: inherit;
    font-weight: inherit;
  }
  
  /* 유틸: EN 본문 스케일 미세 조정 */
.en--sm { --en-body-scale: 1.14; }
.en--md { --en-body-scale: 1.00; }
.en--lg { --en-body-scale: 1.06; }
