/* kg_tokens.css 의 :root 값만(같은 이름 .kg-btn 이 kg_base.css 와 부딪혀 토큰 파일 통째로는 안 씀) — 11_IST 부품 v1.1 */
:root {
  /* 색 4개 + 파생(투명도만 바꾼 것) */
  --kg-navy: #0D1B3E;   /* 바탕(어두운 화면)·글자(밝은 화면)·머리 막대 */
  --kg-gold: #C9923A;   /* 주 단추·강조·진행 막대 */
  --kg-cream: #FBF1E3;  /* 밝은 바탕·카드 */
  --kg-crimson: #C8102E;/* 경고·새 버전 띠·«확인 필요» — 넓게 칠하지 않는다 */
  --kg-ink: #0D1B3E;
  --kg-ink-2: rgba(13, 27, 62, .72);   /* 보조 글자 — 크림 위 대비 6.43:1(계산값) */
  --kg-line: rgba(13, 27, 62, .14);
  --kg-paper: #FFFDF9;
  --kg-gold-ink: #8A5D17;               /* 크림 위 골드 글자(작은 글씨용, 대비 5.1:1) */
  /* 글꼴 — 외부 글꼴이 실패해도 바로 보이게 시스템 글꼴을 뒤에 둔다(측정기 «글꼴 차단» 항목) */
  --kg-font: "Noto Sans", "Noto Sans KR", "Noto Sans Lao", "Noto Sans Thai", "Leelawadee UI", "Malgun Gothic", system-ui, -apple-system, "Segoe UI", sans-serif;
  --kg-font-display: Georgia, "Noto Serif", "Times New Roman", serif;
  /* 글자 크기(본문 16 이상, 어떤 글자도 13 미만 금지) */
  --kg-fs-cap: 14px; --kg-fs-body: 17px; --kg-fs-lead: 19px; --kg-fs-h2: 22px; --kg-fs-h1: 28px; --kg-fs-hero: 34px;
  --kg-lh: 1.55;
  /* 간격 4의 배수 */
  --kg-s1: 4px; --kg-s2: 8px; --kg-s3: 12px; --kg-s4: 16px; --kg-s5: 24px; --kg-s6: 32px; --kg-s7: 48px;
  --kg-gutter: 16px;   /* 폰 좌우 여백 */
  /* 모서리 */
  --kg-r-sm: 10px; --kg-r: 16px; --kg-r-lg: 24px; --kg-r-pill: 999px;
  /* 단추 — 높이 48 이상, 44 미만 금지 */
  --kg-btn-h: 52px; --kg-btn-min: 48px;
  /* 그림자 2단계뿐 */
  --kg-shadow-1: 0 1px 2px rgba(13, 27, 62, .08), 0 2px 8px rgba(13, 27, 62, .06);
  --kg-shadow-2: 0 8px 28px rgba(13, 27, 62, .18);
  /* 움직임 — 짧게, «움직임 줄이기» 설정이면 끈다 */
  --kg-ease: cubic-bezier(.2, .7, .2, 1); --kg-t-fast: 160ms; --kg-t: 260ms;
  /* 사진 비율 */
  --kg-ratio-hero: 4 / 5; --kg-ratio-card: 1 / 1; --kg-ratio-wide: 16 / 9;
}
/* KG-APP-WORLD v1.0 · AI Host 부품 모양 — kg_tokens.css 다음에 읽는다 */
.kg-host { display: flex; gap: var(--kg-s4, 16px); align-items: flex-start; padding: var(--kg-s4, 16px); border-radius: var(--kg-r-lg, 24px); background: var(--kg-paper, #FFFDF9); color: var(--kg-ink, #0D1B3E); box-shadow: var(--kg-shadow-1); font-family: var(--kg-font); max-width: 640px; }
.kg-host__photo { flex: 0 0 auto; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 0 0 3px var(--kg-gold, #C9923A); background: var(--kg-cream, #FBF1E3); }
.kg-host__body { flex: 1 1 auto; min-width: 0; }
.kg-host__name { margin: 0 0 var(--kg-s1, 4px); font: 700 var(--kg-fs-cap, 14px)/1.3 var(--kg-font); color: var(--kg-gold-ink, #8A5D17); letter-spacing: .02em; }
.kg-host__line { margin: 0 0 var(--kg-s3, 12px); font-size: var(--kg-fs-body, 17px); line-height: var(--kg-lh, 1.55); overflow-wrap: anywhere; word-break: keep-all; }
.kg-host__ctl { display: flex; flex-wrap: wrap; gap: var(--kg-s2, 8px); }
.kg-host__b { min-height: 48px; min-width: 48px; padding: 0 14px; display: inline-flex; align-items: center; gap: 6px; border-radius: var(--kg-r-pill, 999px); border: 1.5px solid var(--kg-line, rgba(13,27,62,.14)); background: transparent; color: inherit; font: 600 15px/1 var(--kg-font); cursor: pointer; }
.kg-host__b svg { width: 20px; height: 20px; flex: 0 0 auto; }
.kg-host__b--main { background: var(--kg-gold, #C9923A); border-color: var(--kg-gold, #C9923A); color: var(--kg-navy, #0D1B3E); }
.kg-host__b[aria-pressed="false"] { opacity: .75; }
.kg-host__b:focus-visible { outline: 3px solid var(--kg-gold, #C9923A); outline-offset: 2px; }
/* 건너뛰면 작게 접힌다(사라지지 않음 — 다시 누르면 들을 수 있다) */
.kg-host--min .kg-host__line { display: none; }
.kg-host--min .kg-host__photo { width: 48px; height: 48px; }
/* 좁은 폰(320px): 사진을 위로, 단추는 두 줄까지 */
@media (max-width: 359px) { .kg-host { flex-direction: column; } .kg-host__b { padding: 0 12px; } }
/* 어두운 화면 위에 놓을 때 */
.kg-host--dark { background: rgba(13, 27, 62, .86); color: var(--kg-cream, #FBF1E3); }
.kg-host--dark .kg-host__name { color: var(--kg-gold, #C9923A); }
.kg-host--dark .kg-host__b { border-color: rgba(251, 241, 227, .35); }

/* v1.1 (10/17): 자동 소개 — 소리가 막혔을 때 큰 «소리 켜기», 작은 «시작할 때 다시 틀지 않기» */
.kg-host__b--big { min-height: 56px; padding: 0 22px; font-size: 17px; box-shadow: 0 0 0 4px rgba(201, 146, 58, .28); }
.kg-host__noauto { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; margin-top: var(--kg-s1, 4px); padding: 0 4px; border: 0; background: transparent; color: var(--kg-ink-2, rgba(13,27,62,.72)); font: 400 14px/1.3 var(--kg-font); text-decoration: underline; cursor: pointer; }
.kg-host--dark .kg-host__noauto { color: rgba(251, 241, 227, .82); }
.kg-host__video { object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .kg-host__b--big { box-shadow: none; } }
