<!-- ======================================================== --> <!-- CHƯƠNG 2 — BÁT TỰ TỬ BÌNH LÀ GÌ? (sequential 6 parts, full content) --> <!-- WordPress safe iframe (JNews compatible) --> <!-- Paste into Custom HTML block in Gutenberg --> <!-- ======================================================== --> <style> .lt-wrap-lt-c2-frame { display: block !important; width: 100% !important; max-width: 100% !important; margin: 30px 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; position: relative !important; overflow: visible !important; box-sizing: border-box !important; height: auto !important; max-height: none !important; contain: none !important; } .lt-wrap-lt-c2-frame > iframe { width: 100% !important; max-width: 100% !important; border: 0 !important; display: block !important; background: transparent !important; padding: 0 !important; margin: 0 !important; max-height: none !important; min-height: 0 !important; vertical-align: top !important; } </style> <div class="lt-wrap-lt-c2-frame"> <iframe id="lt-c2-frame" height="5500" loading="eager" scrolling="no" srcdoc="<!DOCTYPE html> <html lang="vi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <title>Chương 2 — Bát Tự Tử Bình là gì?</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600;1,700&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> :root { --bg: #0b0812; --bg-2: #15101f; --bg-3: #1c1528; --ink: #f2e8d1; --ink-dim: #a89878; --ink-soft: #c7b88f; --gold: #d4af37; --gold-bright: #f5d061; --gold-soft: rgba(212, 175, 55, 0.35); --crimson: #9e1b3f; --deep-red: #5c0a1a; --warn: #e08eaa; --green: #7ed39e; --red: #ef6a6a; } * { box-sizing: border-box; margin: 0; padding: 0; } html { background: var(--bg); } body { background: var(--bg); color: var(--ink); font-family: 'Be Vietnam Pro', -apple-system, sans-serif; overflow-x: hidden; line-height: 1.65; font-size: 15px; -webkit-font-smoothing: antialiased; position: relative; min-height: 0; } .bg-gradient { position: fixed; inset: 0; z-index: 0; background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(139, 30, 63, 0.18), transparent 60%), radial-gradient(ellipse 60% 40% at 100% 50%, rgba(212, 175, 55, 0.08), transparent 60%), radial-gradient(ellipse 70% 50% at 0% 100%, rgba(92, 10, 26, 0.22), transparent 60%); pointer-events: none; } .stars { position: fixed; inset: 0; z-index: 1; pointer-events: none; background-image: radial-gradient(1.2px 1.2px at 23px 34px, rgba(212,175,55,0.6), transparent), radial-gradient(1px 1px at 67px 128px, rgba(244,234,213,0.45), transparent), radial-gradient(1.5px 1.5px at 142px 76px, rgba(212,175,55,0.55), transparent), radial-gradient(1px 1px at 198px 199px, rgba(244,234,213,0.35), transparent), radial-gradient(1px 1px at 253px 54px, rgba(212,175,55,0.45), transparent); background-size: 300px 280px; animation: twinkle 6s ease-in-out infinite; } @keyframes twinkle { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } } @keyframes rotate { from { transform: rotate(0); } to { transform: rotate(360deg); } } @keyframes fadeUp { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes correctPop { 0% { transform: scale(0.95); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } } .app { position: relative; z-index: 5; max-width: 460px; margin: 0 auto; padding: 28px 22px 60px; } .view { display: none; animation: fadeIn 0.4s ease; } .view.active { display: block; } /* HERO */ .hero { text-align: center; padding: 24px 0 30px; } .hero-tag { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; display: block; } .hero-tag::before, .hero-tag::after { content: '⟢'; margin: 0 10px; opacity: 0.7; } .hero-chinese { font-family: 'Cormorant Garamond', serif; font-size: 56px; line-height: 1; font-weight: 400; color: transparent; background: linear-gradient(180deg, var(--gold-bright), var(--gold), rgba(212,175,55,0.3)); -webkit-background-clip: text; background-clip: text; margin: 12px 0 14px; letter-spacing: 8px; padding-left: 8px; text-shadow: 0 0 30px rgba(212,175,55,0.3); } .hero h1 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 30px; line-height: 1.18; color: var(--ink); margin: 4px 0 6px; } .hero h1 em { font-style: italic; color: var(--gold-bright); } .hero-rule { width: 80px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold), transparent); margin: 18px auto 22px; } .hero-intro { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 16px; color: var(--ink-soft); line-height: 1.6; padding: 0 4px; max-width: 380px; margin: 0 auto; } .hero-intro em { color: var(--gold-bright); font-weight: 600; } .hero-author { margin-top: 22px; font-family: 'Cormorant Garamond', serif; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); font-weight: 600; } .hero-author::before, .hero-author::after { content: ''; display: inline-block; width: 22px; height: 1px; background: var(--gold); margin: 0 10px; vertical-align: middle; } /* PROGRESS DOTS */ .part-progress { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 30px 0 24px; flex-wrap: wrap; } .part-progress .dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(212,175,55,0.2); border: 1px solid rgba(212,175,55,0.3); transition: all 0.3s ease; } .part-progress .dot.done { background: var(--gold); box-shadow: 0 0 8px rgba(212,175,55,0.5); } .part-progress .dot.current { background: var(--gold-bright); box-shadow: 0 0 12px rgba(245,208,97,0.7); transform: scale(1.4); border-color: var(--gold-bright); } .part-progress .label { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 2px; color: var(--gold); margin-left: 8px; } .part-progress .label strong { color: var(--gold-bright); font-weight: 700; } /* PART CARD */ .part-card { background: linear-gradient(155deg, rgba(28,21,40,0.88), rgba(21,16,31,0.65)); border: 1px solid rgba(212,175,55,0.22); border-radius: 6px; padding: 32px 24px 28px; position: relative; overflow: hidden; animation: fadeUp 0.5s ease; } .part-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, var(--gold), transparent); opacity: 0.5; } .part-card-header { text-align: center; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(212,175,55,0.15); } .part-card .seal { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(145deg, var(--crimson), var(--deep-red)); border: 2px solid var(--gold); color: var(--gold-bright); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 20px; box-shadow: 0 0 0 2px var(--bg), 0 0 18px rgba(158,27,63,0.5), inset 0 0 12px rgba(0,0,0,0.4); margin-bottom: 14px; position: relative; } .part-card .seal::before { content: ''; position: absolute; inset: -8px; border-radius: 50%; border: 1px dashed var(--gold-soft); animation: rotate 40s linear infinite; } .part-card .lbl { display: block; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; } .part-card h2 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 24px; line-height: 1.2; color: var(--ink); margin-bottom: 4px; } .part-card h2 em { color: var(--gold-bright); font-style: italic; } .part-card .subtitle { display: block; margin-top: 6px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13px; color: var(--ink-dim); letter-spacing: 1px; } .part-card .body { font-size: 15px; line-height: 1.75; color: var(--ink-soft); } .part-card .body p { margin-bottom: 14px; } .part-card .body p:last-child { margin-bottom: 0; } .part-card .body p strong { color: var(--ink); font-weight: 600; } .part-card .body em { color: var(--gold-bright); font-style: italic; } .part-card .body .hl { color: var(--gold-bright); font-weight: 500; font-style: italic; } .part-card .body .inline-sub { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); font-weight: 600; margin: 22px 0 12px; padding-bottom: 6px; border-bottom: 1px solid rgba(212,175,55,0.2); text-align: center; } .kp { margin: 16px 0; padding: 14px 16px; background: rgba(212,175,55,0.07); border-left: 3px solid var(--gold); border-radius: 0 2px 2px 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 15px; line-height: 1.6; color: var(--ink); } .kp strong { color: var(--gold-bright); font-style: normal; font-family: 'Be Vietnam Pro', sans-serif; font-weight: 700; font-size: 14px; } .compare-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0; } .compare-cell { padding: 14px; border-radius: 4px; border: 1px solid; } .compare-cell.bad { background: rgba(158,27,63,0.1); border-color: rgba(158,27,63,0.4); } .compare-cell.good { background: rgba(126,211,158,0.08); border-color: rgba(126,211,158,0.4); } .compare-cell .c-lbl { display: block; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 6px; } .compare-cell.bad .c-lbl { color: var(--warn); } .compare-cell.good .c-lbl { color: var(--green); } .compare-cell .c-text { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13.5px; line-height: 1.5; color: var(--ink-soft); } .persons-grid { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; } .person-row { padding: 12px 14px; background: rgba(15,11,22,0.5); border: 1px solid rgba(212,175,55,0.18); border-radius: 3px; display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; } .person-row.tragic { border-color: rgba(158,27,63,0.4); background: rgba(158,27,63,0.08); } .person-name { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-style: italic; font-size: 14.5px; color: var(--gold-bright); } .person-row.tragic .person-name { color: var(--warn); } .person-father { font-size: 12.5px; color: var(--ink-soft); font-style: italic; font-family: 'Cormorant Garamond', serif; text-align: right; } .person-fate { grid-column: 1 / -1; font-size: 13px; color: var(--ink-soft); padding-top: 4px; border-top: 1px dashed rgba(212,175,55,0.15); } .person-fate strong { color: var(--ink); font-weight: 600; } /* Nav buttons */ .part-nav { margin-top: 32px; display: flex; gap: 10px; flex-wrap: wrap; } .part-nav-btn { flex: 1; min-width: 130px; padding: 14px 18px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 14.5px; letter-spacing: 2px; border-radius: 4px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: all 0.2s ease; text-align: center; text-transform: uppercase; } .part-nav-btn.prev { background: transparent; border: 1px solid rgba(212,175,55,0.4); color: var(--gold); } .part-nav-btn.prev:hover { background: rgba(212,175,55,0.08); color: var(--gold-bright); border-color: var(--gold); } .part-nav-btn.prev:disabled { opacity: 0.3; cursor: not-allowed; } .part-nav-btn.next { background: linear-gradient(145deg, var(--crimson), var(--deep-red)); border: 1px solid var(--gold); color: var(--gold-bright); box-shadow: 0 0 18px rgba(158,27,63,0.3), inset 0 0 12px rgba(0,0,0,0.3); } .part-nav-btn.next:hover { transform: translateY(-2px); box-shadow: 0 4px 24px rgba(158,27,63,0.5), inset 0 0 12px rgba(0,0,0,0.3); } /* CLOSING + CTA */ .closing { margin: 30px 0 0; padding: 30px 22px; background: radial-gradient(ellipse at top, rgba(212,175,55,0.1), transparent 70%), linear-gradient(165deg, rgba(28,21,40,0.95), rgba(21,16,31,0.85)); border: 1px solid var(--gold-soft); border-radius: 4px; text-align: center; position: relative; overflow: hidden; } .closing::before { content: ''; position: absolute; inset: 6px; border: 1px solid rgba(212,175,55,0.15); border-radius: 2px; pointer-events: none; } .closing-label { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; } .closing-text { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 16px; line-height: 1.65; color: var(--ink); } .closing-text em { color: var(--gold-bright); font-weight: 600; } .closing-mark { margin-top: 16px; font-size: 16px; color: var(--gold); letter-spacing: 12px; } .cta { margin: 30px 0 0; padding: 30px 22px; background: linear-gradient(155deg, rgba(28,21,40,0.92), rgba(21,16,31,0.75)); border: 1px solid rgba(212,175,55,0.4); border-radius: 4px; text-align: center; } .cta-label { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; } .cta h3 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 24px; line-height: 1.2; color: var(--ink); margin-bottom: 8px; } .cta h3 em { color: var(--gold-bright); font-style: italic; } .cta-desc { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 15px; color: var(--ink-soft); line-height: 1.55; margin-bottom: 18px; max-width: 360px; margin-left: auto; margin-right: auto; } .cta-meta { display: flex; gap: 12px; justify-content: center; margin-bottom: 20px; flex-wrap: wrap; } .cta-meta-item { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); padding: 4px 12px; background: rgba(212,175,55,0.08); border: 1px solid rgba(212,175,55,0.3); border-radius: 2px; } .btn-primary { display: block; width: 100%; margin: 0 auto; padding: 16px 24px; background: linear-gradient(145deg, var(--crimson), var(--deep-red)); border: 1px solid var(--gold); border-radius: 4px; color: var(--gold-bright); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 17px; letter-spacing: 3px; text-transform: uppercase; cursor: pointer; box-shadow: 0 0 24px rgba(158,27,63,0.4), inset 0 0 15px rgba(0,0,0,0.3); -webkit-tap-highlight-color: transparent; transition: transform 0.2s ease, box-shadow 0.2s ease; } .btn-primary:hover, .btn-primary:active { transform: translateY(-2px); box-shadow: 0 6px 32px rgba(158,27,63,0.6), inset 0 0 15px rgba(0,0,0,0.3); } /* QUIZ */ .quiz-back { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 1px solid rgba(212,175,55,0.4); border-radius: 2px; padding: 8px 14px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13px; letter-spacing: 1.5px; color: var(--gold); cursor: pointer; transition: all 0.25s ease; margin-bottom: 20px; -webkit-tap-highlight-color: transparent; } .quiz-back:hover { background: rgba(212,175,55,0.08); color: var(--gold-bright); } .progress-bar { display: flex; align-items: center; gap: 8px; margin: 8px 0 24px; } .progress-track { flex: 1; height: 4px; background: rgba(212,175,55,0.15); border-radius: 2px; overflow: hidden; } .progress-fill { height: 100%; background: linear-gradient(90deg, var(--crimson), var(--gold)); border-radius: 2px; transition: width 0.4s ease; box-shadow: 0 0 6px var(--gold); } .progress-text { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13px; color: var(--gold); white-space: nowrap; } .progress-text strong { color: var(--gold-bright); font-weight: 700; } .q-card { background: linear-gradient(155deg, rgba(28,21,40,0.92), rgba(21,16,31,0.75)); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; padding: 24px 22px; margin-bottom: 20px; position: relative; animation: fadeUp 0.5s ease; } .q-card::before { content: ''; position: absolute; top: 0; left: 24px; width: 30px; height: 1px; background: var(--gold); box-shadow: 0 0 6px var(--gold); } .q-card .q-num { position: absolute; top: -14px; left: 18px; background: var(--bg); padding: 0 10px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 2px; color: var(--gold); text-transform: uppercase; } .q-card h2 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 19px; line-height: 1.4; color: var(--ink); } .q-card h2 em { font-style: italic; color: var(--gold-bright); } .options { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; } .opt-btn { width: 100%; text-align: left; background: linear-gradient(155deg, rgba(15,11,22,0.7), rgba(11,8,18,0.5)); border: 1px solid rgba(212,175,55,0.2); border-radius: 4px; padding: 13px 14px 13px 48px; font-family: 'Be Vietnam Pro', sans-serif; font-size: 15px; line-height: 1.5; color: var(--ink-soft); cursor: pointer; position: relative; transition: all 0.2s ease; -webkit-tap-highlight-color: transparent; } .opt-btn:hover:not(:disabled) { border-color: var(--gold-soft); background: linear-gradient(155deg, rgba(28,21,40,0.85), rgba(21,16,31,0.65)); color: var(--ink); transform: translateX(2px); } .opt-btn .opt-letter { position: absolute; left: 14px; top: 14px; width: 24px; height: 24px; border-radius: 50%; border: 1px solid rgba(212,175,55,0.4); display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 13px; color: var(--gold); background: rgba(212,175,55,0.05); transition: all 0.2s ease; } .opt-btn:hover:not(:disabled) .opt-letter { border-color: var(--gold); background: rgba(212,175,55,0.15); color: var(--gold-bright); } .opt-btn:disabled { cursor: default; } .opt-btn.correct { background: linear-gradient(155deg, rgba(126,211,158,0.18), rgba(74,133,116,0.1)); border-color: var(--green); color: var(--ink); animation: correctPop 0.4s ease; } .opt-btn.correct .opt-letter { background: var(--green); border-color: var(--green); color: var(--bg); } .opt-btn.correct::after { content: '✓'; position: absolute; right: 14px; top: 14px; color: var(--green); font-weight: 700; font-size: 18px; } .opt-btn.wrong { background: linear-gradient(155deg, rgba(239,106,106,0.15), rgba(158,27,63,0.08)); border-color: var(--red); color: var(--ink); animation: shake 0.4s ease; } .opt-btn.wrong .opt-letter { background: var(--red); border-color: var(--red); color: var(--bg); } .opt-btn.wrong::after { content: '✕'; position: absolute; right: 14px; top: 14px; color: var(--red); font-weight: 700; font-size: 18px; } .opt-btn.dimmed { opacity: 0.4; } .explain { margin-top: 16px; padding: 14px 16px; background: rgba(212,175,55,0.06); border-left: 3px solid var(--gold); border-radius: 0 2px 2px 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 15px; line-height: 1.55; color: var(--ink); display: none; animation: fadeUp 0.4s ease; } .explain.visible { display: block; } .explain strong { color: var(--gold-bright); font-style: normal; font-family: 'Be Vietnam Pro', sans-serif; font-weight: 700; font-size: 14.5px; } .explain em { color: var(--gold-bright); font-weight: 600; font-style: italic; } .explain .verdict { display: inline-block; padding: 2px 10px; border-radius: 2px; font-family: 'Be Vietnam Pro', sans-serif; font-style: normal; font-weight: 700; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; } .explain.is-correct .verdict { background: rgba(126,211,158,0.15); border: 1px solid var(--green); color: var(--green); } .explain.is-wrong .verdict { background: rgba(239,106,106,0.12); border: 1px solid var(--red); color: var(--red); } .next-btn { display: none; width: 100%; margin-top: 18px; padding: 14px 20px; background: linear-gradient(145deg, var(--crimson), var(--deep-red)); border: 1px solid var(--gold); border-radius: 4px; color: var(--gold-bright); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 15px; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: all 0.2s ease; } .next-btn.visible { display: block; animation: fadeUp 0.4s ease; } .next-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(158,27,63,0.5); } .result-hero { text-align: center; padding: 30px 0 20px; } .result-circle { width: 160px; height: 160px; margin: 0 auto 24px; border-radius: 50%; background: radial-gradient(circle at 50% 40%, rgba(212,175,55,0.25), transparent 60%), linear-gradient(145deg, var(--bg-3), var(--bg-2)); border: 2px solid var(--gold); display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; box-shadow: 0 0 0 6px rgba(212,175,55,0.05), 0 0 40px rgba(212,175,55,0.2), inset 0 0 30px rgba(212,175,55,0.1); animation: correctPop 0.6s ease; } .result-circle::before { content: ''; position: absolute; inset: -12px; border-radius: 50%; border: 1px dashed var(--gold-soft); animation: rotate 60s linear infinite; } .result-score { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-size: 56px; line-height: 1; color: var(--gold-bright); text-shadow: 0 0 20px rgba(245,208,97,0.4); } .result-total { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 14px; color: var(--ink-dim); margin-top: 4px; letter-spacing: 2px; } .result-label { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 12px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; display: block; } .result-title { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 26px; line-height: 1.2; color: var(--ink); margin-bottom: 8px; } .result-title em { font-style: italic; color: var(--gold-bright); } .result-msg { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 16px; line-height: 1.55; color: var(--ink-soft); max-width: 380px; margin: 14px auto 0; } .action-row { display: flex; gap: 10px; margin-top: 32px; flex-wrap: wrap; } .btn-secondary { flex: 1; min-width: 130px; padding: 12px 16px; background: transparent; border: 1px solid var(--gold); border-radius: 4px; color: var(--gold); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600; font-size: 13px; letter-spacing: 1.5px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: all 0.2s ease; text-align: center; } .btn-secondary:hover { background: rgba(212,175,55,0.08); color: var(--gold-bright); } @media (max-width: 400px) { .app { padding: 24px 16px 50px; } .hero h1 { font-size: 26px; } .hero-chinese { font-size: 46px; letter-spacing: 6px; } .part-card { padding: 28px 18px 24px; } .part-card h2 { font-size: 21px; } .part-card .body { font-size: 14.5px; } .compare-pair { grid-template-columns: 1fr; } .person-row { grid-template-columns: 1fr; } .person-father { text-align: left; } .q-card { padding: 22px 18px; } .q-card h2 { font-size: 17px; } .opt-btn { font-size: 14.5px; padding: 12px 12px 12px 44px; } .result-circle { width: 140px; height: 140px; } .result-score { font-size: 48px; } } </style> </head> <body> <div class="bg-gradient"></div> <div class="stars"></div> <div class="app"> <div class="view active" id="view-article"> <section class="hero"> <span class="hero-tag">Chương 2 · Bát Tự Tử Bình</span> <div class="hero-chinese">八字子平</div> <h1>Bát Tự Tử Bình<br><em>là gì?</em></h1> <div class="hero-rule"></div> <p class="hero-intro"> Tử bình có <em>giá trị thật</em>. Nhưng <em>không phải theo cái cách</em> mà nhiều người đang dẫn bạn. Sáu phần dưới đây — đọc tuần tự — để hiểu nó <em>đúng cách</em>. </p> <div class="hero-author">Hoàng Trung</div> </section> <div class="part-progress"> <span class="dot current"></span> <span class="dot"></span> <span class="dot"></span> <span class="dot"></span> <span class="dot"></span> <span class="dot"></span> <span class="label">Phần <strong id="partNumDisplay">1</strong> / 6</span> </div> <article class="part-card"> <div class="part-card-header"> <div class="seal" id="partSeal">I</div> <span class="lbl" id="partLbl">Phần thứ nhất</span> <h2 id="partTitle">…</h2> <span class="subtitle" id="partSubtitle">…</span> </div> <div class="body" id="partBody">…</div> <div class="part-nav"> <button class="part-nav-btn prev" id="prevPartBtn" onclick="prevPart()">← Phần trước</button> <button class="part-nav-btn next" id="nextPartBtn" onclick="nextPart()">Xem tiếp →</button> </div> </article> <div id="endSection" style="display: none;"> <section class="closing"> <div class="closing-label">⟢ Lời gửi gắm ⟢</div> <p class="closing-text"> Tôi viết chương này không phải để bạn <em>từ bỏ tử bình</em> — mà vì tôi không muốn bạn bị <em>ru ngủ</em> bởi những người biến sự mơ hồ thành quyền lực.<br><br> Bạn xứng đáng được hiểu tử bình theo cách khiến bạn <em>tự do hơn</em> — không phải ít tự do hơn. </p> <div class="closing-mark">⟢ ◈ ⟢</div> </section> <section class="cta"> <div class="cta-label">⟢ Tự kiểm tra ⟢</div> <h3>Đã hiểu? <em>Thử ngay</em></h3> <p class="cta-desc"> Mười câu hỏi để củng cố sáu phần vừa đọc. Trả lời từng câu, xem giải thích ngay lập tức. </p> <div class="cta-meta"> <span class="cta-meta-item">10 câu hỏi</span> <span class="cta-meta-item">Phản hồi ngay</span> <span class="cta-meta-item">Không tính giờ</span> </div> <button class="btn-primary" onclick="startQuiz()">⟢ Bắt đầu trắc nghiệm ⟢</button> </section> </div> </div> <div class="view" id="view-quiz"> <button class="quiz-back" onclick="backToArticle()">← Quay về bài viết</button> <div class="progress-bar"> <div class="progress-track"> <div class="progress-fill" id="progressFill" style="width: 0%"></div> </div> <div class="progress-text">Câu <strong id="qNumDisplay">1</strong> / 10</div> </div> <div class="q-card"> <div class="q-num" id="qLabel">Câu 1</div> <h2 id="qText">…</h2> <div class="options" id="qOptions"></div> <div class="explain" id="qExplain"></div> <button class="next-btn" id="nextBtn" onclick="nextQuestion()">Câu tiếp →</button> </div> </div> <div class="view" id="view-result"> <section class="result-hero"> <div class="result-circle"> <div class="result-score"><span id="finalScore">0</span></div> <div class="result-total">/ 10</div> </div> <span class="result-label">⟢ Kết quả ⟢</span> <h2 class="result-title" id="resultTitle">…</h2> <p class="result-msg" id="resultMsg">…</p> </section> <div class="action-row"> <button class="btn-secondary" onclick="restartQuiz()">⟲ Làm lại</button> <button class="btn-secondary" onclick="backToArticle()">← Đọc lại bài</button> </div> </div> </div> <script> const ROMAN = ['', 'I', 'II', 'III', 'IV', 'V', 'VI']; const ORDINAL = ['', 'thứ nhất', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu']; const PARTS = [ { title: 'Hai cách nhìn — <em>hai cuộc đời</em>', subtitle: 'Phần mở đầu · Lá số là chân lý hay là bản đồ?', body: ` <p>Có bao giờ bạn từng ngồi trước một người thầy, lắng nghe họ nói về lá số của mình, và cảm thấy <em>có gì đó rất thật</em> trong những lời đó. Cảm giác được nhìn thấu, được hiểu — bạn đã có trải nghiệm này chưa? Không phải ai cũng cho bạn điều đó.</p> <p>Tôi không muốn lấy đi cảm giác đó của bạn.</p> <p>Nhưng tôi muốn ngồi lại với bạn, thật lòng, và nói một điều mà nhiều người trong cộng đồng này không nói — hoặc không dám nói. Không phải vì họ xấu. Mà vì đôi khi, người ta quá yêu một thứ đến mức không còn nhìn thấy nó đúng nữa.</p> <div class="kp"> Tử bình <strong>có giá trị thật</strong>. Nhưng có thể không phải <em>theo cái cách</em> mà nhiều người đang dẫn bạn. </div> <p>Trong cộng đồng nghiên cứu tử bình, có ít nhất <strong>hai cách nhìn</strong> về bản chất của nó — và chúng dẫn đến hai thái độ hoàn toàn khác nhau.</p> <p><strong>Cách nhìn thứ nhất</strong> là cách nhìn phổ biến hơn: lá số là chân lý, luận đoán là định mệnh, thầy nói gì thì đó là những gì sẽ xảy ra.</p> <p>Tiếc thay, thứ ta sắp đến không phải là quan điểm, mà là <em>sự thật</em>. Cách nhìn này không chỉ thiếu cơ sở khoa học — nó <strong>đã bị bác bỏ bằng bằng chứng thực tế</strong>.</p> <p>Nhà nghiên cứu <em>Geoffrey Dean</em> đã theo dõi hơn hai nghìn người sinh tại London trong cùng một khoảng thời gian ngắn, trong đó những người sinh cách nhau chỉ khoảng 15 phút, có nhiều cặp người tham gia cùng lá số, mà giới chiêm tinh gọi là <em>"time twins"</em>. Nếu lá số quyết định vận mệnh, những người này phải có cuộc đời tương đồng đáng kể: tính cách, trí tuệ, sự nghiệp, hôn nhân.</p> <div class="kp"> Kết quả theo dõi suốt nhiều thập kỷ cho thấy <strong>không có sự tương đồng nào vượt qua ngưỡng ngẫu nhiên</strong>. Hai người cùng lá số có thể sống hoàn toàn khác nhau — và tiếc thay — thường là vậy. </div> <p>Điều đó <em>không có nghĩa tử bình vô dụng</em>. Chỉ là cách nào sai ta hãy bỏ nó đi, thử một cách khác, để làm giảm sai số hơn. Nhưng bước đầu tiên khi bạn làm một bài toán sai là gì? Xóa bỏ việc chấm điểm bằng câu: <em>"không có đúng và cũng chẳng có sai"</em> à?</p> <p>Nếu một người thầy ngồi trước bạn, nói chắc như đinh đóng cột rằng năm này bạn sẽ thất bại, rằng lá số này cả đời cô đơn, rằng vận hạn này không tránh được… bạn sẽ nghĩ gì? Để mặc những thiên kiến dẫn dắt — hay là tự nhủ trong đầu một điều: <em>họ đang nói một điều mà bằng chứng đã bác bỏ</em>. Dù họ có tin vào điều đó hay không.</p> <p><strong>Cách nhìn thứ hai</strong> ít người nhắc đến hơn nhưng đây mới là hướng đáng đi. Nó không phủ nhận tử bình. Nó đặt câu hỏi đúng hơn: <em>nếu người sinh cùng giờ có thể sống khác nhau, thì lá số đang nắm bắt cái gì? Đến mức độ nào? Trong điều kiện nào?</em></p> <p>Cách nhìn này chưa hoàn chỉnh. Nó đã từng được đặt nền móng cách đây 1000 năm, và vẫn cần được xây dựng. Và có một lý do giúp chúng ta trung thực hơn — vì bất kỳ thứ gì xứng đáng được gọi là tri thức đều phải sẵn sàng nói: <em>tôi chưa biết hết, tôi đang học tiếp</em>.</p> <h3 class="inline-sub">⟢ Tôi không phải người đứng ngoài phán xét ⟢</h3> <p>Tôi muốn nói với bạn là: tôi <strong>không phải người hoài nghi ngồi ngoài</strong> nhìn vào bĩu môi chê trách và cố tỏ ra mình là thượng đẳng.</p> <p>Trong quá khứ, tôi đã thiển tri, hồn nhiên phán xét định mệnh cho nhiều người.</p> <p>Rồi giờ đây, sau nhiều năm nghiên cứu, tôi đã trực tiếp theo dõi hàng chục trường hợp người sinh cùng ngày giờ rồi: <em>choáng váng vì tỉnh ngộ</em>, rồi đối chiếu các lá số với cuộc đời thực, ghi chép, so sánh, phạm ngụy biện và sai lầm tư duy, học cách tư duy logic và xây dựng mô hình dự đoán cho hàng trăm trường hợp mỗi năm. Sau tất cả thực tiễn đó thì tôi <strong>vẫn là người tin rằng thứ này có giá trị</strong> — và chính vì tin như vậy tôi muốn các bạn nghe những lời nói thật, và nói thẳng về nó.</p> <p>Kết quả của nhiều năm đó cho tôi thấy một điều rõ ràng: trong số các trường phái và môn nhân mệnh học mà tôi từng tiếp cận, <em>tử bình truyền thống</em> — với hệ thống lý luận sâu sắc và tinh tế — là trường phái <strong>gần với thực tiễn nhất</strong>. Gần hơn, chứ không gần sát, cũng như: không phải hoàn hảo. Nó còn nhiều lỗ hổng. Nhưng là gần nhất.</p> <p>Đó là lý do tôi ở lại với nó. Và cũng là lý do tôi không thể chấp nhận việc nó bị dùng sai.</p> ` }, { title: 'Không phải khoa học —<br><em>không cần giả vờ là khoa học</em>', subtitle: 'Đặt nó đúng chỗ để khỏi vỡ mộng', body: ` <p>Nói tử bình không phải khoa học không phải để hạ thấp nó — mà để <strong>đặt nó đúng chỗ</strong>, tránh kỳ vọng sai và tránh bào chữa sai.</p> <p>Khoa học có cơ chế kiểm chứng nghiêm ngặt: <em>đo đếm được, lặp lại được, và quan trọng nhất — bác bỏ được</em>.</p> <p>Tử bình không có những thứ đó và <strong>không cần giả vờ là có</strong>. Vấn đề là khi người học đối xử với nó như thể nó là khoa học, tức là họ đang tin vào từng chi tiết luận đoán như tin vào kết quả xét nghiệm — rõ ràng là họ đang áp đặt lên nó một chuẩn mực mà nó không được xây dựng để đáp ứng. Kết quả là <em>vỡ mộng</em>, hoặc tệ hơn, là <em>bào chữa không ngừng</em> cho những lần sai.</p> <p>Vậy tử bình là gì?</p> <div class="kp"> Tử bình là một <strong>hệ thống mô hình dự báo</strong>. Nó xây dựng một bản đồ giả định về xu hướng của một con người dựa trên cấu trúc thời gian sinh — năm, tháng, ngày, giờ — rồi từ đó đưa ra những hướng phát triển <em>có thể xảy ra</em>. Một lá số có thể có <em>nhiều hướng phát triển</em>. </div> <p>Từ "có thể" ở đây không phải khiêm tốn xã giao. Đó là <strong>bản chất thực sự của hệ thống</strong>.</p> <p><span class="hl">Bản đồ không phải địa hình.</span> Bản đồ mô tả địa hình — và mô tả đó hữu ích hay không phụ thuộc vào việc người dùng hiểu giới hạn của nó đến đâu.</p> <p>Người cầm bản đồ mà <em>tin bản đồ là địa hình</em> thì sẽ đi lạc.</p> <p>Người hiểu bản đồ chỉ là <em>công cụ tham chiếu</em> thì sẽ đối chiếu với thực tế, điều chỉnh khi cần, và <strong>không hoảng loạn khi thực tế không khớp</strong>.</p> ` }, { title: 'Mô hình dự báo khác <em>tiên tri</em> thế nào', subtitle: 'Ranh giới quan trọng nhất — và bị xóa mờ nhiều nhất', body: ` <p>Đây là <strong>ranh giới quan trọng nhất</strong> — và cũng là ranh giới bị xóa mờ nhiều nhất trong cộng đồng huyền học.</p> <div class="compare-pair"> <div class="compare-cell bad"> <span class="c-lbl">⚠ Tiên tri nói</span> <div class="c-text">Kết quả đã được định sẵn, không thể thay đổi, không cần điều kiện. <em>"Năm này anh sẽ phá sản. Tháng này chị sẽ gặp tai nạn. Lá số này cả đời cô đơn."</em></div> </div> <div class="compare-cell good"> <span class="c-lbl">✓ Mô hình dự báo nói</span> <div class="c-text">Trong những điều kiện này, xu hướng này có khả năng xảy ra. <em>Thay đổi điều kiện — xu hướng thay đổi.</em> Bổ sung thông tin — kết quả điều chỉnh.</div> </div> </div> <p>Những phán đoán của tiên tri <em>không cần thêm thông tin, không cần bối cảnh, không cần đối chiếu</em> — vì chúng tự xưng là sự thật tuyệt đối. Thầy càng tự tin thì đương số càng tin tưởng, đúng không nào?</p> <p>Trong khi đó, mô hình dự báo nói: <em>trong những điều kiện này, xu hướng này có khả năng xảy ra</em>. Thay đổi điều kiện — xu hướng thay đổi. Bổ sung thông tin — kết quả điều chỉnh. Đây là cách <strong>dự báo thời tiết</strong> hoạt động, cách <strong>mô hình kinh tế</strong> hoạt động, và cách tử bình cũng <em>nên hoạt động như vậy</em>.</p> <p><strong>Tại sao không nên tìm tiên tri?</strong> Vì tiên tri không tồn tại và việc tìm kiếm nó chính là <em>nguồn gốc của phần lớn những sai lầm tư duy</em> đã nói ở chương một. Khi tin rằng lá số có thể tiên tri chính xác:</p> <p>· Người học bắt đầu chỉ nhớ những lần đúng và giải thích những lần sai — đó là <em>thiên kiến xác nhận</em>.</p> <p>· Họ bắt đầu tin vào ba mươi lần đúng như thể đó là chân lý — đó là <em>lượng mẫu nhỏ</em>.</p> <p>· Họ bắt đầu dùng "sai giờ" để lấp vào mọi lần thất bại — đó là <em>tiêu chuẩn kép</em>.</p> <p>Không phải họ cố tình gian dối. Họ chỉ đang <em>tìm tiên tri trong một thứ không được xây dựng để làm tiên tri</em>.</p> <div class="kp"> <strong>Từ bỏ tiên tri không phải từ bỏ tử bình.</strong> Đó là <em>điều kiện để dùng tử bình đúng cách</em>. </div> ` }, { title: 'Bằng chứng rằng lá số <em>có giá trị</em><br>nhưng không phải tiên tri', subtitle: 'Lý luận thôi chưa đủ — cần bằng chứng', body: ` <p>Lý luận thôi chưa đủ. Cần bằng chứng — và bằng chứng đó <strong>không thiếu</strong>.</p> <h3 class="inline-sub">⟢ Người sinh cùng giờ — giống nhau đến mức nào? ⟢</h3> <p>Hãy đặt một cái nền để so sánh. Hai người hoàn toàn xa lạ, sinh khác ngày khác giờ, sống ở hai môi trường khác nhau — giả sử họ có khoảng <em>bốn mươi phần trăm</em> các yếu tố cuộc sống tương đồng. Bốn mươi phần trăm đó là <strong>nền chung của con người</strong> — vì cuộc sống của ai cũng có những nhịp tương tự, không cần cùng lá số.</p> <p>Những người sinh cùng ngày giờ thì có điểm chung nhiều hơn — nhưng <em>không phải nhiều hơn theo kiểu thần kỳ</em>. Chỉ nhiều hơn một chút. Đủ để thấy có gì đó — nhưng không đủ để kết luận lá số quyết định tất cả.</p> <h3 class="inline-sub">⟢ Anh em sinh đôi bị tách ra — gợi ý về một thứ có thật ⟢</h3> <p>Có một loại bằng chứng kỳ lạ hơn đến từ những cặp anh em sinh đôi bị tách ra từ nhỏ, lớn lên trong những gia đình hoàn toàn khác nhau, không biết nhau tồn tại, rồi một ngày tình cờ gặp lại.</p> <p>Trong số đó có <em>Doug Rausch và Howard Burack</em> — hai người lớn lên hoàn toàn tách biệt, nhưng khi gặp lại thì phát hiện cuộc đời họ gần như chạy song song: kết hôn cùng năm, có nhiều sở thích chung, vợ của cả hai có sự tương đồng đáng kinh ngạc về tính cách và nghề nghiệp.</p> <p>Những cặp khác như <em>Elyse Schein và Paula Bernstein</em>, hay hai chị em <em>Lulin và Yanfei</em> tại Trung Quốc, cũng có những trải nghiệm tương tự — dù lớn lên trong môi trường hoàn toàn khác, họ vẫn giữ những nét tương đồng kỳ lạ về tính cách, sở thích, thậm chí những quyết định lớn trong cuộc đời.</p> <p>Không phải cặp nào cũng vậy. Nhưng những trường hợp tương đồng đó đủ nhiều và đủ cụ thể để gợi lên một câu hỏi không dễ bác bỏ: <strong>có những thứ được mang theo từ lúc sinh ra</strong>, chi phối con người theo những cách mà môi trường không hoàn toàn xóa được.</p> <div class="kp"> Đó là lý do tử bình đáng được nghiên cứu nghiêm túc — không phải vì nó giải thích được tất cả, mà vì nó đang cố gắng <strong>đặt tên cho một thứ có thật</strong>, dù còn mơ hồ và chưa thể đo đếm được. </div> <h3 class="inline-sub">⟢ Ba người sinh cùng giờ — một lá số, ba cuộc đời ⟢</h3> <p><em>Donald Trump</em> sinh ngày 14 tháng 6 năm 1946, 10 giờ 52 phút sáng tại New York. <em>Jean-David Levitte</em> — nhà ngoại giao người Pháp — sinh cùng ngày, 10 giờ 30 phút sáng tại Pháp. <em>Timothy Getty</em> sinh cùng ngày, 9 giờ sáng tại Los Angeles. Sau khi quy đổi về giờ thực tại địa phương, cả ba có cùng thông số: <strong>năm Bính Tuất, tháng Giáp Ngọ, ngày Kỷ Mùi, giờ Kỷ Tỵ</strong>.</p> <p><strong>Người xưa đã thấy giới hạn này từ lâu.</strong> Trong <em>Hỷ Kỵ Thiên</em> — tài liệu tử bình từ thời nhà Tống, cách đây gần một nghìn năm — đã ghi lại trường hợp hai người phụ nữ có cùng bát tự hoàn toàn giống nhau. Một người cuộc sống sung túc, một người nghèo khó suốt đời. Lý giải không phải là lá số sai — mà là <em>người chồng khác nhau tạo ra hai cuộc đời khác nhau từ cùng một điểm xuất phát</em>. Người xưa không che giấu giới hạn đó. Họ ghi lại nó, đặt tên cho nó, và <strong>dùng nó như điểm khởi đầu để mở rộng công cụ</strong>.</p> <h3 class="inline-sub">⟢ Áp dụng ngoại cảnh để hiểu bát tự ⟢</h3> <p>Trong mệnh cục của Trump, Levitte và Getty, thần tốt nhất là <em>Ấn tinh Bính hỏa tại trụ năm</em>. Ngũ hành của người cha vì vậy có ảnh hưởng đặc biệt quan trọng:</p> <div class="persons-grid"> <div class="person-row"> <span class="person-name">Donald Trump</span> <span class="person-father">cha: hỏa thổ</span> <span class="person-fate">Rất phù hợp với dụng thần. <strong>Kế thừa sản nghiệp cha, trở thành tỷ phú rồi tổng thống.</strong></span> </div> <div class="person-row"> <span class="person-name">JD. Levitte</span> <span class="person-father">cha: hỏa thổ</span> <span class="person-fate">Bổ trợ tốt. <strong>Từng bước leo lên đỉnh hệ thống ngoại giao Pháp.</strong></span> </div> <div class="person-row tragic"> <span class="person-name">Timothy Getty</span> <span class="person-father">cha: kim thủy</span> <span class="person-fate">Tương khắc với dụng thần. <strong>Mất lúc mười hai tuổi.</strong></span> </div> </div> <p>Cùng một lá số. Ba người cha với ngũ hành khác nhau. <em>Ba cuộc đời không thể so sánh.</em></p> <p>Đây là những thông tin công khai mà bất kỳ ai cũng có thể tự kiểm chứng. Những ví dụ này không phải tôi lấy từ sách — trong nhiều năm nghiên cứu, tôi đã tự đi tìm những trường hợp sinh cùng giờ trong thực tế, của chính mình, của vợ tôi, của nhiều học trò. Có cô học trò tên <em>Thủy Ngô</em> còn lập kỷ lục tìm được bốn người nữ khác sinh cùng giờ với cô ấy. Những trường hợp đó tôi không đưa vào đây vì muốn tôn trọng các thỏa thuận trao đổi thông tin riêng tư. Nhưng <strong>nếu các bạn thấy những gì tôi đang viết là trung thực — thì con người tôi cũng vậy</strong>.</p> ` }, { title: 'Vậy tử bình <em>có thể làm gì</em><br>và không thể làm gì?', subtitle: 'Đặt đúng chức năng để dùng đúng', body: ` <p>Từ những bằng chứng trên, có thể rút ra một kết luận không dễ nghe nhưng cần thiết: <strong>chỉ dựa vào lá số mà xem</strong> — không có thông tin ngoại cảnh, không có bối cảnh con người — thì chắc chắn đó là <em>mê tín</em>.</p> <p>Ngay từ đầu bát tự tử bình <em>không được dùng để xem những việc chi tiết</em>. Những thứ như bao giờ giàu, nhà cửa có cao rộng không, có mấy chồng mấy vợ — bát tự tử bình không đề cập đến, không phải vì tử bình vô dụng hơn các môn khác, mà vì <strong>người ta đang dùng nó sai chức năng</strong>.</p> <h3 class="inline-sub">⟢ Tử bình không thể — nhưng có thể ⟢</h3> <p>· Tử bình <strong>không thể xem hôn nhân tốt hay xấu</strong> — nhưng có thể xem <em>sự phù hợp giữa hai người</em> nếu có thêm thông tin về cả hai.</p> <p>· Tử bình <strong>không thể xem giàu hay nghèo</strong> — nhưng có thể xem <em>xu hướng phát triển tài lộc</em> nếu phối hợp với thông tin về nền tảng gia đình, môi trường sống, và bối cảnh xã hội.</p> <p>· Tử bình <strong>không thể tiên tri tai nạn hay bệnh tật</strong> — nhưng có thể chỉ ra <em>những giai đoạn cần thận trọng</em>, những điều kiện có thể làm tăng hoặc giảm rủi ro.</p> <div class="kp"> Nói cách khác: tử bình là <strong>công cụ đọc xu hướng trong điều kiện</strong> — không phải công cụ đọc kết quả tuyệt đối. Và như mọi công cụ, nó chỉ hữu ích khi được dùng đúng mục đích. </div> <h3 class="inline-sub">⟢ Hình dung tử bình như phân tích cây giống ⟢</h3> <p>Phân tích lá số là khâu <em>thẩm định</em>: cây giống này có tố chất tốt không, có nhiều cơ hội phát triển thuận lợi không, khả năng chống chịu ra sao.</p> <p>Nhưng cây thực sự phát triển thế nào còn phụ thuộc vào <em>thổ nhưỡng, khí hậu, người chăm sóc</em>. Cùng một giống cây tốt, đặt vào đất màu mỡ thì vươn cao, đặt vào đất cằn thì lụi.</p> <div class="kp"> <strong>Lá số là giống cây — còn cuộc đời là cả một quá trình trồng trọt.</strong> </div> ` }, { title: 'Mô hình có thể <em>tùy biến</em><br>và đó là điểm mạnh thực sự', subtitle: 'Hai mức độ tác động — không phải tù nhân của lá số', body: ` <p>Hiểu tử bình là mô hình dự báo mở ra một hướng hoàn toàn khác: thay vì ngồi đọc lá số và kết luận, <strong>người học bắt đầu đặt câu hỏi về điều kiện và tùy biến mô hình theo đa hướng</strong>.</p> <h3 class="inline-sub">⟢ Mức độ thứ nhất — chọn môi trường phù hợp ⟢</h3> <p>Lá số <em>không quyết định kết quả</em> — nó mô tả xu hướng trong một môi trường <em>trung bình</em>. Nhưng môi trường không bao giờ là trung bình.</p> <p>Một lá số dụng hỏa thổ đặt vào môi trường có hỏa thổ ở mức phù hợp sẽ <em>phát triển thuận</em>. Cùng lá số đó đặt vào môi trường kim thủy nhiều — <em>xu hướng bị kìm lại</em>. Ngay cả khi cùng là môi trường thuận lợi, thì "hội tụ nhiều điều kiện tốt" và "có một số điều kiện tốt" cũng dẫn đến sự khác nhau.</p> <p>Đây là lý do <strong>Trump và Levitte</strong>, dù cùng lá số, lại đi hai con đường khác nhau — và cùng lý do đó giải thích tại sao <strong>Timothy Getty</strong> ra đi lúc mười hai tuổi.</p> <h3 class="inline-sub">⟢ Mức độ thứ hai — can thiệp thẳng vào kết cấu bát tự ⟢</h3> <p>Lá số <em>không hoàn toàn cố định</em> — kết cấu bên trong có thể thay đổi khi có tác động từ bên ngoài <strong>đủ mạnh và đúng chỗ</strong>.</p> <p>Ví dụ: trong bát tự có <em>can Đinh hỏa không có gốc</em> — nghĩa là hành hỏa này yếu, không có nền tảng để đứng vững. Nhưng nếu trong mệnh cha mẹ lại có nhiều hỏa, thì nguồn hỏa từ môi trường gia đình có thể <strong>bổ sung gốc</strong> cho can Đinh đó. Khi gốc được bổ sung, cách cục trong bát tự thay đổi — và theo đó, xu hướng phát triển cũng thay đổi.</p> <p>Đây không phải can thiệp thần bí. Đây là cách <em>môi trường tác động thẳng vào kết cấu của mô hình</em>.</p> <div class="kp"> <strong>Con người không phải tù nhân của lá số.</strong> Lá số là <em>bản đồ khởi điểm</em> — còn hành trình thực sự phụ thuộc vào những gì được bổ sung, điều chỉnh, và xây dựng thêm trong suốt cuộc đời. </div> <h3 class="inline-sub">⟢ Góc nhìn này có tránh khỏi ngụy biện? ⟢</h3> <p>Hiểu tử bình như một hệ thống mô hình dự báo có tùy biến giúp tránh được một số sai lầm quan trọng:</p> <p>· Nó tránh được cái bẫy <em>"mình thấy đúng là đúng"</em> — vì mô hình luôn đặt ra điều kiện môi trường, không cho phép kết luận tuyệt đối từ lá số đơn thuần.</p> <p>· Nó tránh được <em>ngụy biện nhân quả đơn giản</em> — vì kết quả luôn là tương tác giữa lá số và bối cảnh.</p> <p>· Nó tránh được lý do <em>"sai giờ"</em> như tấm khiên vô hạn — vì khi môi trường và kết cấu được đưa vào như biến số có thể phân tích, người học buộc phải làm việc với dữ liệu thật thay vì đổ lỗi cho thứ không thể kiểm chứng.</p> <p>Nhưng <strong>không có góc nhìn nào hoàn toàn miễn nhiễm với ngụy biện</strong>. Ngay cả khi hiểu đúng tử bình là mô hình dự báo có tùy biến, <em>thiên kiến xác nhận</em> vẫn có thể len vào — khi người học chỉ ghi nhận những lần mô hình khớp với thực tế và giải thích những lần không khớp bằng <em>"môi trường chưa đủ điều kiện"</em> hay <em>"can thiệp chưa đúng chỗ"</em>. Hai câu đó, nếu dùng tùy tiện, có thể trở thành <strong>phiên bản mới của "sai giờ"</strong> — tinh vi hơn, khó phát hiện hơn, nhưng bản chất không khác.</p> <div class="kp"> Điều quan trọng là: người học có đang dùng <strong>mô hình để hiểu thực tế</strong> — hay đang dùng <strong>thực tế để bảo vệ mô hình</strong>? </div> <p>Câu hỏi đó không có câu trả lời một lần cho mãi mãi. <em>Nó cần được đặt ra mỗi khi cầm lá số lên tay.</em></p> ` } ]; const QUESTIONS = [ { text: '<em>Tử bình</em> là gì?', options: ['Một bộ môn khoa học được kiểm chứng bằng thực nghiệm', 'Một hệ thống tiên tri về số phận con người', 'Một hệ thống mô hình dự báo xu hướng dựa trên cấu trúc thời gian sinh', 'Một phương pháp chữa bệnh theo ngũ hành'], correct: 2, explain: '<strong>Hệ thống mô hình dự báo xu hướng.</strong> Tử bình xây dựng <em>bản đồ giả định</em> về xu hướng của một con người dựa trên cấu trúc thời gian sinh — rồi đưa ra những hướng phát triển <em>có thể xảy ra</em>.' }, { text: 'Điểm khác biệt cốt lõi giữa <em>tiên tri</em> và <em>mô hình dự báo</em> là gì?', options: ['Tiên tri dùng ngũ hành, dự báo dùng thống kê', 'Tiên tri kết luận tuyệt đối không cần điều kiện; dự báo đặt xu hướng trong điều kiện cụ thể', 'Tiên tri chính xác hơn dự báo', 'Tiên tri do thầy giỏi thực hiện, dự báo ai cũng làm được'], correct: 1, explain: '<strong>Tiên tri tuyệt đối — dự báo có điều kiện.</strong> Tiên tri tự xưng sự thật, không cần bối cảnh. Mô hình dự báo nói: <em>"Trong những điều kiện này, xu hướng này có khả năng xảy ra"</em> — thay đổi điều kiện thì xu hướng thay đổi.' }, { text: 'Nghiên cứu <em>"time twins"</em> của Geoffrey Dean theo dõi hàng nghìn người sinh cùng khoảng thời gian ngắn tại London cho kết quả gì?', options: ['Những người sinh cùng giờ có tính cách và sự nghiệp rất giống nhau', 'Môi trường sống hoàn toàn quyết định cuộc đời, lá số không có giá trị', 'Không có sự tương đồng nào giữa họ vượt qua ngưỡng ngẫu nhiên', 'Lá số chỉ dự đoán đúng ở các nước phương Đông'], correct: 2, explain: '<strong>Không vượt qua ngưỡng ngẫu nhiên.</strong> Kết quả theo dõi suốt nhiều thập kỷ cho thấy hai người cùng lá số có thể sống <em>hoàn toàn khác nhau</em> — và <em>thường là vậy</em>.' }, { text: 'Bằng chứng từ các cặp <em>sinh đôi bị tách ra</em> từ nhỏ gợi lên điều gì?', options: ['Môi trường nuôi dưỡng quyết định hoàn toàn tính cách', 'Lá số không có giá trị vì hai người cùng giờ sinh sống khác nhau', 'Có những thứ được mang theo từ lúc sinh ra mà môi trường không hoàn toàn xóa được', 'Người sinh đôi luôn có cuộc đời giống hệt nhau'], correct: 2, explain: '<strong>Có những thứ mang theo từ lúc sinh ra.</strong> Nhiều cặp lớn lên hoàn toàn tách biệt vẫn có những tương đồng kỳ lạ — đủ để đặt câu hỏi nghiêm túc về một thứ <em>có thật, dù còn mơ hồ và chưa thể đo đếm được</em>.' }, { text: 'Trump, Levitte và Timothy Getty cùng lá số nhưng có cuộc đời <em>hoàn toàn khác nhau</em>. Yếu tố nào giải thích sự khác biệt đó?', options: ['Họ sinh tại múi giờ khác nhau nên lá số thực ra không giống nhau', 'Ngũ hành của môi trường xung quanh cũng như sự khác biệt về tôn giáo và văn hóa', 'Ảnh hưởng của tâm linh', 'Lá số của họ thực ra không giống nhau hoàn toàn'], correct: 1, explain: '<strong>Ngũ hành môi trường + bối cảnh sống.</strong> Cha của Trump và Levitte có ngũ hành <em>hỏa thổ</em> — phù hợp dụng thần Bính hỏa. Cha của Getty <em>kim thủy</em> — tương khắc.' }, { text: '<em>Hỷ Kỵ Thiên</em> từ thời nhà Tống ghi lại trường hợp hai người phụ nữ cùng bát tự — một sung túc, một nghèo khó. Điều đó dạy chúng ta điều gì?', options: ['Lá số không có giá trị vì hai người giống nhau mà cuộc đời khác nhau', 'Người xưa đã nhận ra giới hạn của lá số và dùng nó như điểm khởi đầu để mở rộng công cụ', 'Chỉ cần xem lá số là đủ, không cần thêm thông tin', 'Lá số phụ nữ khó đọc hơn lá số đàn ông'], correct: 1, explain: '<strong>Người xưa nhận ra giới hạn — và dùng nó để mở rộng công cụ.</strong> Họ ghi lại, đặt tên, và <em>dùng nó làm điểm khởi đầu để phát triển thêm</em>.' }, { text: 'Tử bình <em>có thể làm gì</em> trong số các lựa chọn sau?', options: ['Tiên tri chính xác tai nạn và bệnh tật', 'Xác định hôn nhân sẽ tốt hay xấu chỉ từ một lá số', 'Chỉ ra xu hướng phát triển tài lộc khi kết hợp với thông tin về nền tảng gia đình và bối cảnh xã hội', 'Dự báo thời điểm chính xác các sự kiện lớn trong đời'], correct: 2, explain: '<strong>Đọc xu hướng trong điều kiện.</strong> Tử bình không thể tiên tri tuyệt đối — nhưng có thể <em>chỉ ra xu hướng</em> khi phối hợp với thông tin ngoại cảnh.' }, { text: '<em>"Mức độ tùy biến thứ nhất"</em> của mô hình tử bình là gì?', options: ['Thay đổi giờ sinh để có lá số tốt hơn', 'Chọn môi trường sống có ngũ hành phù hợp với dụng thần của lá số', 'Học thêm nhiều trường phái để bổ sung cho nhau', 'Nhờ thầy phong thủy điều chỉnh nhà cửa'], correct: 1, explain: '<strong>Chọn môi trường phù hợp.</strong> Lá số mô tả xu hướng trong môi trường <em>trung bình</em> — nhưng môi trường không bao giờ là trung bình.' }, { text: '<em>"Mức độ tùy biến thứ hai"</em> của mô hình tử bình là gì?', options: ['Tìm vận may bằng cách thay đổi tên tuổi', 'Tác động từ bên ngoài đủ mạnh và đúng chỗ có thể bổ sung gốc cho can chi yếu, thay đổi cách cục bên trong bát tự', 'Kết hợp tử bình với phong thủy và tử vi để tăng độ chính xác', 'Chờ đại vận tốt để hành động'], correct: 1, explain: '<strong>Can thiệp thẳng vào kết cấu bát tự.</strong> Ví dụ: can Đinh hỏa không có gốc — nhưng nếu mệnh cha mẹ có nhiều hỏa, <em>nguồn hỏa từ gia đình có thể bổ sung gốc</em>.' }, { text: 'Nguy cơ nào <em>vẫn tồn tại</em> ngay cả khi đã hiểu đúng tử bình là mô hình dự báo có tùy biến?', options: ['Người học sẽ từ bỏ tử bình vì thấy quá phức tạp', 'Người học sẽ tin tuyệt đối vào khoa học và phủ nhận hoàn toàn tử bình', 'Dùng "môi trường chưa đủ điều kiện" một cách tùy tiện — biến nó thành phiên bản tinh vi hơn của "ngụy biện sai giờ"', 'Lá số sẽ bị diễn giải sai vì thiếu công cụ tính toán'], correct: 2, explain: '<strong>Phiên bản tinh vi hơn của "sai giờ".</strong> Câu hỏi cần đặt ra mỗi khi cầm lá số: <em>mình đang dùng mô hình để hiểu thực tế — hay đang dùng thực tế để bảo vệ mô hình?</em>' } ]; let currentPart = 0; let currentQ = 0; let answers = []; let answered = false; function renderPart() { const p = PARTS[currentPart]; document.getElementById('partSeal').textContent = ROMAN[currentPart + 1]; document.getElementById('partLbl').textContent = 'Phần ' + ORDINAL[currentPart + 1]; document.getElementById('partTitle').innerHTML = p.title; document.getElementById('partSubtitle').textContent = p.subtitle; document.getElementById('partBody').innerHTML = p.body; document.getElementById('partNumDisplay').textContent = currentPart + 1; document.querySelectorAll('.part-progress .dot').forEach((d, i) => { d.classList.remove('current', 'done'); if (i < currentPart) d.classList.add('done'); else if (i === currentPart) d.classList.add('current'); }); document.getElementById('prevPartBtn').disabled = currentPart === 0; const nextBtn = document.getElementById('nextPartBtn'); if (currentPart === PARTS.length - 1) { nextBtn.textContent = '⟢ Hoàn tất ⟢'; document.getElementById('endSection').style.display = 'block'; } else { nextBtn.textContent = 'Xem tiếp →'; document.getElementById('endSection').style.display = 'none'; } } function nextPart() { if (currentPart < PARTS.length - 1) { currentPart++; renderPart(); scrollPartIntoView(); } else { scrollToCTA(); } } function prevPart() { if (currentPart > 0) { currentPart--; renderPart(); scrollPartIntoView(); } } function scrollPartIntoView() { const card = document.querySelector('.part-card'); if (card) { const rect = card.getBoundingClientRect(); const top = rect.top + window.pageYOffset - 80; try { window.scrollTo({ top: top, behavior: 'smooth' }); } catch(e) { window.scrollTo(0, top); } } } function scrollToCTA() { const cta = document.querySelector('.cta'); if (cta) { const rect = cta.getBoundingClientRect(); const top = rect.top + window.pageYOffset - 30; try { window.scrollTo({ top: top, behavior: 'smooth' }); } catch(e) { window.scrollTo(0, top); } } } function startQuiz() { currentQ = 0; answers = []; document.getElementById('view-article').classList.remove('active'); document.getElementById('view-quiz').classList.add('active'); renderQuestion(); scrollToTop(); } function backToArticle() { document.getElementById('view-quiz').classList.remove('active'); document.getElementById('view-result').classList.remove('active'); document.getElementById('view-article').classList.add('active'); scrollToTop(); } function renderQuestion() { answered = false; const q = QUESTIONS[currentQ]; const total = QUESTIONS.length; document.getElementById('progressFill').style.width = ((currentQ) / total * 100) + '%'; document.getElementById('qNumDisplay').textContent = currentQ + 1; document.getElementById('qLabel').textContent = 'Câu ' + (currentQ + 1); document.getElementById('qText').innerHTML = q.text; const letters = ['A', 'B', 'C', 'D']; document.getElementById('qOptions').innerHTML = q.options.map((opt, i) => ` <button class="opt-btn" data-idx="${i}" onclick="selectAnswer(${i})"> <span class="opt-letter">${letters[i]}</span>${opt} </button> `).join(''); const explain = document.getElementById('qExplain'); explain.classList.remove('visible', 'is-correct', 'is-wrong'); explain.innerHTML = ''; document.getElementById('nextBtn').classList.remove('visible'); document.getElementById('nextBtn').textContent = (currentQ === QUESTIONS.length - 1) ? '⟢ Xem kết quả ⟢' : 'Câu tiếp →'; } function selectAnswer(idx) { if (answered) return; answered = true; const q = QUESTIONS[currentQ]; const isCorrect = idx === q.correct; answers.push({ correct: isCorrect }); document.querySelectorAll('.opt-btn').forEach((btn, i) => { btn.disabled = true; if (i === q.correct) btn.classList.add('correct'); else if (i === idx) btn.classList.add('wrong'); else btn.classList.add('dimmed'); }); const explain = document.getElementById('qExplain'); explain.innerHTML = `<span class="verdict">${isCorrect ? '✓ Chính xác' : '✕ Chưa đúng'}</span><br>${q.explain}`; explain.classList.add('visible'); explain.classList.add(isCorrect ? 'is-correct' : 'is-wrong'); document.getElementById('nextBtn').classList.add('visible'); document.getElementById('progressFill').style.width = ((currentQ + 1) / QUESTIONS.length * 100) + '%'; } function nextQuestion() { if (currentQ < QUESTIONS.length - 1) { currentQ++; renderQuestion(); scrollToTop(); } else { showResult(); } } function showResult() { let totalCorrect = 0; answers.forEach(a => { if (a.correct) totalCorrect++; }); document.getElementById('finalScore').textContent = totalCorrect; let title, msg; if (totalCorrect === 10) { title = 'Toàn <em>thập</em>!'; msg = 'Hoàn hảo. Bạn đã nắm vững cả sáu phần — sẵn sàng học các chương sâu hơn về cách cục, dụng thần, đại vận.'; } else if (totalCorrect >= 8) { title = 'Xuất <em>sắc</em>'; msg = 'Bạn đã hiểu đúng cốt lõi: tử bình là mô hình dự báo, không phải tiên tri. Vài câu sai chỉ là chi tiết.'; } else if (totalCorrect >= 6) { title = '<em>Khá</em> tốt'; msg = 'Đã có khái niệm cơ bản. Nên đọc lại phần III (tiên tri vs dự báo) và VI (tùy biến).'; } else if (totalCorrect >= 4) { title = 'Còn <em>chỗ trống</em>'; msg = 'Nền tảng chưa thật vững. Khuyến nghị: đọc lại sáu phần một lần nữa.'; } else { title = '<em>Khởi đầu</em>'; msg = 'Đây mới là bước đầu — không sao cả. Hãy đọc kỹ lại bài, sau đó quay lại làm trắc nghiệm.'; } document.getElementById('resultTitle').innerHTML = title; document.getElementById('resultMsg').innerHTML = msg; document.getElementById('view-quiz').classList.remove('active'); document.getElementById('view-result').classList.add('active'); scrollToTop(); } function restartQuiz() { currentQ = 0; answers = []; document.getElementById('view-result').classList.remove('active'); document.getElementById('view-quiz').classList.add('active'); renderQuestion(); scrollToTop(); } function scrollToTop() { try { window.scrollTo({ top: 0, behavior: 'instant' }); } catch(e) { window.scrollTo(0, 0); } } renderPart(); </script> <script> (function(){ function getH() { var app = document.querySelector('.app'); if (app) { var rect = app.getBoundingClientRect(); var appTop = rect.top + (window.pageYOffset || document.documentElement.scrollTop); return Math.ceil(appTop + app.scrollHeight + 40); } return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight); } function postH(){ try { if (window.parent && window.parent !== window) { var activeView = document.querySelector('.view.active'); var viewId = activeView ? activeView.id : ''; if (viewId === 'view-article') { var endVisible = document.getElementById('endSection').style.display !== 'none'; viewId = 'view-article-p' + (typeof currentPart !== 'undefined' ? currentPart : 0) + (endVisible ? 'e' : ''); } window.parent.postMessage({ ltC2Height: getH(), viewId: viewId }, '*'); } } catch(e){} } function init() { postH(); [50, 200, 500, 1000, 2000, 3500, 5000, 8000, 12000].forEach(function(t){ setTimeout(postH, t); }); if (typeof ResizeObserver !== 'undefined') { try { var ro = new ResizeObserver(postH); var app = document.querySelector('.app'); if (app) ro.observe(app); ro.observe(document.body); } catch(e){} } if (typeof MutationObserver !== 'undefined') { try { new MutationObserver(postH).observe(document.body, { childList: true, subtree: true, attributes: true }); } catch(e){} } setInterval(postH, 1000); window.addEventListener('resize', postH); window.addEventListener('load', postH); if (document.fonts && document.fonts.ready) document.fonts.ready.then(postH); ['nextPart', 'prevPart', 'startQuiz', 'backToArticle', 'selectAnswer', 'nextQuestion', 'restartQuiz'].forEach(function(name) { var orig = window[name]; if (orig) { window[name] = function() { var r = orig.apply(this, arguments); [50, 200, 500, 1000].forEach(function(t){ setTimeout(postH, t); }); return r; }; } }); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })(); </script> </body> </html> " style="width: 100% !important; height: 5500px !important; min-height: 5500px !important; max-height: none !important; border: 0 !important; display: block !important; background: transparent !important; margin: 0 !important; padding: 0 !important;" title="Chương 2 — Bát Tự Tử Bình - Hoàng Trung"> </iframe> </div> <script> (function() { var IFRAME_ID = 'lt-c2-frame'; var INITIAL_H = 5500; var currentH = INITIAL_H; var heightsByView = {}; var currentViewId = 'view-article-p0'; function applyH(h) { var f = document.getElementById(IFRAME_ID); if (!f) return; var newH = h + 50; if (newH < 200) return; if (newH === currentH) return; currentH = newH; f.style.setProperty('height', newH + 'px', 'important'); f.style.setProperty('min-height', newH + 'px', 'important'); f.style.setProperty('max-height', 'none', 'important'); f.setAttribute('height', newH); var parent = f.parentElement; while (parent && parent !== document.body) { var cs = window.getComputedStyle(parent); if (cs.maxHeight !== 'none' && cs.maxHeight !== '' && parseInt(cs.maxHeight) < newH) parent.style.setProperty('max-height', 'none', 'important'); if (cs.overflow === 'hidden') parent.style.setProperty('overflow', 'visible', 'important'); parent = parent.parentElement; } } function setH(h, viewId) { if (!h || h < 100) return; if (viewId) { if (!heightsByView[viewId] || h > heightsByView[viewId]) heightsByView[viewId] = h; currentViewId = viewId; } var targetH = heightsByView[currentViewId] || h; applyH(targetH); } window.addEventListener('message', function(e) { if (e && e.data && typeof e.data.ltC2Height === 'number') setH(e.data.ltC2Height, e.data.viewId); }); function pollHeight() { var f = document.getElementById(IFRAME_ID); if (!f || !f.contentWindow) return; try { var doc = f.contentWindow.document; if (doc) { var app = doc.querySelector('.app'); var activeView = doc.querySelector('.view.active'); var viewId = activeView ? activeView.id : ''; var h; if (app) { var rect = app.getBoundingClientRect(); var appTop = rect.top + (f.contentWindow.pageYOffset || doc.documentElement.scrollTop); h = Math.ceil(appTop + app.scrollHeight + 40); } else if (doc.body) { h = Math.max(doc.body.scrollHeight, doc.body.offsetHeight, doc.documentElement.scrollHeight, doc.documentElement.offsetHeight); } if (h) setH(h, viewId); } } catch(e) {} } function breakParents() { var f = document.getElementById(IFRAME_ID); if (!f) return; var parent = f.parentElement; while (parent && parent !== document.body) { var cs = window.getComputedStyle(parent); if (cs.maxHeight !== 'none' && cs.maxHeight !== '' && parseInt(cs.maxHeight) < INITIAL_H) parent.style.setProperty('max-height', 'none', 'important'); if (cs.overflow === 'hidden') parent.style.setProperty('overflow', 'visible', 'important'); parent = parent.parentElement; } } breakParents(); [100, 500, 1000, 2000, 4000, 7000, 11000].forEach(function(t) { setTimeout(function() { breakParents(); pollHeight(); }, t); }); setInterval(pollHeight, 800); window.addEventListener('resize', pollHeight); window.addEventListener('load', pollHeight); })(); </script> <!-- End of CHƯƠNG 2 -->