/* 토큰·폰트·리셋. 색/치수는 전부 여기 변수로만 정의한다. */

@font-face {
  font-family: 'Poppins';
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/poppins-300.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/poppins-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-weight: 600;
  font-display: swap;
  src: url('../assets/fonts/poppins-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-weight: 700;
  font-display: swap;
  src: url('../assets/fonts/poppins-700.woff2') format('woff2');
}
@font-face {
  font-family: 'EliceDXNeolli';
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/EliceDXNeolli-Light.woff2') format('woff2');
  /* 한글 폰트가 한자 자리에 빈 글리프를 갖고 있어 일/중 문자가 두부(□)로 굳는다.
     담당 범위를 한글로 못박아 나머지는 시스템 CJK 폰트로 넘긴다. */
  unicode-range: U+AC00-D7A3, U+1100-11FF, U+3130-318F, U+A960-A97F, U+D7B0-D7FF;
}
@font-face {
  font-family: 'EliceDXNeolli';
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/EliceDXNeolli-Medium.woff2') format('woff2');
  /* 한글 폰트가 한자 자리에 빈 글리프를 갖고 있어 일/중 문자가 두부(□)로 굳는다.
     담당 범위를 한글로 못박아 나머지는 시스템 CJK 폰트로 넘긴다. */
  unicode-range: U+AC00-D7A3, U+1100-11FF, U+3130-318F, U+A960-A97F, U+D7B0-D7FF;
}
@font-face {
  font-family: 'EliceDXNeolli';
  font-weight: 700;
  font-display: swap;
  src: url('../assets/fonts/EliceDXNeolli-Bold.woff2') format('woff2');
  /* 한글 폰트가 한자 자리에 빈 글리프를 갖고 있어 일/중 문자가 두부(□)로 굳는다.
     담당 범위를 한글로 못박아 나머지는 시스템 CJK 폰트로 넘긴다. */
  unicode-range: U+AC00-D7A3, U+1100-11FF, U+3130-318F, U+A960-A97F, U+D7B0-D7FF;
}

:root {
  --bg0: #04060b;
  --bg1: #070b14;
  --panel: rgba(9, 15, 28, 0.82);
  --line: #16263f;
  --line-soft: rgba(63, 216, 255, 0.16);
  --cyan: #3fd8ff;
  --cyan-dim: #7fb6cc;
  --amber: #ffb054;
  --text: #dfe9f5;
  --muted: #8095b0;
  --ok: #4ade80;
  --info: #5db9ff;
  --warn: #fbbf24;
  --bad: #f87171;
  --r-lg: 10px;
  --r-md: 6px;
  --r-sm: 4px;
  --font-ui: 'Poppins', 'EliceDXNeolli', 'Yu Gothic UI', 'Microsoft YaHei', sans-serif;
  /* 제목용 — 한글은 널리체가 예쁘지만 한자는 없다. 언어별로 아래에서 갈아끼운다. */
  --font-display: 'EliceDXNeolli', 'Poppins', sans-serif;
}

/* 언어별 본문 폰트 — 일본어/중국어는 각 시스템 폰트로 넘긴다(한글 폰트엔 해당 한자가 없다) */
html[lang='ja'] {
  --font-ui: 'Poppins', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', 'MS Gothic', sans-serif;
  --font-display: 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', 'Poppins', sans-serif;
}

html[lang='zh'] {
  --font-ui: 'Poppins', 'Microsoft YaHei UI', 'Microsoft YaHei', 'SimSun', sans-serif;
  --font-display: 'Microsoft YaHei UI', 'Microsoft YaHei', 'SimSun', 'Poppins', sans-serif;
}


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--bg0);
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
}

img {
  max-width: 100%;
  display: block;
}

/* img { display: block } 이 UA 의 [hidden] 을 이겨버린다 — hidden 은 항상 이긴다 */
[hidden] {
  display: none !important;
}
