List several fonts with `font-family: "Pretendard", "Apple SD Gothic Neo", sans-serif`, and the browser moves to the next one whenever the first is unavailable or lacks a glyph for a given character (an emoji, a special symbol, a different script). This substitution can happen at the individual glyph level, not just per word — so a single word can render partly in the first font and partly in a fallback, if only part of it (say, an emoji) is missing from the first.
The stack's last entry is usually a generic keyword — `serif`, `sans-serif`, `monospace` — a safety net that guarantees a fallback the OS is required to have, even if every named font before it fails. On a site like this one that loads no external fonts at all, the entire stack is effectively a guess about what's installed on the visitor's OS.
`document.fonts.check('16px "Font Name"')` in JS can confirm whether a specific font is actually usable in this browser and OS (installed, or loaded via `@font-face`) — a way to design a fallback stack from measured fact rather than assumption. The demo uses this API to check, live, whether a handful of common Korean and English system fonts are actually detected in the current environment.
When to use
On sites mixing Korean and English, put a Korean-capable font (Apple SD Gothic Neo, Malgun Gothic) ahead of an English-only one, or use a different stack per language. Emoji are usually handled automatically by the OS without needing to name an emoji font explicitly.