{"id":10034,"date":"2023-10-29T13:00:34","date_gmt":"2023-10-29T05:00:34","guid":{"rendered":"http:\/\/tiffanysmandarin.com\/?p=10034"},"modified":"2026-09-09T06:37:07","modified_gmt":"2026-09-08T22:37:07","slug":"book-1-l3","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/","title":{"rendered":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3"},"content":{"rendered":"\n<div style=\"height:6px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--\n  \u5be6\u7528\u8996\u807d\u83ef\u8a9e (Practical Audio-Visual Chinese) Book 1 \u00b7 Lesson 3\u300c\u6211\u559c\u6b61\u770b\u96fb\u5f71\u300dI Like Watching Movies \u2014 Vocabulary Embed\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  Same technical pattern as the Book 1 Lesson 1\u20132 embeds in this series \u2014\n  see those files' comments for the fuller rationale. Key points repeated\n  here, plus what's different for this file:\n    - No <!DOCTYPE>\/<html>\/<head>\/<body>; the site's own Text Display \/\n      Pinyin Display toggle covers zh-TW\/zh-CN as usual\n    - CSS scoped under .pavc-b1l3-vocab-embed with its own --pv3-* vars \u2014\n      same oxblood\/mustard\/sage\/bone palette as the rest of the series\n    - Ruby: every example\/dialogue sentence segmented WORD BY WORD, own\n      ruby+pinyin chunk; punctuation is plain text\n    - Root lookup by id (#pavc-b1l3-vocab-embed-1), not currentScript\n    - Same self-contained EN \/ \u65e5\u672c\u8a9e \/ \ud55c\uad6d\uc5b4 translation toggle as the\n      Lesson 1\u20132 files (TR()\/trSpans()\/pv3-lang-* classes; quiz's\n      QMC()\/QTYPE() + UI_STRINGS + getLang() read the active language per\n      question, only switching what's displayed once a new question\n      renders, same as before)\n    - COPYRIGHT: no audio, no textbook dialogue text, per this series'\n      convention. Section 06 (\"Put It Together\") is an ORIGINAL dialogue I\n      wrote myself from this lesson's vocabulary (plus Lessons 1\u20132's, for\n      review) \u2014 not the textbook's.\n    - CORRECTED against the official Lesson 3 \u751f\u8a5e list from the user's\n      uploaded textbook PDF: two official words were missing from the\n      original draft and have been added \u2014 \u4e2d\u570b (Zh\u014dnggu\u00f3, \"China\/Chinese\")\n      in group 03 (Countries), and \u83ef\u6587 (Hu\u00e1w\u00e9n, a more formal\/literary\n      synonym for \"the Chinese language\") in group 02 (Languages), listed\n      alongside \u4e2d\u6587. Word count is now 30 (was 28). Everything else in\n      the original word list matched the official \u751f\u8a5e table.\n    - This lesson's official word list is noticeably longer than Lessons\n      1\u20132 (30 words vs. ~18\u201320) \u2014 it's genuinely a bigger, noun-heavy\n      lesson (six language names, four countries, several household\n      objects) \u2014 so it gets five vocab groups (01\u201305) instead of four, and\n      the later sections are renumbered accordingly (06 dialogue, 07\n      flashcards, 08 match, 09 quiz)\n    - Vocabulary (\u559c\u6b61\/\u770b\/\u96fb\u5f71\/\u61c2\/\u597d\u770b\/\u4e2d\u6587\/\u82f1\u6587\/\u65e5\u6587\/\u6cd5\u6587\/\u5fb7\u6587\/\u6587\/\u83ef\u6587\/\n      \u4e2d\u570b\/\u65e5\u672c\/\u6cd5\u570b\/\u5fb7\u570b\/\u96fb\u8996\/\u6c7d\u8eca\/\u8eca\/\u66f8\/\u5831\/\u7b46\/\u6771\u897f\/\u8981\/\u8cb7\/\u6709\/\u6c92\/\u90fd\/\n      \u53ef\u662f\/\u8cb4) cross-checked directly against the official Lesson 3 \u751f\u8a5e\n      table (not a secondary summary); all example sentences below are\n      newly written for this embed, deliberately reusing mostly this\n      lesson's and Lessons 1\u20132's vocabulary (plus a small number of\n      unavoidable measure-word\/grammar particles \u2014 \u500b\/\u672c\/\u679d\/\u8f1b\/\u4e00\/\u7684\/\u4e86 \u2014\n      the same kind of minimal filler already used in the earlier lessons\n      of this series) so nothing outruns what's actually been taught yet\n    - Traditional\/simplified pairs checked individually \u2014 real differences\n      in \u559c\u6b61\/\u559c\u6b22, \u96fb\u5f71\/\u7535\u5f71, \u4e2d\u570b\/\u4e2d\u56fd, \u6cd5\u570b\/\u6cd5\u56fd, \u5fb7\u570b\/\u5fb7\u56fd, \u96fb\u8996\/\u7535\u89c6,\n      \u6c7d\u8eca\/\u6c7d\u8f66, \u8eca\/\u8f66, \u66f8\/\u4e66, \u5831\/\u62a5, \u6771\u897f\/\u4e1c\u897f, \u8cb7\/\u4e70, \u6c92\/\u6ca1, \u8cb4\/\u8d35,\n      \u83ef\u6587\/\u534e\u6587 \u2014 all handled via WD(); everything else (\u770b\/\u61c2\/\u597d\u770b\/\u4e2d\u6587\/\n      \u82f1\u6587\/\u65e5\u6587\/\u6cd5\u6587\/\u5fb7\u6587\/\u6587\/\u65e5\u672c\/\u7b46\/\u8981\/\u6709\/\u90fd\/\u53ef\u662f) is identical across\n      scripts and uses W()\n    - Japanese\/Korean glosses are natural short translations of the\n      meaning, not a word-for-word rendering of the Chinese\n    - No literal `&&` inside the <script> tag (WordPress content filter risk)\n    - Top-of-page support note, same as the rest of the series\n-->\n<div class=\"pavc-b1l3-vocab-embed\" id=\"pavc-b1l3-vocab-embed-1\">\n<style>\n.pavc-b1l3-vocab-embed {\n  --pv3-oxblood: #7b2d26;\n  --pv3-oxblood-dark: #5e211c;\n  --pv3-mustard: #c9922b;\n  --pv3-sage: #7c8b6f;\n  --pv3-bone: #f7f1e6;\n  --pv3-ink: #2c2620;\n  --pv3-line: #e4d9c4;\n  font-family: 'Work Sans', -apple-system, sans-serif;\n  color: var(--pv3-ink);\n  background: #fff;\n  max-width: 760px;\n  margin: 0 auto;\n  padding: 8px 4px 24px;\n  line-height: 1.6;\n}\n.pavc-b1l3-vocab-embed * { box-sizing: border-box; }\n.pavc-b1l3-vocab-embed h1,\n.pavc-b1l3-vocab-embed h2,\n.pavc-b1l3-vocab-embed h3 {\n  font-family: 'Bitter', Georgia, serif;\n  color: var(--pv3-oxblood-dark);\n  margin: 0 0 8px;\n}\n.pavc-b1l3-vocab-embed .pv3-support-note {\n  font-size: 0.85rem;\n  color: var(--pv3-sage);\n  border-bottom: 1px solid var(--pv3-line);\n  padding-bottom: 12px;\n  margin: 0 0 16px;\n}\n.pavc-b1l3-vocab-embed .pv3-lede {\n  margin: 0 0 16px;\n  padding: 14px 16px;\n  background: var(--pv3-bone);\n  border-left: 4px solid var(--pv3-mustard);\n  border-radius: 4px;\n  font-size: 0.98rem;\n}\n.pavc-b1l3-vocab-embed .pv3-lede b { color: var(--pv3-oxblood-dark); }\n\n.pavc-b1l3-vocab-embed .pv3-lang-toggle {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  margin: 0 0 24px;\n  flex-wrap: wrap;\n}\n.pavc-b1l3-vocab-embed .pv3-lang-label {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--pv3-sage);\n  letter-spacing: 0.06em;\n}\n.pavc-b1l3-vocab-embed .pv3-lang-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--pv3-oxblood);\n  color: var(--pv3-oxblood);\n  background: #fff;\n  padding: 5px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.pavc-b1l3-vocab-embed .pv3-lang-btn:hover { background: var(--pv3-bone); }\n.pavc-b1l3-vocab-embed .pv3-lang-btn.pv3-lang-active { background: var(--pv3-oxblood); color: #fff; }\n\n.pavc-b1l3-vocab-embed .pv3-tr { display: none; }\n.pavc-b1l3-vocab-embed.pv3-lang-en .pv3-tr-en { display: inline; }\n.pavc-b1l3-vocab-embed.pv3-lang-ja .pv3-tr-ja { display: inline; }\n.pavc-b1l3-vocab-embed.pv3-lang-ko .pv3-tr-ko { display: inline; }\n\n.pavc-b1l3-vocab-embed .pv3-sec-eyebrow {\n  display: inline-block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  letter-spacing: 0.08em;\n  color: #fff;\n  background: var(--pv3-oxblood);\n  padding: 3px 9px;\n  border-radius: 3px;\n  margin: 32px 0 10px;\n}\n.pavc-b1l3-vocab-embed .pv3-word-card {\n  border: 1px solid var(--pv3-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: #fff;\n}\n.pavc-b1l3-vocab-embed .pv3-word-top {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.pavc-b1l3-vocab-embed .pv3-num {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--pv3-mustard);\n  min-width: 22px;\n}\n.pavc-b1l3-vocab-embed .pv3-hanzi { font-size: 1.35rem; font-weight: 600; }\n.pavc-b1l3-vocab-embed ruby {\n  ruby-position: over;\n  margin-right: 2px;\n  color: var(--pv3-ink) !important;\n  font-size: inherit !important;\n}\n.pavc-b1l3-vocab-embed .rb {\n  color: var(--pv3-ink) !important;\n  font-size: inherit !important;\n}\n.pavc-b1l3-vocab-embed rt {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.6rem !important;\n  color: var(--pv3-sage) !important;\n  font-weight: 400;\n}\n.pavc-b1l3-vocab-embed rt.hidden { display: none; }\n.pavc-b1l3-vocab-embed rt.mouseover { opacity: 0; }\n.pavc-b1l3-vocab-embed rt.mouseover:hover { opacity: 1; }\n.pavc-b1l3-vocab-embed .pv3-meaning { font-style: italic; color: #6b5f52; font-size: 0.92rem; }\n.pavc-b1l3-vocab-embed .pv3-speaker {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex: 0 0 26px;\n  width: 26px;\n  height: 26px;\n  padding: 0;\n  border: none;\n  background: var(--pv3-bone);\n  color: var(--pv3-oxblood);\n  border-radius: 50%;\n  cursor: pointer;\n  margin-left: auto;\n}\n.pavc-b1l3-vocab-embed .pv3-speaker:hover { background: var(--pv3-mustard); color: #fff; }\n.pavc-b1l3-vocab-embed .pv3-example {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px dashed var(--pv3-line);\n  font-size: 0.95rem;\n}\n.pavc-b1l3-vocab-embed .pv3-example .pv3-sent-word { display: inline-flex; }\n.pavc-b1l3-vocab-embed .pv3-example .pv3-punct { margin-right: 2px; }\n.pavc-b1l3-vocab-embed .pv3-example .pv3-en {\n  display: block;\n  color: #6b5f52;\n  font-size: 0.85rem;\n  margin-top: 4px;\n}\n.pavc-b1l3-vocab-embed .pv3-dialogue-note { font-size: 0.85rem; color: #6b5f52; margin: 0 0 10px; }\n.pavc-b1l3-vocab-embed .pv3-dialogue {\n  background: var(--pv3-bone);\n  border-radius: 8px;\n  padding: 16px 18px;\n  margin-top: 8px;\n}\n.pavc-b1l3-vocab-embed .pv3-line {\n  display: flex;\n  gap: 8px;\n  margin-bottom: 12px;\n  align-items: flex-start;\n  flex-wrap: wrap;\n}\n.pavc-b1l3-vocab-embed .pv3-speaker-tag {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.72rem;\n  color: var(--pv3-oxblood);\n  min-width: 46px;\n  padding-top: 3px;\n}\n.pavc-b1l3-vocab-embed .pv3-line-body { flex: 1; min-width: 200px; }\n.pavc-b1l3-vocab-embed .pv3-line-en { display: block; color: #6b5f52; font-size: 0.82rem; margin-top: 2px; }\n\n.pavc-b1l3-vocab-embed .pv3-fc-hint { font-size: 0.85rem; color: #6b5f52; margin: 0 0 12px; text-align: center; }\n.pavc-b1l3-vocab-embed .pv3-flashcard-wrap { max-width: 320px; margin: 0 auto 14px; perspective: 1200px; }\n.pavc-b1l3-vocab-embed .pv3-flashcard {\n  position: relative;\n  width: 100%;\n  height: 230px;\n  cursor: pointer;\n  transform-style: preserve-3d;\n  transition: transform 0.5s;\n}\n.pavc-b1l3-vocab-embed .pv3-flashcard.pv3-flipped { transform: rotateY(180deg); }\n.pavc-b1l3-vocab-embed .pv3-fc-face {\n  position: absolute;\n  inset: 0;\n  backface-visibility: hidden;\n  border: 1px solid var(--pv3-line);\n  border-radius: 12px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 16px;\n  background: #fff;\n  text-align: center;\n}\n.pavc-b1l3-vocab-embed .pv3-fc-back { transform: rotateY(180deg); background: var(--pv3-bone); }\n.pavc-b1l3-vocab-embed .pv3-fc-front .pv3-hanzi { font-size: 4rem !important; }\n.pavc-b1l3-vocab-embed .pv3-flashcard-wrap rt { font-size: 1.2rem !important; }\n.pavc-b1l3-vocab-embed .pv3-fc-back .pv3-meaning { font-style: italic; color: var(--pv3-oxblood-dark); font-size: 1.725rem; }\n.pavc-b1l3-vocab-embed .pv3-flashcard-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }\n.pavc-b1l3-vocab-embed .pv3-game-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--pv3-oxblood);\n  color: var(--pv3-oxblood);\n  background: #fff;\n  padding: 6px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.pavc-b1l3-vocab-embed .pv3-game-btn:hover { background: var(--pv3-oxblood); color: #fff; }\n.pavc-b1l3-vocab-embed .pv3-game-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }\n.pavc-b1l3-vocab-embed .pv3-game-status { font-family: 'IBM Plex Mono', monospace; font-size: 0.82rem; color: var(--pv3-sage); }\n.pavc-b1l3-vocab-embed .pv3-game-board { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.pavc-b1l3-vocab-embed .pv3-game-col { display: flex; flex-direction: column; gap: 8px; }\n.pavc-b1l3-vocab-embed .pv3-tile {\n  font-family: 'Work Sans', sans-serif;\n  text-align: left;\n  border: 1px solid var(--pv3-line);\n  background: #fff;\n  border-radius: 6px;\n  padding: 10px 12px;\n  cursor: pointer;\n  font-size: 0.95rem;\n  color: var(--pv3-ink);\n  transition: background 0.15s, border-color 0.15s, transform 0.1s;\n}\n.pavc-b1l3-vocab-embed .pv3-tile .pv3-tile-py {\n  display: block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: var(--pv3-sage);\n  margin-top: 2px;\n}\n.pavc-b1l3-vocab-embed .pv3-tile:hover:not(.pv3-matched):not(.pv3-selected) { border-color: var(--pv3-mustard); }\n.pavc-b1l3-vocab-embed .pv3-tile.pv3-selected { border-color: var(--pv3-oxblood); background: var(--pv3-bone); }\n.pavc-b1l3-vocab-embed .pv3-tile.pv3-matched { border-color: var(--pv3-sage); background: #eef2e9; color: var(--pv3-sage); cursor: default; }\n.pavc-b1l3-vocab-embed .pv3-tile.pv3-wrong { border-color: #b5453d; background: #fbeceb; animation: pv3-shake 0.3s; }\n@keyframes pv3-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }\n.pavc-b1l3-vocab-embed .pv3-game-win { text-align: center; padding: 14px; font-family: 'Bitter', serif; color: var(--pv3-oxblood-dark); display: none; }\n.pavc-b1l3-vocab-embed .pv3-game-win.pv3-show { display: block; }\n@media (max-width: 480px) { .pavc-b1l3-vocab-embed .pv3-game-board { grid-template-columns: 1fr; } }\n.pavc-b1l3-vocab-embed .pv3-quiz { background: #fff; border: 1px solid var(--pv3-line); border-radius: 12px; padding: 20px 22px; margin-top: 8px; }\n.pavc-b1l3-vocab-embed .pv3-quiz-progress { font-size: 0.82rem; color: var(--pv3-sage); margin: 0 0 10px; font-family: 'IBM Plex Mono', monospace; }\n.pavc-b1l3-vocab-embed .pv3-quiz-prompt { font-size: 1.1rem; margin: 0 0 14px; }\n.pavc-b1l3-vocab-embed .pv3-quiz-options { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }\n.pavc-b1l3-vocab-embed .pv3-quiz-opt { text-align: left; border: 1px solid var(--pv3-line); background: var(--pv3-bone); border-radius: 8px; padding: 10px 14px; cursor: pointer; font-size: 0.98rem; color: var(--pv3-ink); }\n.pavc-b1l3-vocab-embed .pv3-quiz-opt:hover { background: #f0e6d2; }\n.pavc-b1l3-vocab-embed .pv3-quiz-opt.correct { background: #e3efdd; border-color: #7fae6d; color: #3d5c34; }\n.pavc-b1l3-vocab-embed .pv3-quiz-opt.incorrect { background: #f5e0dc; border-color: var(--pv3-oxblood); color: var(--pv3-oxblood-dark); }\n.pavc-b1l3-vocab-embed .pv3-quiz-opt[disabled] { cursor: default; }\n.pavc-b1l3-vocab-embed .pv3-quiz-input-row { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }\n.pavc-b1l3-vocab-embed .pv3-quiz-input { flex: 1 1 200px; border: 1px solid var(--pv3-line); border-radius: 8px; padding: 9px 12px; font-size: 0.98rem; }\n.pavc-b1l3-vocab-embed .pv3-quiz-submit, .pavc-b1l3-vocab-embed .pv3-quiz-next, .pavc-b1l3-vocab-embed .pv3-quiz-retake { border: none; background: var(--pv3-oxblood); color: #fff; border-radius: 20px; padding: 8px 18px; font-size: 0.9rem; cursor: pointer; }\n.pavc-b1l3-vocab-embed .pv3-quiz-submit:hover, .pavc-b1l3-vocab-embed .pv3-quiz-next:hover, .pavc-b1l3-vocab-embed .pv3-quiz-retake:hover { background: var(--pv3-oxblood-dark); }\n.pavc-b1l3-vocab-embed .pv3-quiz-feedback { font-size: 0.95rem; margin: 0 0 10px; min-height: 1.4em; }\n.pavc-b1l3-vocab-embed .pv3-quiz-feedback.correct { color: #3d5c34; }\n.pavc-b1l3-vocab-embed .pv3-quiz-feedback.incorrect { color: var(--pv3-oxblood-dark); }\n.pavc-b1l3-vocab-embed .pv3-quiz-score { text-align: center; }\n.pavc-b1l3-vocab-embed .pv3-quiz-score .pv3-quiz-score-num { font-size: 2.2rem; font-weight: 700; color: var(--pv3-oxblood-dark); display: block; margin-bottom: 8px; font-family: 'Bitter', serif; }\n<\/style>\n\n<p class=\"pv3-support-note\"><em>A note before you start: I&#8217;d love for you to support the official textbook \u2014 this page is only meant as a review tool for people who already own a copy, not a replacement for it.<\/em><\/p>\n\n<p class=\"pv3-lede\">\n<b><span class=\"lang-zh-TW\">\u5be6\u7528\u8996\u807d\u83ef\u8a9e<\/span><span class=\"lang-zh-CN\">\u5b9e\u7528\u89c6\u542c\u534e\u8bed<\/span> Book 1 \u00b7 Lesson 3\u300c<span class=\"lang-zh-TW\">\u6211\u559c\u6b61\u770b\u96fb\u5f71<\/span><span class=\"lang-zh-CN\">\u6211\u559c\u6b22\u770b\u7535\u5f71<\/span>\u300dI Like Watching Movies<\/b> \u2014 this lesson&#8217;s vocabulary with pinyin, meaning, and an example sentence for every word, segmented word by word so you can see how each piece works on its own.\n<\/p>\n\n<div class=\"pv3-lang-toggle\">\n  <span class=\"pv3-lang-label\">TRANSLATION<\/span>\n  <button type=\"button\" class=\"pv3-lang-btn pv3-lang-active\" data-lang=\"en\">EN<\/button>\n  <button type=\"button\" class=\"pv3-lang-btn\" data-lang=\"ja\">\u65e5\u672c\u8a9e<\/button>\n  <button type=\"button\" class=\"pv3-lang-btn\" data-lang=\"ko\">\ud55c\uad6d\uc5b4<\/button>\n<\/div>\n\n<div class=\"pv3-sec-eyebrow\">01 \u2014 LIKES &amp; VIEWING<\/div>\n<div id=\"pv3-word-list-1\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">02 \u2014 LANGUAGES<\/div>\n<div id=\"pv3-word-list-2\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">03 \u2014 COUNTRIES<\/div>\n<div id=\"pv3-word-list-3\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">04 \u2014 THINGS &amp; OBJECTS<\/div>\n<div id=\"pv3-word-list-4\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">05 \u2014 VERBS &amp; LINKING WORDS<\/div>\n<div id=\"pv3-word-list-5\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">06 \u2014 PUT IT TOGETHER<\/div>\n<p class=\"pv3-dialogue-note\"><em>Note: this dialogue is not from the textbook \u2014 it&#8217;s a short conversation I made up using this lesson&#8217;s vocabulary (plus a bit of Lessons 1\u20132&#8217;s, for review) so you can see the words used together. For the actual Lesson 3 dialogue, I&#8217;d recommend picking up a copy of the textbook itself.<\/em><\/p>\n<div class=\"pv3-dialogue\" id=\"pv3-dialogue\"><\/div>\n\n<div class=\"pv3-sec-eyebrow\">07 \u2014 FLASHCARDS<\/div>\n<p class=\"pv3-fc-hint\">Tap the card to flip it, then use the arrows to move through the deck.<\/p>\n<div class=\"pv3-flashcard-wrap\">\n  <div class=\"pv3-flashcard\" id=\"pv3-flashcard\">\n    <div class=\"pv3-fc-face pv3-fc-front\" id=\"pv3-fc-front\"><\/div>\n    <div class=\"pv3-fc-face pv3-fc-back\" id=\"pv3-fc-back\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"pv3-flashcard-controls\">\n  <button class=\"pv3-game-btn\" id=\"pv3-fc-prev\">\u2039 Prev<\/button>\n  <span class=\"pv3-game-status\" id=\"pv3-fc-progress\">1 \/ 30<\/span>\n  <button class=\"pv3-game-btn\" id=\"pv3-fc-next\">Next \u203a<\/button>\n<\/div>\n\n<div class=\"pv3-sec-eyebrow\">08 \u2014 MATCH IT<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">Tap a Chinese word, then tap the meaning that matches it (in whichever translation language is selected above). Get all 8 pairs to finish the round.<\/p>\n<div class=\"pv3-game-bar\">\n  <button class=\"pv3-game-btn\" id=\"pv3-game-new\">New Round<\/button>\n  <span class=\"pv3-game-status\" id=\"pv3-game-status\">0 \/ 8 matched<\/span>\n<\/div>\n<div class=\"pv3-game-board\">\n  <div class=\"pv3-game-col\" id=\"pv3-game-col-zh\"><\/div>\n  <div class=\"pv3-game-col\" id=\"pv3-game-col-en\"><\/div>\n<\/div>\n<div class=\"pv3-game-win\" id=\"pv3-game-win\">\ud83c\udf89 All matched! Nice work.<\/div>\n\n<div class=\"pv3-sec-eyebrow\">09 \u2014 VOCABULARY QUIZ<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">17 questions covering this lesson&#8217;s vocabulary \u2014 a mix of multiple choice and type-the-pinyin. Questions pick up whichever translation language is selected above; switching mid-question applies from the next question onward.<\/p>\n<div class=\"pv3-quiz\" id=\"pv3-quiz\"><\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('pavc-b1l3-vocab-embed-1');\n  if (!root) return;\n\n  var SPEAKER_SVG = '<svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" fill=\"currentColor\" aria-hidden=\"true\">' +\n    '<path d=\"M7 4.5v15l13-7.5z\"><\/path>' +\n    '<\/svg>';\n\n  function W(t, s, p) { return { t: t, s: s, pt: p, ps: p }; }\n  function WD(t, s, pt, ps) { return { t: t, s: s, pt: pt, ps: ps }; }\n  function TR(en, ja, ko) { return { en: en, ja: ja, ko: ko }; }\n\n  var GROUPS = {\n    'pv3-word-list-1': [\n      { t: '\u559c\u6b61', s: '\u559c\u6b22', p: 'x\u01d0huan', meaning: TR('to like', '\u597d\u304d; \u6c17\u306b\u5165\u308b', '\uc88b\uc544\ud558\ub2e4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\u3002'],\n        exEn: TR('I like watching movies.', '\u79c1\u306f\u6620\u753b\u3092\u898b\u308b\u306e\u304c\u597d\u304d\u3067\u3059\u3002', '\uc800\ub294 \uc601\ud654 \ubcf4\ub294 \uac83\uc744 \uc88b\uc544\ud574\uc694.') },\n      { t: '\u770b', s: '\u770b', p: 'k\u00e0n', meaning: TR('to watch; to read; to look', '\u898b\u308b;\u8aad\u3080', '\ubcf4\ub2e4; \uc77d\ub2e4'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u770b','\u770b','k\u00e0n'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n        exEn: TR('What are you watching?', '\u3042\u306a\u305f\u306f\u4f55\u3092\u898b\u3066\u3044\u307e\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \ubb34\uc5c7\uc744 \ubcf4\uace0 \uc788\uc5b4\uc694?') },\n      { t: '\u96fb\u5f71', s: '\u7535\u5f71', p: 'di\u00e0ny\u01d0ng', meaning: TR('movie', '\u6620\u753b', '\uc601\ud654'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u500b','\u4e2a','ge'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u770b','\u597d\u770b','h\u01ceok\u00e0n'), '\u3002'],\n        exEn: TR('This movie is very good.', '\u3053\u306e\u6620\u753b\u306f\u3068\u3066\u3082\u9762\u767d\u3044\u3067\u3059\u3002', '\uc774 \uc601\ud654\ub294 \uc815\ub9d0 \uc7ac\ubbf8\uc788\uc5b4\uc694.') },\n      { t: '\u61c2', s: '\u61c2', p: 'd\u01d2ng', meaning: TR('to understand', '\u308f\u304b\u308b', '\uc54c\ub2e4; \uc774\ud574\ud558\ub2e4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u61c2','\u61c2','d\u01d2ng'), W('\u65e5\u6587','\u65e5\u6587','R\u00ecw\u00e9n'), '\u3002'],\n        exEn: TR(\"I don't understand Japanese.\", '\u79c1\u306f\u65e5\u672c\u8a9e\u304c\u308f\u304b\u308a\u307e\u305b\u3093\u3002', '\uc800\ub294 \uc77c\ubcf8\uc5b4\ub97c \ubab0\ub77c\uc694.') },\n      { t: '\u597d\u770b', s: '\u597d\u770b', p: 'h\u01ceok\u00e0n', meaning: TR('good-looking; good to watch\/read', '\u304d\u308c\u3044;\u9762\u767d\u3044', '\uba4b\uc9c0\ub2e4; \ubcfc\ub9cc\ud558\ub2e4'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u672c','\u672c','b\u011bn'), W('\u66f8','\u4e66','sh\u016b'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u770b','\u597d\u770b','h\u01ceok\u00e0n'), '\u3002'],\n        exEn: TR('This book is very good.', '\u3053\u306e\u672c\u306f\u3068\u3066\u3082\u9762\u767d\u3044\u3067\u3059\u3002', '\uc774 \ucc45\uc740 \uc815\ub9d0 \uc7ac\ubbf8\uc788\uc5b4\uc694.') }\n    ],\n    'pv3-word-list-2': [\n      { t: '\u4e2d\u6587', s: '\u4e2d\u6587', p: 'Zh\u014dngw\u00e9n', meaning: TR('Chinese (language)', '\u4e2d\u56fd\u8a9e', '\uc911\uad6d\uc5b4'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u61c2','\u61c2','d\u01d2ng'), W('\u4e2d\u6587','\u4e2d\u6587','Zh\u014dngw\u00e9n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Do you understand Chinese?', '\u3042\u306a\u305f\u306f\u4e2d\u56fd\u8a9e\u304c\u308f\u304b\u308a\u307e\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \uc911\uad6d\uc5b4\ub97c \uc54c\uc544\uc694?') },\n      { t: '\u83ef\u6587', s: '\u534e\u6587', p: 'Hu\u00e1w\u00e9n', meaning: TR('the Chinese language (more formal\/literary term than \u4e2d\u6587)', '\u4e2d\u56fd\u8a9e (\u4e2d\u6587\u3088\u308a\u3084\u3084\u6587\u8a9e\u7684)', '\uc911\uad6d\uc5b4 (\uc911\ubb38\ubcf4\ub2e4 \uaca9\uc2dd \uc788\ub294 \ud45c\ud604)'),\n        ex: [WD('\u9019','\u8fd9','Zh\u00e8','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u83ef\u6587','\u534e\u6587','Hu\u00e1w\u00e9n'), W('\u5831','\u62a5','b\u00e0o'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Is this a Chinese-language newspaper?', '\u3053\u308c\u306f\u4e2d\u56fd\u8a9e\u306e\u65b0\u805e\u3067\u3059\u304b\u3002', '\uc774\uac83\uc740 \uc911\uad6d\uc5b4 \uc2e0\ubb38\uc774\uc5d0\uc694?') },\n      { t: '\u82f1\u6587', s: '\u82f1\u6587', p: 'Y\u012bngw\u00e9n', meaning: TR('English (language)', '\u82f1\u8a9e', '\uc601\uc5b4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u770b','\u770b','k\u00e0n'), W('\u82f1\u6587','\u82f1\u6587','Y\u012bngw\u00e9n'), W('\u66f8','\u4e66','sh\u016b'), '\u3002'],\n        exEn: TR('I read English books.', '\u79c1\u306f\u82f1\u8a9e\u306e\u672c\u3092\u8aad\u307f\u307e\u3059\u3002', '\uc800\ub294 \uc601\uc5b4 \ucc45\uc744 \uc77d\uc5b4\uc694.') },\n      { t: '\u65e5\u6587', s: '\u65e5\u6587', p: 'R\u00ecw\u00e9n', meaning: TR('Japanese (language)', '\u65e5\u672c\u8a9e', '\uc77c\ubcf8\uc5b4'),\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u65e5\u6587','\u65e5\u6587','R\u00ecw\u00e9n'), '\u3002'],\n        exEn: TR('He likes Japanese.', '\u5f7c\u306f\u65e5\u672c\u8a9e\u304c\u597d\u304d\u3067\u3059\u3002', '\uadf8\ub294 \uc77c\ubcf8\uc5b4\ub97c \uc88b\uc544\ud574\uc694.') },\n      { t: '\u6cd5\u6587', s: '\u6cd5\u6587', p: 'F\u01cew\u00e9n', meaning: TR('French (language)', '\u30d5\u30e9\u30f3\u30b9\u8a9e', '\ud504\ub791\uc2a4\uc5b4'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u6cd5\u6587','\u6cd5\u6587','F\u01cew\u00e9n'), W('\u66f8','\u4e66','sh\u016b'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Is this a French book?', '\u3053\u308c\u306f\u30d5\u30e9\u30f3\u30b9\u8a9e\u306e\u672c\u3067\u3059\u304b\u3002', '\uc774\uac83\uc740 \ud504\ub791\uc2a4\uc5b4 \ucc45\uc774\uc5d0\uc694?') },\n      { t: '\u5fb7\u6587', s: '\u5fb7\u6587', p: 'D\u00e9w\u00e9n', meaning: TR('German (language)', '\u30c9\u30a4\u30c4\u8a9e', '\ub3c5\uc77c\uc5b4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u61c2','\u61c2','d\u01d2ng'), W('\u5fb7\u6587','\u5fb7\u6587','D\u00e9w\u00e9n'), '\u3002'],\n        exEn: TR(\"I don't understand German.\", '\u79c1\u306f\u30c9\u30a4\u30c4\u8a9e\u304c\u308f\u304b\u308a\u307e\u305b\u3093\u3002', '\uc800\ub294 \ub3c5\uc77c\uc5b4\ub97c \ubab0\ub77c\uc694.') },\n      { t: '\u6587', s: '\u6587', p: 'w\u00e9n', meaning: TR('written language', '\u8a00\u8a9e;\u6587\u5b57', '\uc5b8\uc5b4; \ubb38\uc790'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), W('\u6587','\u6587','w\u00e9n'), '\uff1f'],\n        exEn: TR('What language is this?', '\u3053\u308c\u306f\u4f55\u8a9e\u3067\u3059\u304b\u3002', '\uc774\uac83\uc740 \ubb34\uc2a8 \uc5b8\uc5b4\uc608\uc694?') }\n    ],\n    'pv3-word-list-3': [\n      { t: '\u4e2d\u570b', s: '\u4e2d\u56fd', p: 'Zh\u014dnggu\u00f3', meaning: TR('China; Chinese', '\u4e2d\u56fd', '\uc911\uad6d'),\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), W('\u662f','\u662f','sh\u00ec'), WD('\u4e2d\u570b','\u4e2d\u56fd','Zh\u014dnggu\u00f3','Zh\u014dnggu\u00f3'), W('\u4eba','\u4eba','r\u00e9n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Is he Chinese?', '\u5f7c\u306f\u4e2d\u56fd\u4eba\u3067\u3059\u304b\u3002', '\uadf8\ub294 \uc911\uad6d \uc0ac\ub78c\uc774\uc5d0\uc694?') },\n      { t: '\u65e5\u672c', s: '\u65e5\u672c', p: 'R\u00ecb\u011bn', meaning: TR('Japan', '\u65e5\u672c', '\uc77c\ubcf8'),\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), W('\u662f','\u662f','sh\u00ec'), W('\u65e5\u672c','\u65e5\u672c','R\u00ecb\u011bn'), W('\u4eba','\u4eba','r\u00e9n'), '\u3002'],\n        exEn: TR('He is Japanese.', '\u5f7c\u306f\u65e5\u672c\u4eba\u3067\u3059\u3002', '\uadf8\ub294 \uc77c\ubcf8 \uc0ac\ub78c\uc774\uc5d0\uc694.') },\n      { t: '\u6cd5\u570b', s: '\u6cd5\u56fd', p: 'F\u01cegu\u00f3', meaning: TR('France', '\u30d5\u30e9\u30f3\u30b9', '\ud504\ub791\uc2a4'),\n        ex: [W('\u5979','\u5979','T\u0101'), W('\u662f','\u662f','sh\u00ec'), WD('\u6cd5\u570b','\u6cd5\u56fd','F\u01cegu\u00f3','F\u01cegu\u00f3'), W('\u4eba','\u4eba','r\u00e9n'), '\u3002'],\n        exEn: TR('She is French.', '\u5f7c\u5973\u306f\u30d5\u30e9\u30f3\u30b9\u4eba\u3067\u3059\u3002', '\uadf8\ub140\ub294 \ud504\ub791\uc2a4 \uc0ac\ub78c\uc774\uc5d0\uc694.') },\n      { t: '\u5fb7\u570b', s: '\u5fb7\u56fd', p: 'D\u00e9gu\u00f3', meaning: TR('Germany', '\u30c9\u30a4\u30c4', '\ub3c5\uc77c'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u662f','\u662f','sh\u00ec'), WD('\u5fb7\u570b','\u5fb7\u56fd','D\u00e9gu\u00f3','D\u00e9gu\u00f3'), W('\u4eba','\u4eba','r\u00e9n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Are you German?', '\u3042\u306a\u305f\u306f\u30c9\u30a4\u30c4\u4eba\u3067\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \ub3c5\uc77c \uc0ac\ub78c\uc774\uc5d0\uc694?') }\n    ],\n    'pv3-word-list-4': [\n      { t: '\u96fb\u8996', s: '\u7535\u89c6', p: 'di\u00e0nsh\u00ec', meaning: TR('TV', '\u30c6\u30ec\u30d3', '\ud154\ub808\ube44\uc804'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u5f88','\u5f88','h\u011bn'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u770b','\u770b','k\u00e0n'), WD('\u96fb\u8996','\u7535\u89c6','di\u00e0nsh\u00ec','di\u00e0nsh\u00ec'), '\u3002'],\n        exEn: TR('I really like watching TV.', '\u79c1\u306f\u30c6\u30ec\u30d3\u3092\u898b\u308b\u306e\u304c\u597d\u304d\u3067\u3059\u3002', '\uc800\ub294 \ud154\ub808\ube44\uc804 \ubcf4\ub294 \uac83\uc744 \uc88b\uc544\ud574\uc694.') },\n      { t: '\u6c7d\u8eca', s: '\u6c7d\u8f66', p: 'q\u00ecch\u0113', meaning: TR('automobile; car', '\u81ea\u52d5\u8eca', '\uc790\ub3d9\ucc28'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), WD('\u8ab0','\u8c01','sh\u00e9i','sh\u00e9i'), W('\u7684','\u7684','de'), WD('\u6c7d\u8eca','\u6c7d\u8f66','q\u00ecch\u0113','q\u00ecch\u0113'), '\uff1f'],\n        exEn: TR('Whose car is this?', '\u3053\u308c\u306f\u8ab0\u306e\u8eca\u3067\u3059\u304b\u3002', '\uc774\uac83\uc740 \ub204\uad6c\uc758 \ucc28\uc608\uc694?') },\n      { t: '\u8eca', s: '\u8f66', p: 'ch\u0113', meaning: TR('vehicle; car', '\u8eca', '\ucc28\ub7c9; \uc790\ub3d9\ucc28'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u8981','\u8981','y\u00e0o'), W('\u8cb7','\u4e70','m\u01cei'), WD('\u8eca','\u8f66','ch\u0113','ch\u0113'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Do you want to buy a car?', '\u3042\u306a\u305f\u306f\u8eca\u3092\u8cb7\u3044\u305f\u3044\u3067\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \ucc28\ub97c \uc0ac\uace0 \uc2f6\uc5b4\uc694?') },\n      { t: '\u66f8', s: '\u4e66', p: 'sh\u016b', meaning: TR('book', '\u672c', '\ucc45'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u6211','\u6211','w\u01d2'), W('\u7684','\u7684','de'), WD('\u66f8','\u4e66','sh\u016b','sh\u016b'), '\u3002'],\n        exEn: TR('This is my book.', '\u3053\u308c\u306f\u79c1\u306e\u672c\u3067\u3059\u3002', '\uc774\uac83\uc740 \uc81c \ucc45\uc774\uc5d0\uc694.') },\n      { t: '\u5831', s: '\u62a5', p: 'b\u00e0o', meaning: TR('newspaper', '\u65b0\u805e', '\uc2e0\ubb38'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u770b','\u770b','k\u00e0n'), WD('\u5831','\u62a5','b\u00e0o','b\u00e0o'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: TR('Do you read the newspaper?', '\u3042\u306a\u305f\u306f\u65b0\u805e\u3092\u8aad\u307f\u307e\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \uc2e0\ubb38\uc744 \uc77d\uc5b4\uc694?') },\n      { t: '\u7b46', s: '\u7b14', p: 'b\u01d0', meaning: TR('pen', '\u30da\u30f3', '\ud39c'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u679d','\u679d','zh\u012b'), W('\u7b46','\u7b14','b\u01d0'), W('\u5f88','\u5f88','h\u011bn'), W('\u8cb4','\u8d35','gu\u00ec'), '\u3002'],\n        exEn: TR('This pen is very expensive.', '\u3053\u306e\u30da\u30f3\u306f\u3068\u3066\u3082\u9ad8\u3044\u3067\u3059\u3002', '\uc774 \ud39c\uc740 \ub9e4\uc6b0 \ube44\uc2f8\uc694.') },\n      { t: '\u6771\u897f', s: '\u4e1c\u897f', p: 'd\u014dngxi', meaning: TR('thing', '\u3082\u306e', '\ubb3c\uac74'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u8981','\u8981','y\u00e0o'), W('\u8cb7','\u4e70','m\u01cei'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), WD('\u6771\u897f','\u4e1c\u897f','d\u014dngxi','d\u014dngxi'), '\uff1f'],\n        exEn: TR('What thing do you want to buy?', '\u3042\u306a\u305f\u306f\u4f55\u3092\u8cb7\u3044\u305f\u3044\u3067\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \ubb34\uc5c7\uc744 \uc0ac\uace0 \uc2f6\uc5b4\uc694?') }\n    ],\n    'pv3-word-list-5': [\n      { t: '\u8981', s: '\u8981', p: 'y\u00e0o', meaning: TR('to want', '\u6b32\u3057\u3044;\u301c\u3057\u305f\u3044', '\uc6d0\ud558\ub2e4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u8cb7','\u4e70','m\u01cei'), W('\u4e00','\u4e00','y\u00ec'), W('\u672c','\u672c','b\u011bn'), W('\u66f8','\u4e66','sh\u016b'), '\u3002'],\n        exEn: TR('I want to buy a book.', '\u79c1\u306f\u672c\u3092\u4e00\u518a\u8cb7\u3044\u305f\u3044\u3067\u3059\u3002', '\uc800\ub294 \ucc45\uc744 \ud55c \uad8c \uc0ac\uace0 \uc2f6\uc5b4\uc694.') },\n      { t: '\u8cb7', s: '\u4e70', p: 'm\u01cei', meaning: TR('to buy', '\u8cb7\u3046', '\uc0ac\ub2e4'),\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u8cb7','\u4e70','m\u01cei'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n        exEn: TR('What are you buying?', '\u3042\u306a\u305f\u306f\u4f55\u3092\u8cb7\u3044\u307e\u3059\u304b\u3002', '\ub2f9\uc2e0\uc740 \ubb34\uc5c7\uc744 \uc0ac\uc694?') },\n      { t: '\u6709', s: '\u6709', p: 'y\u01d2u', meaning: TR('to have; there is', '\u6301\u3063\u3066\u3044\u308b;\u3042\u308b', '\uac00\uc9c0\ub2e4; \uc788\ub2e4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u6709','\u6709','y\u01d2u'), W('\u4e00','\u4e00','y\u00ec'), W('\u672c','\u672c','b\u011bn'), W('\u82f1\u6587','\u82f1\u6587','Y\u012bngw\u00e9n'), W('\u66f8','\u4e66','sh\u016b'), '\u3002'],\n        exEn: TR('I have an English book.', '\u79c1\u306f\u82f1\u8a9e\u306e\u672c\u3092\u4e00\u518a\u6301\u3063\u3066\u3044\u307e\u3059\u3002', '\uc800\ub294 \uc601\uc5b4 \ucc45\uc744 \ud55c \uad8c \uac00\uc9c0\uace0 \uc788\uc5b4\uc694.') },\n      { t: '\u6c92', s: '\u6ca1', p: 'm\u00e9i', meaning: TR('not (have)', '(\u6301\u3063\u3066)\u3044\u306a\u3044', '(\uac00\uc9c0\uace0 \uc788\uc9c0) \uc54a\ub2e4'),\n        ex: [W('\u6211','\u6211','W\u01d2'), WD('\u6c92','\u6ca1','m\u00e9i','m\u00e9i'), W('\u6709','\u6709','y\u01d2u'), W('\u8eca','\u8f66','ch\u0113'), '\u3002'],\n        exEn: TR(\"I don't have a car.\", '\u79c1\u306f\u8eca\u3092\u6301\u3063\u3066\u3044\u307e\u305b\u3093\u3002', '\uc800\ub294 \ucc28\uac00 \uc5c6\uc5b4\uc694.') },\n      { t: '\u90fd', s: '\u90fd', p: 'd\u014du', meaning: TR('all; both', '\u307f\u3093\u306a;\u4e21\u65b9', '\ubaa8\ub450; \ub458 \ub2e4'),\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u90fd','\u90fd','d\u014du'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\u3002'],\n        exEn: TR('We all like watching movies.', '\u79c1\u305f\u3061\u306f\u307f\u3093\u306a\u6620\u753b\u3092\u898b\u308b\u306e\u304c\u597d\u304d\u3067\u3059\u3002', '\uc6b0\ub9ac\ub294 \ubaa8\ub450 \uc601\ud654 \ubcf4\ub294 \uac83\uc744 \uc88b\uc544\ud574\uc694.') },\n      { t: '\u53ef\u662f', s: '\u53ef\u662f', p: 'k\u011bsh\u00ec', meaning: TR('but; however', '\u3067\u3082;\u3057\u304b\u3057', '\uadf8\ub7ec\ub098; \ud558\uc9c0\ub9cc'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u672c','\u672c','b\u011bn'), W('\u66f8','\u4e66','sh\u016b'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u770b','\u597d\u770b','h\u01ceok\u00e0n'), '\uff0c', W('\u53ef\u662f','\u53ef\u662f','k\u011bsh\u00ec'), W('\u5f88','\u5f88','h\u011bn'), W('\u8cb4','\u8d35','gu\u00ec'), '\u3002'],\n        exEn: TR('This book is very good, but very expensive.', '\u3053\u306e\u672c\u306f\u3068\u3066\u3082\u9762\u767d\u3044\u3067\u3059\u304c\u3001\u3068\u3066\u3082\u9ad8\u3044\u3067\u3059\u3002', '\uc774 \ucc45\uc740 \uc815\ub9d0 \uc7ac\ubbf8\uc788\uc9c0\ub9cc, \ub9e4\uc6b0 \ube44\uc2f8\uc694.') },\n      { t: '\u8cb4', s: '\u8d35', p: 'gu\u00ec', meaning: TR('expensive', '\u9ad8\u3044(\u5024\u6bb5)', '\ube44\uc2f8\ub2e4'),\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u8f1b','\u8f86','li\u00e0ng'), W('\u6c7d\u8eca','\u6c7d\u8f66','q\u00ecch\u0113'), W('\u592a','\u592a','t\u00e0i'), W('\u8cb4','\u8d35','gu\u00ec'), W('\u4e86','\u4e86','le'), '\uff01'],\n        exEn: TR('This car is way too expensive.', '\u3053\u306e\u8eca\u306f\u9ad8\u3059\u304e\u307e\u3059\u3002', '\uc774 \ucc28\ub294 \ub108\ubb34 \ube44\uc2f8\uc694.') }\n    ]\n  };\n\n  var DIALOGUE = [\n    { speakerT: '\u6797\u5c0f\u59d0', speakerS: '\u6797\u5c0f\u59d0',\n      tokens: [W('\u9673','\u9648','Ch\u00e9n'), W('\u5148\u751f','\u5148\u751f','xi\u0101nsh\u0113ng'), '\uff0c', W('\u60a8','\u60a8','n\u00edn'), W('\u597d','\u597d','h\u01ceo'), '\uff01', W('\u60a8','\u60a8','N\u00edn'), W('\u770b','\u770b','k\u00e0n'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n      en: TR('Mr. Chen, hello! What are you reading?', '\u9673\u3055\u3093\u3001\u3053\u3093\u306b\u3061\u306f!\u4f55\u3092\u8aad\u3093\u3067\u3044\u307e\u3059\u304b\u3002', '\uc9c4 \uc120\uc0dd\ub2d8, \uc548\ub155\ud558\uc138\uc694! \ubb34\uc5c7\uc744 \ubcf4\uace0 \uacc4\uc138\uc694?') },\n    { speakerT: '\u9673\u5148\u751f', speakerS: '\u9648\u5148\u751f',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u770b','\u770b','k\u00e0n'), W('\u4e00','\u4e00','y\u00ec'), W('\u672c','\u672c','b\u011bn'), W('\u6cd5\u6587','\u6cd5\u6587','F\u01cew\u00e9n'), W('\u66f8','\u4e66','sh\u016b'), '\u3002', W('\u9019','\u8fd9','Zh\u00e8'), W('\u672c','\u672c','b\u011bn'), W('\u66f8','\u4e66','sh\u016b'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u770b','\u597d\u770b','h\u01ceok\u00e0n'), '\uff0c', W('\u53ef\u662f','\u53ef\u662f','k\u011bsh\u00ec'), W('\u5f88','\u5f88','h\u011bn'), W('\u8cb4','\u8d35','gu\u00ec'), '\u3002'],\n      en: TR('I\\u2019m reading a French book. This book is very good, but very expensive.', '\u30d5\u30e9\u30f3\u30b9\u8a9e\u306e\u672c\u3092\u8aad\u3093\u3067\u3044\u307e\u3059\u3002\u3053\u306e\u672c\u306f\u3068\u3066\u3082\u9762\u767d\u3044\u3067\u3059\u304c\u3001\u3068\u3066\u3082\u9ad8\u3044\u3067\u3059\u3002', '\ud504\ub791\uc2a4\uc5b4 \ucc45\uc744 \uc77d\uace0 \uc788\uc5b4\uc694. \uc774 \ucc45\uc740 \uc815\ub9d0 \uc7ac\ubbf8\uc788\uc9c0\ub9cc \ub9e4\uc6b0 \ube44\uc2f8\uc694.') },\n    { speakerT: '\u6797\u5c0f\u59d0', speakerS: '\u6797\u5c0f\u59d0',\n      tokens: [W('\u662f','\u662f','Sh\u00ec'), W('\u55ce','\u5417','ma'), '\uff1f', W('\u60a8','\u60a8','N\u00edn'), W('\u61c2','\u61c2','d\u01d2ng'), W('\u6cd5\u6587','\u6cd5\u6587','F\u01cew\u00e9n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n      en: TR('Really? Do you understand French?', '\u305d\u3046\u3067\u3059\u304b\u3002\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u308f\u304b\u308a\u307e\u3059\u304b\u3002', '\uadf8\ub798\uc694? \ud504\ub791\uc2a4\uc5b4\ub97c \uc544\uc138\uc694?') },\n    { speakerT: '\u9673\u5148\u751f', speakerS: '\u9648\u5148\u751f',\n      tokens: [W('\u61c2','\u61c2','D\u01d2ng'), '\uff0c', W('\u6211','\u6211','w\u01d2'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u6cd5\u6587','\u6cd5\u6587','F\u01cew\u00e9n'), '\u3002', W('\u6211','\u6211','W\u01d2'), W('\u4e5f','\u4e5f','y\u011b'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff0c', WD('\u6cd5\u570b','\u6cd5\u56fd','F\u01cegu\u00f3','F\u01cegu\u00f3'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u770b','\u597d\u770b','h\u01ceok\u00e0n'), '\u3002'],\n      en: TR('Yes, I like French. I also like watching movies \\u2014 French movies are great.', '\u308f\u304b\u308a\u307e\u3059\u3001\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u597d\u304d\u3067\u3059\u3002\u6620\u753b\u3092\u898b\u308b\u306e\u3082\u597d\u304d\u3067\u3059\u3001\u30d5\u30e9\u30f3\u30b9\u6620\u753b\u306f\u3068\u3066\u3082\u9762\u767d\u3044\u3067\u3059\u3002', '\uc54c\uc544\uc694, \ud504\ub791\uc2a4\uc5b4\ub97c \uc88b\uc544\ud574\uc694. \uc601\ud654 \ubcf4\ub294 \uac83\ub3c4 \uc88b\uc544\ud574\uc694, \ud504\ub791\uc2a4 \uc601\ud654\ub294 \uc815\ub9d0 \uc7ac\ubbf8\uc788\uc5b4\uc694.') },\n    { speakerT: '\u6797\u5c0f\u59d0', speakerS: '\u6797\u5c0f\u59d0',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u4e5f','\u4e5f','y\u011b'), WD('\u559c\u6b61','\u559c\u6b22','x\u01d0huan','x\u01d0huan'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff01', W('\u53ef\u662f','\u53ef\u662f','K\u011bsh\u00ec'), W('\u6211','\u6211','w\u01d2'), WD('\u6c92','\u6ca1','m\u00e9i','m\u00e9i'), W('\u6709','\u6709','y\u01d2u'), WD('\u96fb\u8996','\u7535\u89c6','di\u00e0nsh\u00ec','di\u00e0nsh\u00ec'), '\u3002'],\n      en: TR(\"I like watching movies too! But I don't have a TV.\", '\u79c1\u3082\u6620\u753b\u3092\u898b\u308b\u306e\u304c\u597d\u304d\u3067\u3059!\u3067\u3082\u30c6\u30ec\u30d3\u304c\u3042\u308a\u307e\u305b\u3093\u3002', '\uc800\ub3c4 \uc601\ud654 \ubcf4\ub294 \uac78 \uc88b\uc544\ud574\uc694! \uadfc\ub370 \ud154\ub808\ube44\uc804\uc774 \uc5c6\uc5b4\uc694.') },\n    { speakerT: '\u9673\u5148\u751f', speakerS: '\u9648\u5148\u751f',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u6709','\u6709','y\u01d2u'), WD('\u96fb\u8996','\u7535\u89c6','di\u00e0nsh\u00ec','di\u00e0nsh\u00ec'), '\u3002', W('\u60a8','\u60a8','N\u00edn'), W('\u8981','\u8981','y\u00e0o'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u55ce','\u5417','ma'), '\uff1f'],\n      en: TR('I have a TV. Do you want to watch a movie?', '\u79c1\u306f\u30c6\u30ec\u30d3\u304c\u3042\u308a\u307e\u3059\u3002\u6620\u753b\u3092\u898b\u307e\u3059\u304b\u3002', '\uc800\ub294 \ud154\ub808\ube44\uc804\uc774 \uc788\uc5b4\uc694. \uc601\ud654 \ubcf4\uc2e4\ub798\uc694?') },\n    { speakerT: '\u6797\u5c0f\u59d0', speakerS: '\u6797\u5c0f\u59d0',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), W('\u554a','\u554a','a'), '\uff0c', WD('\u8b1d\u8b1d','\u8c22\u8c22','Xi\u00e8xie','xi\u00e8xie'), W('\u60a8','\u60a8','n\u00edn'), '\uff01'],\n      en: TR('Sure, thank you!', '\u306f\u3044\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059!', '\ub124, \uac10\uc0ac\ud569\ub2c8\ub2e4!') }\n  ];\n\n  var ALL_WORDS = [];\n  Object.keys(GROUPS).forEach(function (k) {\n    GROUPS[k].forEach(function (w) { ALL_WORDS.push(w); });\n  });\n\n  function trSpans(tr) {\n    return '<span class=\"pv3-tr pv3-tr-en\">' + tr.en + '<\/span>' +\n           '<span class=\"pv3-tr pv3-tr-ja\">' + tr.ja + '<\/span>' +\n           '<span class=\"pv3-tr pv3-tr-ko\">' + tr.ko + '<\/span>';\n  }\n\n  function rubyWord(w) {\n    return '<span class=\"pv3-sent-word\">' +\n      '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + w.t + '<\/span><rt>' + w.pt + '<\/rt><\/ruby>' +\n      '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + w.s + '<\/span><rt>' + w.ps + '<\/rt><\/ruby>' +\n      '<\/span>';\n  }\n\n  function renderTokens(tokens) {\n    var html = '';\n    tokens.forEach(function (tok) {\n      if (typeof tok === 'string') {\n        html += '<span class=\"pv3-punct\">' + tok + '<\/span>';\n      } else {\n        html += rubyWord(tok);\n      }\n    });\n    return html;\n  }\n\n  function headwordRuby(t, s, pt, ps) {\n    return '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + t + '<\/span><rt>' + pt + '<\/rt><\/ruby>' +\n           '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + s + '<\/span><rt>' + ps + '<\/rt><\/ruby>';\n  }\n\n  var counter = 0;\n  Object.keys(GROUPS).forEach(function (containerId) {\n    var container = root.querySelector('#' + containerId);\n    if (!container) return;\n    var html = '';\n    GROUPS[containerId].forEach(function (w) {\n      counter++;\n      var num = (counter < 10 ? '0' : '') + counter;\n      html += '<div class=\"pv3-word-card\">' +\n        '<div class=\"pv3-word-top\">' +\n          '<span class=\"pv3-num\">' + num + '<\/span>' +\n          '<span class=\"pv3-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>' +\n          '<span class=\"pv3-meaning\">' + trSpans(w.meaning) + '<\/span>' +\n          '<button class=\"pv3-speaker\" data-trad=\"' + w.t + '\" data-simp=\"' + w.s + '\" aria-label=\"Play pronunciation\">' + SPEAKER_SVG + '<\/button>' +\n        '<\/div>' +\n        '<div class=\"pv3-example\">' +\n          renderTokens(w.ex) +\n          '<span class=\"pv3-en\">' + trSpans(w.exEn) + '<\/span>' +\n        '<\/div>' +\n      '<\/div>';\n    });\n    container.innerHTML = html;\n  });\n\n  var dialogueEl = root.querySelector('#pv3-dialogue');\n  if (dialogueEl) {\n    var dHtml = '';\n    DIALOGUE.forEach(function (line) {\n      dHtml += '<div class=\"pv3-line\">' +\n        '<span class=\"pv3-speaker-tag\">' +\n          '<span class=\"lang-zh-TW\">' + line.speakerT + '<\/span>' +\n          '<span class=\"lang-zh-CN\">' + line.speakerS + '<\/span>' +\n        '<\/span>' +\n        '<span class=\"pv3-line-body\">' +\n          renderTokens(line.tokens) +\n          '<span class=\"pv3-line-en\">' + trSpans(line.en) + '<\/span>' +\n        '<\/span>' +\n      '<\/div>';\n    });\n    dialogueEl.innerHTML = dHtml;\n  }\n\n  \/\/ ---- Translation language toggle ----\n  var langBtns = root.querySelectorAll('.pv3-lang-btn');\n  langBtns.forEach(function (btn) {\n    btn.addEventListener('click', function () {\n      var lang = btn.getAttribute('data-lang');\n      root.classList.remove('pv3-lang-en', 'pv3-lang-ja', 'pv3-lang-ko');\n      root.classList.add('pv3-lang-' + lang);\n      langBtns.forEach(function (b) { b.classList.remove('pv3-lang-active'); });\n      btn.classList.add('pv3-lang-active');\n    });\n  });\n  root.classList.add('pv3-lang-en');\n\n  \/\/ ---- Flashcards ----\n  var fcCard = root.querySelector('#pv3-flashcard');\n  var fcFront = root.querySelector('#pv3-fc-front');\n  var fcBack = root.querySelector('#pv3-fc-back');\n  var fcProgress = root.querySelector('#pv3-fc-progress');\n  var fcPrevBtn = root.querySelector('#pv3-fc-prev');\n  var fcNextBtn = root.querySelector('#pv3-fc-next');\n  var fcIndex = 0;\n  var fcFlipped = false;\n\n  function renderFlashcard() {\n    var w = ALL_WORDS[fcIndex];\n    if (!w || !fcFront || !fcBack) return;\n    fcFront.innerHTML = '<span class=\"pv3-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>';\n    fcBack.innerHTML = '<span class=\"pv3-meaning\">' + trSpans(w.meaning) + '<\/span>';\n    if (fcProgress) fcProgress.textContent = (fcIndex + 1) + ' \/ ' + ALL_WORDS.length;\n    if (fcCard) fcCard.classList.remove('pv3-flipped');\n    fcFlipped = false;\n  }\n\n  if (fcCard) {\n    fcCard.addEventListener('click', function () {\n      fcFlipped = !fcFlipped;\n      fcCard.classList.toggle('pv3-flipped', fcFlipped);\n    });\n  }\n  if (fcPrevBtn) fcPrevBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex - 1 + ALL_WORDS.length) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  if (fcNextBtn) fcNextBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex + 1) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  renderFlashcard();\n\n  \/\/ ---- Match It game ----\n  var gameColZh = root.querySelector('#pv3-game-col-zh');\n  var gameColEn = root.querySelector('#pv3-game-col-en');\n  var gameStatus = root.querySelector('#pv3-game-status');\n  var gameWin = root.querySelector('#pv3-game-win');\n  var gameNewBtn = root.querySelector('#pv3-game-new');\n  var gameRound = [];\n  var gameSelectedZh = null;\n  var gameSelectedEn = null;\n  var gameMatchedCount = 0;\n  var gameBusy = false;\n\n  function shuffle(arr) {\n    var a = arr.slice();\n    for (var i = a.length - 1; i > 0; i--) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var tmp = a[i]; a[i] = a[j]; a[j] = tmp;\n    }\n    return a;\n  }\n\n  function startRound() {\n    gameRound = shuffle(ALL_WORDS).slice(0, 8);\n    gameSelectedZh = null;\n    gameSelectedEn = null;\n    gameMatchedCount = 0;\n    gameBusy = false;\n    if (gameWin) gameWin.classList.remove('pv3-show');\n\n    var zhOrder = shuffle(gameRound);\n    var enOrder = shuffle(gameRound);\n\n    gameColZh.innerHTML = zhOrder.map(function (w) {\n      return '<button class=\"pv3-tile\" data-id=\"' + w.t + '\" data-side=\"zh\">' +\n        '<span class=\"lang-zh-TW\">' + w.t + '<\/span><span class=\"lang-zh-CN\">' + w.s + '<\/span>' +\n        '<span class=\"pv3-tile-py\">' + (w.pt || w.p) + '<\/span>' +\n      '<\/button>';\n    }).join('');\n\n    gameColEn.innerHTML = enOrder.map(function (w) {\n      return '<button class=\"pv3-tile\" data-id=\"' + w.t + '\" data-side=\"en\">' + trSpans(w.meaning) + '<\/button>';\n    }).join('');\n\n    updateGameStatus();\n  }\n\n  function updateGameStatus() {\n    if (gameStatus) gameStatus.textContent = gameMatchedCount + ' \/ ' + gameRound.length + ' matched';\n  }\n\n  function handleTileClick(tile) {\n    if (gameBusy || tile.classList.contains('pv3-matched')) return;\n    var side = tile.getAttribute('data-side');\n\n    if (side === 'zh') {\n      if (gameSelectedZh) gameSelectedZh.classList.remove('pv3-selected');\n      gameSelectedZh = tile;\n      tile.classList.add('pv3-selected');\n    } else {\n      if (gameSelectedEn) gameSelectedEn.classList.remove('pv3-selected');\n      gameSelectedEn = tile;\n      tile.classList.add('pv3-selected');\n    }\n\n    if (gameSelectedZh) {\n      if (gameSelectedEn) {\n        var zhId = gameSelectedZh.getAttribute('data-id');\n        var enId = gameSelectedEn.getAttribute('data-id');\n        if (zhId === enId) {\n          gameSelectedZh.classList.remove('pv3-selected');\n          gameSelectedEn.classList.remove('pv3-selected');\n          gameSelectedZh.classList.add('pv3-matched');\n          gameSelectedEn.classList.add('pv3-matched');\n          gameMatchedCount++;\n          updateGameStatus();\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n          var roundDone = (gameMatchedCount === gameRound.length);\n          if (roundDone) {\n            if (gameWin) {\n              gameWin.classList.add('pv3-show');\n            }\n          }\n        } else {\n          gameBusy = true;\n          var z = gameSelectedZh, en = gameSelectedEn;\n          z.classList.add('pv3-wrong');\n          en.classList.add('pv3-wrong');\n          setTimeout(function () {\n            z.classList.remove('pv3-selected', 'pv3-wrong');\n            en.classList.remove('pv3-selected', 'pv3-wrong');\n            gameBusy = false;\n          }, 400);\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n        }\n      }\n    }\n  }\n\n  root.addEventListener('click', function (e) {\n    var tile = e.target.closest('.pv3-tile');\n    if (tile) {\n      if (root.contains(tile)) handleTileClick(tile);\n    }\n  });\n  if (gameNewBtn) gameNewBtn.addEventListener('click', startRound);\n\n  startRound();\n\n  \/\/ ---- Vocabulary Quiz (follows the EN\/JA\/KO translation toggle) ----\n  function QMC(promptTR, optionsTR, answer) { return { type: 'mc', prompt: promptTR, options: optionsTR, answer: answer }; }\n  function QTYPE(promptTR, accept) { return { type: 'type', prompt: promptTR, accept: accept }; }\n\n  var QUIZ_DATA = [\n    QTYPE(TR('Type the pinyin for \u61c2.', '\u61c2\u306e\u30d4\u30f3\u30a4\u30f3\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002', '\u61c2\uc758 \ubcd1\uc74c\uc744 \uc785\ub825\ud558\uc138\uc694.'), ['dong']),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u559c\u6b61<\/span><span class=\"lang-zh-CN\">\u559c\u6b22<\/span> means...', '<span class=\"lang-zh-TW\">\u559c\u6b61<\/span><span class=\"lang-zh-CN\">\u559c\u6b22<\/span>\u306e\u610f\u5473\u306f?', '<span class=\"lang-zh-TW\">\u559c\u6b61<\/span><span class=\"lang-zh-CN\">\u559c\u6b22<\/span>\uc758 \ub73b\uc740?'),\n      [\n        TR('to like', '\u597d\u304d', '\uc88b\uc544\ud558\ub2e4'),\n        TR('to watch', '\u898b\u308b', '\ubcf4\ub2e4'),\n        TR('to buy', '\u8cb7\u3046', '\uc0ac\ub2e4'),\n        TR('to understand', '\u308f\u304b\u308b', '\uc774\ud574\ud558\ub2e4')\n      ], 0),\n    QMC(\n      TR('\u770b means...', '\u770b\u306e\u610f\u5473\u306f?', '\u770b\uc758 \ub73b\uc740?'),\n      [\n        TR('to watch; to read; to look', '\u898b\u308b;\u8aad\u3080', '\ubcf4\ub2e4; \uc77d\ub2e4'),\n        TR('to like', '\u597d\u304d', '\uc88b\uc544\ud558\ub2e4'),\n        TR('to buy', '\u8cb7\u3046', '\uc0ac\ub2e4'),\n        TR('to want', '\u6b32\u3057\u3044', '\uc6d0\ud558\ub2e4')\n      ], 0),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u96fb\u5f71<\/span><span class=\"lang-zh-CN\">\u7535\u5f71<\/span> means...', '<span class=\"lang-zh-TW\">\u96fb\u5f71<\/span><span class=\"lang-zh-CN\">\u7535\u5f71<\/span>\u306e\u610f\u5473\u306f?', '<span class=\"lang-zh-TW\">\u96fb\u5f71<\/span><span class=\"lang-zh-CN\">\u7535\u5f71<\/span>\uc758 \ub73b\uc740?'),\n      [\n        TR('movie', '\u6620\u753b', '\uc601\ud654'),\n        TR('TV', '\u30c6\u30ec\u30d3', '\ud154\ub808\ube44\uc804'),\n        TR('book', '\u672c', '\ucc45'),\n        TR('newspaper', '\u65b0\u805e', '\uc2e0\ubb38')\n      ], 0),\n    QTYPE(TR('Type the pinyin for <span class=\"lang-zh-TW\">\u8cb7<\/span><span class=\"lang-zh-CN\">\u4e70<\/span>.', '<span class=\"lang-zh-TW\">\u8cb7<\/span><span class=\"lang-zh-CN\">\u4e70<\/span>\u306e\u30d4\u30f3\u30a4\u30f3\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002', '<span class=\"lang-zh-TW\">\u8cb7<\/span><span class=\"lang-zh-CN\">\u4e70<\/span>\uc758 \ubcd1\uc74c\uc744 \uc785\ub825\ud558\uc138\uc694.'), ['mai']),\n    QMC(\n      TR('\u597d\u770b means...', '\u597d\u770b\u306e\u610f\u5473\u306f?', '\u597d\u770b\uc758 \ub73b\uc740?'),\n      [\n        TR('good-looking; good to watch\/read', '\u304d\u308c\u3044;\u898b\u5fdc\u3048\u304c\u3042\u308b', '\uba4b\uc9c0\ub2e4; \ubcfc\ub9cc\ud558\ub2e4'),\n        TR('expensive', '\u9ad8\u3044', '\ube44\uc2f8\ub2e4'),\n        TR('busy', '\u5fd9\u3057\u3044', '\ubc14\uc058\ub2e4'),\n        TR('hot', '\u6691\u3044', '\ub365\ub2e4')\n      ], 0),\n    QMC(\n      TR('\u4e2d\u6587 means...', '\u4e2d\u6587\u306e\u610f\u5473\u306f?', '\u4e2d\u6587\uc758 \ub73b\uc740?'),\n      [\n        TR('Chinese (language)', '\u4e2d\u56fd\u8a9e', '\uc911\uad6d\uc5b4'),\n        TR('English (language)', '\u82f1\u8a9e', '\uc601\uc5b4'),\n        TR('Japanese (language)', '\u65e5\u672c\u8a9e', '\uc77c\ubcf8\uc5b4'),\n        TR('French (language)', '\u30d5\u30e9\u30f3\u30b9\u8a9e', '\ud504\ub791\uc2a4\uc5b4')\n      ], 0),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u83ef\u6587<\/span><span class=\"lang-zh-CN\">\u534e\u6587<\/span> is closest in meaning to...', '<span class=\"lang-zh-TW\">\u83ef\u6587<\/span><span class=\"lang-zh-CN\">\u534e\u6587<\/span>\u306e\u610f\u5473\u306b\u6700\u3082\u8fd1\u3044\u306e\u306f?', '<span class=\"lang-zh-TW\">\u83ef\u6587<\/span><span class=\"lang-zh-CN\">\u534e\u6587<\/span>\uacfc \ub73b\uc774 \uac00\uc7a5 \uac00\uae4c\uc6b4 \uac83\uc740?'),\n      [\n        TR('\u4e2d\u6587 \u2014 the Chinese language (more formal)', '\u4e2d\u6587 \u2014 \u4e2d\u56fd\u8a9e(\u3088\u308a\u6587\u8a9e\u7684)', '\u4e2d\u6587 \u2014 \uc911\uad6d\uc5b4 (\ub354 \uaca9\uc2dd \uc788\ub294 \ud45c\ud604)'),\n        TR('\u65e5\u6587 \u2014 Japanese', '\u65e5\u6587 \u2014 \u65e5\u672c\u8a9e', '\u65e5\u6587 \u2014 \uc77c\ubcf8\uc5b4'),\n        TR('\u6771\u897f \u2014 thing', '\u6771\u897f \u2014 \u3082\u306e', '\u6771\u897f \u2014 \ubb3c\uac74'),\n        TR('\u6c7d\u8eca \u2014 car', '\u6c7d\u8eca \u2014 \u8eca', '\u6c7d\u8eca \u2014 \uc790\ub3d9\ucc28')\n      ], 0),\n    QMC(\n      TR('\u4e2d\u570b means...', '\u4e2d\u570b\u306e\u610f\u5473\u306f?', '\u4e2d\u570b\uc758 \ub73b\uc740?'),\n      [\n        TR('China; Chinese', '\u4e2d\u56fd', '\uc911\uad6d'),\n        TR('France; French', '\u30d5\u30e9\u30f3\u30b9', '\ud504\ub791\uc2a4'),\n        TR('Germany; German', '\u30c9\u30a4\u30c4', '\ub3c5\uc77c'),\n        TR('Japan; Japanese', '\u65e5\u672c', '\uc77c\ubcf8')\n      ], 0),\n    QMC(\n      TR('\u65e5\u672c means...', '\u65e5\u672c\u306e\u610f\u5473\u306f?', '\u65e5\u672c\uc758 \ub73b\uc740?'),\n      [\n        TR('Japan', '\u65e5\u672c', '\uc77c\ubcf8'),\n        TR('France', '\u30d5\u30e9\u30f3\u30b9', '\ud504\ub791\uc2a4'),\n        TR('Germany', '\u30c9\u30a4\u30c4', '\ub3c5\uc77c'),\n        TR('China', '\u4e2d\u56fd', '\uc911\uad6d')\n      ], 0),\n    QTYPE(TR('Type the pinyin for <span class=\"lang-zh-TW\">\u8cb4<\/span><span class=\"lang-zh-CN\">\u8d35<\/span>.', '<span class=\"lang-zh-TW\">\u8cb4<\/span><span class=\"lang-zh-CN\">\u8d35<\/span>\u306e\u30d4\u30f3\u30a4\u30f3\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002', '<span class=\"lang-zh-TW\">\u8cb4<\/span><span class=\"lang-zh-CN\">\u8d35<\/span>\uc758 \ubcd1\uc74c\uc744 \uc785\ub825\ud558\uc138\uc694.'), ['gui']),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u96fb\u8996<\/span><span class=\"lang-zh-CN\">\u7535\u89c6<\/span> means...', '<span class=\"lang-zh-TW\">\u96fb\u8996<\/span><span class=\"lang-zh-CN\">\u7535\u89c6<\/span>\u306e\u610f\u5473\u306f?', '<span class=\"lang-zh-TW\">\u96fb\u8996<\/span><span class=\"lang-zh-CN\">\u7535\u89c6<\/span>\uc758 \ub73b\uc740?'),\n      [\n        TR('TV', '\u30c6\u30ec\u30d3', '\ud154\ub808\ube44\uc804'),\n        TR('car', '\u8eca', '\ucc28'),\n        TR('book', '\u672c', '\ucc45'),\n        TR('pen', '\u30da\u30f3', '\ud39c')\n      ], 0),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u8eca<\/span><span class=\"lang-zh-CN\">\u8f66<\/span> means...', '<span class=\"lang-zh-TW\">\u8eca<\/span><span class=\"lang-zh-CN\">\u8f66<\/span>\u306e\u610f\u5473\u306f?', '<span class=\"lang-zh-TW\">\u8eca<\/span><span class=\"lang-zh-CN\">\u8f66<\/span>\uc758 \ub73b\uc740?'),\n      [\n        TR('vehicle; car', '\u8eca', '\ucc28\ub7c9; \uc790\ub3d9\ucc28'),\n        TR('book', '\u672c', '\ucc45'),\n        TR('newspaper', '\u65b0\u805e', '\uc2e0\ubb38'),\n        TR('thing', '\u3082\u306e', '\ubb3c\uac74')\n      ], 0),\n    QMC(\n      TR('<span class=\"lang-zh-TW\">\u66f8<\/span><span class=\"lang-zh-CN\">\u4e66<\/span> means...', '<span class=\"lang-zh-TW\">\u66f8<\/span><span class=\"lang-zh-CN\">\u4e66<\/span>\u306e\u610f\u5473\u306f?', '<span class=\"lang-zh-TW\">\u66f8<\/span><span class=\"lang-zh-CN\">\u4e66<\/span>\uc758 \ub73b\uc740?'),\n      [\n        TR('book', '\u672c', '\ucc45'),\n        TR('newspaper', '\u65b0\u805e', '\uc2e0\ubb38'),\n        TR('pen', '\u30da\u30f3', '\ud39c'),\n        TR('thing', '\u3082\u306e', '\ubb3c\uac74')\n      ], 0),\n    QTYPE(TR('Type the pinyin for <span class=\"lang-zh-TW\">\u6771\u897f<\/span><span class=\"lang-zh-CN\">\u4e1c\u897f<\/span>.', '<span class=\"lang-zh-TW\">\u6771\u897f<\/span><span class=\"lang-zh-CN\">\u4e1c\u897f<\/span>\u306e\u30d4\u30f3\u30a4\u30f3\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002', '<span class=\"lang-zh-TW\">\u6771\u897f<\/span><span class=\"lang-zh-CN\">\u4e1c\u897f<\/span>\uc758 \ubcd1\uc74c\uc744 \uc785\ub825\ud558\uc138\uc694.'), ['dongxi']),\n    QMC(\n      TR('\u8981 means...', '\u8981\u306e\u610f\u5473\u306f?', '\u8981\uc758 \ub73b\uc740?'),\n      [\n        TR('to want', '\u6b32\u3057\u3044', '\uc6d0\ud558\ub2e4'),\n        TR('to have', '\u6301\u3063\u3066\u3044\u308b', '\uac00\uc9c0\ub2e4'),\n        TR('to buy', '\u8cb7\u3046', '\uc0ac\ub2e4'),\n        TR('to understand', '\u308f\u304b\u308b', '\uc774\ud574\ud558\ub2e4')\n      ], 0),\n    QMC(\n      TR('\u90fd means...', '\u90fd\u306e\u610f\u5473\u306f?', '\u90fd\uc758 \ub73b\uc740?'),\n      [\n        TR('all; both', '\u307f\u3093\u306a;\u4e21\u65b9', '\ubaa8\ub450; \ub458 \ub2e4'),\n        TR('but; however', '\u3067\u3082;\u3057\u304b\u3057', '\uadf8\ub7ec\ub098; \ud558\uc9c0\ub9cc'),\n        TR('not (have)', '(\u6301\u3063\u3066)\u3044\u306a\u3044', '(\uac00\uc9c0\uace0 \uc788\uc9c0) \uc54a\ub2e4'),\n        TR('very', '\u3068\u3066\u3082', '\ub9e4\uc6b0')\n      ], 0)\n  ];\n\n  var UI_STRINGS = {\n    en: { submit: 'Submit', next: 'Next', placeholder: 'Type your answer', correct: 'Correct!', incorrectPrefix: 'Not quite \u2014 the answer is \"', incorrectSuffix: '\".', incorrectGeneric: 'Not quite \u2014 check the highlighted answer above.', scoreLine: 'Nice work! Want to try again?', retake: 'Retake Quiz', questionLabel: 'Question' },\n    ja: { submit: '\u9001\u4fe1', next: '\u6b21\u3078', placeholder: '\u7b54\u3048\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044', correct: '\u6b63\u89e3!', incorrectPrefix: '\u6b8b\u5ff5\u3001\u6b63\u89e3\u306f\u300c', incorrectSuffix: '\u300d\u3067\u3059\u3002', incorrectGeneric: '\u6b8b\u5ff5\u3001\u4e0a\u306e\u30cf\u30a4\u30e9\u30a4\u30c8\u3055\u308c\u305f\u7b54\u3048\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002', scoreLine: '\u3088\u304f\u3067\u304d\u307e\u3057\u305f!\u3082\u3046\u4e00\u5ea6\u6311\u6226\u3057\u307e\u3059\u304b?', retake: '\u30af\u30a4\u30ba\u3092\u3084\u308a\u76f4\u3059', questionLabel: '\u8cea\u554f' },\n    ko: { submit: '\uc81c\ucd9c', next: '\ub2e4\uc74c', placeholder: '\ub2f5\uc744 \uc785\ub825\ud558\uc138\uc694', correct: '\uc815\ub2f5\uc785\ub2c8\ub2e4!', incorrectPrefix: '\uc544\uc27d\ub124\uc694 \u2014 \uc815\ub2f5\uc740 \"', incorrectSuffix: '\"\uc785\ub2c8\ub2e4.', incorrectGeneric: '\uc544\uc27d\ub124\uc694 \u2014 \uc704\uc5d0 \ud45c\uc2dc\ub41c \uc815\ub2f5\uc744 \ud655\uc778\ud558\uc138\uc694.', scoreLine: '\uc798\ud558\uc168\uc5b4\uc694! \ub2e4\uc2dc \ub3c4\uc804\ud574\ubcf4\uc2dc\uaca0\uc5b4\uc694?', retake: '\ud034\uc988 \ub2e4\uc2dc \ud480\uae30', questionLabel: '\ubb38\uc81c' }\n  };\n\n  function getLang() {\n    if (root.classList.contains('pv3-lang-ja')) return 'ja';\n    if (root.classList.contains('pv3-lang-ko')) return 'ko';\n    return 'en';\n  }\n\n  function stripTones(s) {\n    return s.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '').toLowerCase().replace(\/[^a-z0-9]\/g, '');\n  }\n\n  (function initQuiz() {\n    var qRoot = root.querySelector('#pv3-quiz');\n    if (!qRoot) return;\n    var current = 0;\n    var score = 0;\n    var answered = false;\n\n    function render() {\n      if (current >= QUIZ_DATA.length) { renderScore(); return; }\n      var lang = getLang();\n      var ui = UI_STRINGS[lang];\n      var q = QUIZ_DATA[current];\n      answered = false;\n      var html = '<p class=\"pv3-quiz-progress\">' + ui.questionLabel + ' ' + (current + 1) + ' \/ ' + QUIZ_DATA.length + '<\/p>';\n      html += '<p class=\"pv3-quiz-prompt\">' + q.prompt[lang] + '<\/p>';\n      if (q.type === 'mc') {\n        html += '<div class=\"pv3-quiz-options\">';\n        for (var i = 0; i < q.options.length; i++) {\n          html += '<button type=\"button\" class=\"pv3-quiz-opt\" data-i=\"' + i + '\">' + q.options[i][lang] + '<\/button>';\n        }\n        html += '<\/div>';\n      } else {\n        html += '<div class=\"pv3-quiz-input-row\">';\n        html += '<input type=\"text\" class=\"pv3-quiz-input\" placeholder=\"' + ui.placeholder + '\">';\n        html += '<button type=\"button\" class=\"pv3-quiz-submit\">' + ui.submit + '<\/button>';\n        html += '<\/div>';\n      }\n      html += '<p class=\"pv3-quiz-feedback\"><\/p>';\n      html += '<button type=\"button\" class=\"pv3-quiz-next\" style=\"display:none;\">' + ui.next + '<\/button>';\n      qRoot.innerHTML = html;\n\n      if (q.type === 'mc') {\n        var opts = qRoot.querySelectorAll('.pv3-quiz-opt');\n        opts.forEach(function (btn) {\n          btn.addEventListener('click', function () {\n            if (answered) return;\n            answered = true;\n            var i = parseInt(this.getAttribute('data-i'), 10);\n            var correct = i === q.answer;\n            if (correct) score++;\n            opts.forEach(function (b, bi) {\n              b.setAttribute('disabled', 'disabled');\n              if (bi === q.answer) b.classList.add('correct');\n              else if (bi === i) b.classList.add('incorrect');\n            });\n            showFeedback(correct);\n          });\n        });\n      } else {\n        var input = qRoot.querySelector('.pv3-quiz-input');\n        var submitBtn = qRoot.querySelector('.pv3-quiz-submit');\n        function submit() {\n          if (answered) return;\n          answered = true;\n          var val = stripTones(input.value || '');\n          var correct = q.accept.indexOf(val) !== -1;\n          if (correct) score++;\n          input.setAttribute('disabled', 'disabled');\n          submitBtn.setAttribute('disabled', 'disabled');\n          showFeedback(correct, q.accept[0]);\n        }\n        submitBtn.addEventListener('click', submit);\n        input.addEventListener('keydown', function (e) { if (e.key === 'Enter') submit(); });\n      }\n\n      function showFeedback(correct, correctAnswer) {\n        var fb = qRoot.querySelector('.pv3-quiz-feedback');\n        if (correct) {\n          fb.textContent = ui.correct;\n        } else if (correctAnswer) {\n          fb.textContent = ui.incorrectPrefix + correctAnswer + ui.incorrectSuffix;\n        } else {\n          fb.textContent = ui.incorrectGeneric;\n        }\n        fb.className = 'pv3-quiz-feedback ' + (correct ? 'correct' : 'incorrect');\n        var nextBtn = qRoot.querySelector('.pv3-quiz-next');\n        nextBtn.style.display = 'inline-block';\n        nextBtn.addEventListener('click', function () { current++; render(); });\n      }\n    }\n\n    function renderScore() {\n      var ui = UI_STRINGS[getLang()];\n      qRoot.innerHTML =\n        '<div class=\"pv3-quiz-score\">' +\n        '<span class=\"pv3-quiz-score-num\">' + score + ' \/ ' + QUIZ_DATA.length + '<\/span>' +\n        '<p>' + ui.scoreLine + '<\/p>' +\n        '<button type=\"button\" class=\"pv3-quiz-retake\">' + ui.retake + '<\/button>' +\n        '<\/div>';\n      qRoot.querySelector('.pv3-quiz-retake').addEventListener('click', function () {\n        current = 0; score = 0; render();\n      });\n    }\n\n    render();\n  })();\n\n  \/\/ Speaker buttons (event delegation, Web Speech API) \u2014 headword cards only\n  root.addEventListener('click', function (e) {\n    var btn = e.target.closest('.pv3-speaker');\n    if (!btn || !root.contains(btn)) return;\n    if (!('speechSynthesis' in window)) return;\n    var showingSimp = false;\n    var simpEl = root.querySelector('.lang-zh-CN');\n    if (simpEl) {\n      if (simpEl.offsetParent !== null) showingSimp = true;\n    }\n    var text = showingSimp ? btn.getAttribute('data-simp') : btn.getAttribute('data-trad');\n    var utter = new SpeechSynthesisUtterance(text);\n    utter.lang = showingSimp ? 'zh-CN' : 'zh-TW';\n    window.speechSynthesis.cancel();\n    window.speechSynthesis.speak(utter);\n  });\n\n})();\n<\/script>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium is-resized\"><a href=\"https:\/\/tiffanysmandarin.com\/index.php\/shitinghuayu-audio\/\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"86\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png\" alt=\"\" class=\"wp-image-571\" style=\"object-fit:cover;width:150px;height:43px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-600x171.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":16392,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_convertkit_post_meta":{"form":"-1","landing_page":"0","tag":"0","restrict_content":"0"},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1357],"tags":[],"class_list":["post-10034","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1357"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese<\/title>\n<meta name=\"description\" content=\"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese\" \/>\n<meta property=\"og:description\" content=\"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-29T05:00:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-08T22:37:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1755\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"tiffany\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tiffany\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3\",\"datePublished\":\"2023-10-29T05:00:34+00:00\",\"dateModified\":\"2026-09-08T22:37:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/\"},\"wordCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/20190211100150_pic-scaled.jpg\",\"articleSection\":[\"\u8996\u807d\u83ef\u8a9e\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/\",\"name\":\"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/20190211100150_pic-scaled.jpg\",\"datePublished\":\"2023-10-29T05:00:34+00:00\",\"dateModified\":\"2026-09-08T22:37:07+00:00\",\"description\":\"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/20190211100150_pic-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/20190211100150_pic-scaled.jpg\",\"width\":2560,\"height\":1755},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2023\\\/10\\\/29\\\/book-1-l3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\",\"name\":\"OneDotDot Chinese\",\"description\":\"Learn a little Chinese every day\",\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tiffanysmandarin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\",\"name\":\"tiffany\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"url\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"contentUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"width\":214,\"height\":214,\"caption\":\"tiffany\"},\"logo\":{\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/tiffanys_talk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tiffany-huang-mandarin\\\/\"],\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/author\\\/tiffany\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese","description":"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/","og_locale":"en_US","og_type":"article","og_title":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese","og_description":"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/","og_site_name":"OneDotDot Chinese","article_published_time":"2023-10-29T05:00:34+00:00","article_modified_time":"2026-09-08T22:37:07+00:00","og_image":[{"width":2560,"height":1755,"url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","type":"image\/jpeg"}],"author":"tiffany","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tiffany","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3","datePublished":"2023-10-29T05:00:34+00:00","dateModified":"2026-09-08T22:37:07+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/"},"wordCount":2,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","articleSection":["\u8996\u807d\u83ef\u8a9e"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/","name":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3 - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","datePublished":"2023-10-29T05:00:34+00:00","dateModified":"2026-09-08T22:37:07+00:00","description":"This is just for my students. \u8996\u807d\u83ef\u8a9e Book 1 Lesson 3","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#primaryimage","url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","contentUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","width":2560,"height":1755},{"@type":"BreadcrumbList","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2023\/10\/29\/book-1-l3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"\u8996\u807d\u83ef\u8a9e Book 1 Lesson 3"}]},{"@type":"WebSite","@id":"https:\/\/tiffanysmandarin.com\/#website","url":"https:\/\/tiffanysmandarin.com\/","name":"OneDotDot Chinese","description":"Learn a little Chinese every day","publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tiffanysmandarin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99","name":"tiffany","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","url":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","contentUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","width":214,"height":214,"caption":"tiffany"},"logo":{"@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png"},"sameAs":["https:\/\/www.instagram.com\/tiffanys_talk\/","https:\/\/www.linkedin.com\/in\/tiffany-huang-mandarin\/"],"url":"https:\/\/tiffanysmandarin.com\/index.php\/author\/tiffany\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2026\/09\/20190211100150_pic-scaled.jpg","_links":{"self":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/10034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/comments?post=10034"}],"version-history":[{"count":6,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/10034\/revisions"}],"predecessor-version":[{"id":16761,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/10034\/revisions\/16761"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media\/16392"}],"wp:attachment":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media?parent=10034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=10034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=10034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}