/* 기본 토큰과 배치. 화면별 스타일은 따로 둔다. */
:root {
  --ink: #2b2420;
  --paper: #f6efe2;
  --hanji: #efe4cf;
  --seal: #b8322a;      /* 原文 붉은 낙관 */
  --fiction: #2f8a86;   /* 게임 설정 · 虛 청록 */
  --variant: #a87c3a;   /* 이본 노트 황토 */
  --interp: #34508a;    /* 해석 쪽빛 */
  /* 화면 글자. NMSans 에 없는 글자(옛한글 자모 묶음·드문 한자)는 기기 글꼴이 아니라 함께 넣은 NMYet·NMYetExt 로 그린다
     (기기 글꼴은 옛한글을 못 모으거나 네모(□)로 보일 수 있다). 옛말 낱말은 원래 .nm-yet 으로 감싸 그린다(js/ui/stage-yet.js). */
  --font-ui: 'NMSans', 'NMYet', 'NMYetExt', system-ui, sans-serif;
  --font-yet: 'NMYet', 'NMYetExt', 'NMSans', serif;
  --fs: 1;
}
/* 화면 높이: 휴대 전화 안 브라우저(카카오톡 등)는 주소 줄·아래 단추 줄 때문에 100vh·100% 가 보이는 높이보다 클 수 있다.
   그래서 문서는 스크롤하지 않고(#app 고정), 높이는 보이는 높이를 따른다:
   inset:0 → 되면 100dvh → js/main.js 가 visualViewport 높이를 --nm-app-h 로 두면(html[data-nm-vh]) 그것. */
html, body {
  margin: 0; height: 100%; overflow: hidden; overscroll-behavior: none;
  background: #1d1a17; color: var(--ink); font-family: var(--font-ui);
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
#app { position: fixed; inset: 0; width: 100%; overflow: hidden; }
@supports (height: 100dvh) { #app { bottom: auto; height: 100dvh; } }
html[data-nm-vh] #app { bottom: auto; height: var(--nm-app-h); }
#game { position: absolute; inset: 0; }
#ui-layer { position: absolute; inset: 0; pointer-events: none; }
#ui-layer > * { pointer-events: auto; }
