/* Shared type scale (2026-10-12). Loaded after each page's own styles.
   Small text uses pixel faces at the sizes they are drawn for, so it stays crisp:
   Galmuri11 at 12px, Galmuri14 at 15px, DungGeunMo at 16px. Pages size text with
   the tokens below instead of fixed px, so one breakpoint can scale the whole site
   for 2560px-wide screens. */
@font-face{font-family:'Galmuri11';src:url('/assets/fonts/galmuri/Galmuri11-ko.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Galmuri14';src:url('/assets/fonts/galmuri/Galmuri14-ko.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Galmuri11 KR';src:url('/assets/fonts/galmuri/Galmuri11-ko.woff2') format('woff2');unicode-range:U+AC00-D7A3,U+3131-318E;font-display:swap}
@font-face{font-family:'Galmuri14 KR';src:url('/assets/fonts/galmuri/Galmuri14-ko.woff2') format('woff2');unicode-range:U+AC00-D7A3,U+3131-318E;font-display:swap}
/* Japanese glyphs (kana, JIS level-1 kanji + every kanji the site uses). Declared after the
   faces above so it is tried first for these ranges; only downloaded on Japanese pages. */
@font-face{font-family:'Galmuri11';src:url('/assets/fonts/galmuri/Galmuri11-ja.woff2') format('woff2');unicode-range:U+3000-30FF,U+31F0-31FF,U+4E00-9FFF,U+FF01-FF9F;font-display:swap}
@font-face{font-family:'Galmuri14';src:url('/assets/fonts/galmuri/Galmuri14-ja.woff2') format('woff2');unicode-range:U+3000-30FF,U+31F0-31FF,U+4E00-9FFF,U+FF01-FF9F;font-display:swap}

:root{
  --fs-s:12px;   /* labels, captions, meta */
  --fs-m:15px;   /* secondary copy, card text */
  --fs-b:15px;   /* body copy (Galmuri14 is crisp at 15px) */
  --fs-l:18px;   /* leads */
  --f-small:'Galmuri11','DungGeunMo','PixelMplus12','Malgun Gothic',monospace;
  --f-mid:'Galmuri14','DungGeunMo','PixelMplus12','Malgun Gothic',monospace;
  /* dim text was 4.4:1 on the page background; these sit at 6.3:1 and 5.9:1 */
  --text-dim:#6f9a82;
  --lcd-dim:#4f9a72;
}

/* Running text in every language is Galmuri14: its Latin has a taller x-height than
   DungGeunMo and its Hangul uses the same 1px strokes. DungGeunMo stays on headings
   and wordmarks, which set their own family. Kana fall through to PixelMplus12. */
body:not(.dk-page){font-family:'Galmuri14','DungGeunMo','PixelMplus12','Malgun Gothic',sans-serif}
/* Brand display type keeps DungGeunMo. */
.wordmark,.subpage-head h1{font-family:'DungGeunMo','PixelMplus12',monospace}
/* Section and feature headings: Galmuri11 at 24px (2x its grid) instead of a blurred
   22px DungGeunMo. */
.game h2,.g-ftxt h3{font-family:'Galmuri11','DungGeunMo','PixelMplus12',monospace;font-size:24px;letter-spacing:0}
.page-section > h2{font-family:'Galmuri11','DungGeunMo','PixelMplus12',monospace;letter-spacing:.04em}
/* Japanese pages override body with their own stack; put Galmuri first there too. */
html[lang="ja"] body:not(.dk-page){font-family:'Galmuri14','PixelMplus12','DungGeunMo',sans-serif}

/* Comfortable reading: line height and measure for running text. */
p{line-height:1.75}
html:lang(ko) p{line-height:1.85;word-break:keep-all}
html:lang(ja) p{line-height:1.85;line-break:strict}

/* 2560px-wide screens at 100% scaling: one step up. Labels move to Galmuri14 at
   15px (still crisp); body and leads grow with them. */
@media (min-width:2200px){
  :root{--fs-s:15px;--fs-m:18px;--fs-b:18px;--fs-l:21px;--f-small:var(--f-mid)}
  /* wider reading column and 2x pixel headings (DungGeunMo 32px, Galmuri14 30px) */
  .game{--wide:1640px;--read:780px}
  .game h2,.g-ftxt h3{font-family:'Galmuri14','DungGeunMo','PixelMplus12',monospace;font-size:30px}
  .subpage-shell{width:min(1560px,calc(100% - 2 * var(--site-gut)))}
}
/* Phones: keep labels at 12px and body at 15–16px; nothing smaller. */
@media (max-width:700px){
  :root{--fs-m:15px}
}
/* Narrow phones (≤420px): the game page stat strip keeps three columns without overflowing. */
@media (max-width:420px){
  .g-tele-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .g-tele-grid > div{padding:12px 10px;min-width:0}
  .g-tele .v{font-size:24px}
  .g-tele .k{letter-spacing:.06em}
}
/* Japanese has no glyphs in the landing's Arial/Pretendard heading stacks; use Galmuri at whole
   multiples of its grid instead of an arbitrary system font. */
html:lang(ja) .st-head h2,html:lang(ja) .projects-head h2{font-family:'Galmuri11','PixelMplus12',sans-serif;font-size:48px;letter-spacing:0}
html:lang(ja) .st-cell h3,html:lang(ja) .st-road .st-when{font-family:'Galmuri14','PixelMplus12',sans-serif;letter-spacing:0}
html:lang(ja) .st-cell h3{font-size:var(--fs-m)}
@media (max-width:700px){html:lang(ja) .st-head h2,html:lang(ja) .projects-head h2{font-size:36px}}
