:root {
  --cx-bg: #f4efe3; --cx-fg: #2b2620; --cx-muted: #6b6153; --cx-line: #d8cfbd; --cx-accent: #7a3b1d; --cx-card: #fbf8f1;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root { --cx-bg: #1c1a17; --cx-fg: #ece4d4; --cx-muted: #b3a891; --cx-line: #3b362e; --cx-accent: #e3a679; --cx-card: #24211d; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--cx-bg); color: var(--cx-fg); line-height: 1.7;
  font-family: "Nanum Myeongjo", "Noto Serif KR", "AppleMyungjo", "Batang", serif;
}
:lang(ja) body, body:lang(ja) { font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "MS PMincho", serif; }
a { color: var(--cx-accent); }
.cx-top, .cx-main, .cx-foot { max-width: 46rem; margin: 0 auto; padding: 0 16px; }
.cx-top { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; align-items: center; padding-top: 16px; font-size: 0.95rem; }
.cx-crumbs { display: flex; flex-wrap: wrap; gap: 6px; color: var(--cx-muted); }
h1 { font-size: 1.8rem; line-height: 1.3; margin: 24px 0 12px; overflow-wrap: anywhere; }
h2 { font-size: 1.2rem; margin: 28px 0 8px; border-bottom: 1px solid var(--cx-line); padding-bottom: 4px; }
.cx-lead { font-size: 1.05rem; }
.cx-facts { width: 100%; border-collapse: collapse; background: var(--cx-card); }
.cx-facts th, .cx-facts td { text-align: left; vertical-align: top; padding: 6px 8px; border-bottom: 1px solid var(--cx-line); overflow-wrap: anywhere; }
.cx-facts th { width: 42%; font-weight: normal; color: var(--cx-muted); }
.cx-source { font-size: 0.85rem; color: var(--cx-muted); margin: 6px 0 0; }
.cx-links { list-style: none; padding: 0; margin: 8px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cx-links a { display: inline-block; padding: 6px 12px; border: 1px solid var(--cx-line); border-radius: 999px; text-decoration: none; background: var(--cx-card); min-height: 44px; line-height: 30px; }
.cx-foot { padding-top: 24px; padding-bottom: 48px; }
.cx-cta { display: inline-block; padding: 10px 20px; border-radius: 8px; background: var(--cx-accent); color: var(--cx-bg); text-decoration: none; min-height: 44px; }
