<!-- ======================================================== --> <!-- LỊCH SỬ BÁT TỰ TỬ BÌNH — 6 phần + 10 câu trắc nghiệm --> <!-- WordPress safe iframe (JNews compatible) + scroll-to-iframe --> <!-- Paste into Custom HTML block in Gutenberg --> <!-- ======================================================== --> <style> .lt-wrap-lt-ls-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-ls-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-ls-frame"> <iframe id="lt-ls-frame" height="7200" 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>Lịch Sử Bát Tự Tử Bình — Từ Thiên Mệnh đến Thực Chứng</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; } } /* CHI TABLE */ .chi-table { margin: 16px 0; display: flex; flex-direction: column; gap: 4px; background: rgba(15,11,22,0.5); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; padding: 8px; } .chi-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; padding: 9px 12px; border-radius: 3px; align-items: center; background: rgba(28,21,40,0.5); border-left: 3px solid; } .chi-row.chi-header { background: linear-gradient(145deg, rgba(212,175,55,0.12), rgba(212,175,55,0.04)); border-left-color: var(--gold); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); } .chi-row.chi-thuy { border-left-color: #86bfe0; } .chi-row.chi-moc { border-left-color: #7ed39e; } .chi-row.chi-hoa { border-left-color: #ef6a6a; } .chi-row.chi-tho { border-left-color: #e0b256; } .chi-row.chi-kim { border-left-color: #d8d8e0; } .chi-row .chi-name { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-style: italic; font-size: 17px; color: var(--gold-bright); } .chi-row.chi-header .chi-name { color: var(--gold); font-size: 12px; } .chi-row .chi-hanh { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 14.5px; color: var(--ink); } .chi-row.chi-thuy .chi-hanh { color: #86bfe0; } .chi-row.chi-moc .chi-hanh { color: #7ed39e; } .chi-row.chi-hoa .chi-hanh { color: #ef6a6a; } .chi-row.chi-tho .chi-hanh { color: #e0b256; } .chi-row.chi-kim .chi-hanh { color: #d8d8e0; } .chi-row.chi-header .chi-hanh { color: var(--gold); font-size: 12px; } .chi-row .chi-am { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13.5px; color: var(--ink-soft); text-align: right; } .chi-row.chi-header .chi-am { color: var(--gold); font-size: 12px; text-align: right; } @media (max-width: 400px) { .chi-row { padding: 8px 10px; gap: 4px; } .chi-row .chi-name { font-size: 15px; } .chi-row .chi-hanh { font-size: 13.5px; } .chi-row .chi-am { font-size: 12.5px; } } /* PAIR GRID — for xung & hợp */ .pair-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; } .pair-row { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 12px; background: rgba(28,21,40,0.6); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 15px; } .pair-row.hop { border-color: rgba(126,211,158,0.35); background: rgba(126,211,158,0.06); } .pair-row .pair-a, .pair-row .pair-b { color: var(--gold-bright); min-width: 30px; text-align: center; } .pair-row.hop .pair-a, .pair-row.hop .pair-b { color: #aae5bf; } .pair-row .pair-arrow { color: var(--crimson); font-size: 14px; font-style: normal; } .pair-row.hop .pair-arrow { color: var(--green); } /* HINH CARD */ .hinh-card { margin: 10px 0; padding: 12px 14px; background: linear-gradient(155deg, rgba(28,21,40,0.7), rgba(21,16,31,0.5)); border: 1px solid rgba(212,175,55,0.2); border-left: 3px solid var(--gold); border-radius: 4px; } .hinh-card .hinh-label { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; } .hinh-card .hinh-desc { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 13.5px; color: var(--ink-soft); margin-bottom: 6px; } .hinh-card .hinh-content { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 15px; color: var(--gold-bright); } /* QUAD GRID — for tứ hành xung */ .quad-grid { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 16px; } .quad-row { padding: 10px 14px; background: rgba(158,27,63,0.08); border: 1px dashed rgba(158,27,63,0.4); border-radius: 3px; text-align: center; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 15px; color: var(--ink); letter-spacing: 1px; } .quad-row strong { color: var(--warn); font-weight: 700; font-style: normal; font-family: 'Be Vietnam Pro', sans-serif; font-size: 14.5px; } /* WARN BOX */ .warn-box { margin: 16px 0; padding: 14px 16px; background: linear-gradient(155deg, rgba(158,27,63,0.18), rgba(92,10,26,0.08)); border: 1px solid rgba(158,27,63,0.5); border-left: 3px solid var(--crimson); border-radius: 4px; } .warn-box .warn-label { display: block; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--warn); margin-bottom: 6px; } .warn-box p { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 14.5px; line-height: 1.55; color: var(--ink); margin: 0; } .warn-box p strong { color: var(--warn); font-style: normal; font-family: 'Be Vietnam Pro', sans-serif; font-weight: 700; } @media (max-width: 400px) { .pair-grid { grid-template-columns: 1fr; } .pair-row { font-size: 14.5px; } } /* AD GRID — âm dương table */ .ad-grid { display: flex; flex-direction: column; gap: 8px; margin: 14px 0; } .ad-row { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 12px 14px; border-radius: 4px; border: 1px solid; align-items: center; } .ad-row.duong { background: rgba(245,208,97,0.08); border-color: rgba(245,208,97,0.4); } .ad-row.am { background: rgba(134,191,224,0.08); border-color: rgba(134,191,224,0.4); } .ad-row .ad-lbl { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 14px; letter-spacing: 2px; text-transform: uppercase; text-align: center; padding: 4px 0; border-radius: 3px; } .ad-row.duong .ad-lbl { color: var(--gold-bright); background: rgba(245,208,97,0.15); border: 1px solid rgba(245,208,97,0.4); } .ad-row.am .ad-lbl { color: #b8d8f0; background: rgba(134,191,224,0.12); border: 1px solid rgba(134,191,224,0.4); } .ad-row .ad-items { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 16px; color: var(--ink); letter-spacing: 1px; } .ad-row.duong .ad-items { color: var(--ink); } .ad-row.am .ad-items { color: var(--ink-soft); } /* DYAD GRID — giữ nguyên vs thay đổi */ .dyad-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0; } .dyad-cell { padding: 14px 14px; border-radius: 4px; border: 1px solid; } .dyad-cell.tinh { background: rgba(134,191,224,0.06); border-color: rgba(134,191,224,0.4); } .dyad-cell.dong { background: rgba(245,208,97,0.06); border-color: rgba(245,208,97,0.4); } .dyad-cell .dyad-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; } .dyad-cell.tinh .dyad-lbl { color: #b8d8f0; } .dyad-cell.dong .dyad-lbl { color: var(--gold-bright); } .dyad-cell .dyad-text { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 14px; line-height: 1.55; color: var(--ink-soft); } .dyad-cell .dyad-text strong { color: var(--ink); font-style: normal; font-family: 'Be Vietnam Pro', sans-serif; font-weight: 700; font-size: 13.5px; } .dyad-cell.tinh .dyad-text strong { color: #b8d8f0; } .dyad-cell.dong .dyad-text strong { color: var(--gold-bright); } @media (max-width: 400px) { .ad-row { grid-template-columns: 70px 1fr; gap: 10px; padding: 10px 12px; } .ad-row .ad-items { font-size: 14.5px; } .dyad-grid { grid-template-columns: 1fr; } } /* HOUR TABLE - 12 giờ × 10 ngày, ghép cặp can hợp */ .hour-table-wrap { margin: 14px -8px 16px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0 8px; } .hour-table { display: inline-flex; flex-direction: column; gap: 2px; min-width: 100%; background: rgba(15,11,22,0.5); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; padding: 6px; } .hr-header, .hr-row { display: flex; align-items: stretch; gap: 2px; } .hr-corner, .hr-chi { flex: 0 0 42px; display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 13px; border-radius: 2px; padding: 4px 0; } .hr-corner { background: linear-gradient(145deg, rgba(212,175,55,0.18), rgba(212,175,55,0.06)); color: var(--gold); letter-spacing: 1.5px; text-transform: uppercase; font-size: 10px; } .hr-chi { background: rgba(28,21,40,0.7); color: var(--gold-bright); font-size: 13px; } .hr-pair { flex: 1 1 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border-radius: 2px; overflow: hidden; min-width: 0; } .hr-pair.p1 { background: rgba(126,211,158,0.22); } .hr-pair.p2 { background: rgba(245,208,97,0.22); } .hr-pair.p3 { background: rgba(239,106,106,0.22); } .hr-pair.p4 { background: rgba(134,191,224,0.22); } .hr-pair.p5 { background: rgba(216,184,224,0.22); } .hr-d, .hr-c { display: flex; align-items: center; justify-content: center; padding: 4px 2px; font-family: 'Cormorant Garamond', serif; font-style: italic; text-align: center; font-size: 11.5px; line-height: 1.1; background: rgba(11,8,18,0.6); min-width: 0; } .hr-d { font-weight: 700; font-size: 11px; letter-spacing: 0.5px; text-transform: uppercase; } .hr-pair.p1 .hr-d { color: #aae5bf; background: rgba(126,211,158,0.12); } .hr-pair.p2 .hr-d { color: var(--gold-bright); background: rgba(245,208,97,0.12); } .hr-pair.p3 .hr-d { color: #f4a0a0; background: rgba(239,106,106,0.12); } .hr-pair.p4 .hr-d { color: #b8d8f0; background: rgba(134,191,224,0.12); } .hr-pair.p5 .hr-d { color: #d8b8e0; background: rgba(216,184,224,0.12); } .hr-c { color: var(--ink); font-weight: 600; } .hr-pair.p1 .hr-c { color: #c8eed5; } .hr-pair.p2 .hr-c { color: #f5d894; } .hr-pair.p3 .hr-c { color: #f5b8b8; } .hr-pair.p4 .hr-c { color: #c8dff0; } .hr-pair.p5 .hr-c { color: #e0c8e8; } @media (max-width: 480px) { .hr-corner, .hr-chi { flex: 0 0 36px; font-size: 12px; } .hr-d { font-size: 9.5px; padding: 3px 1px; } .hr-c { font-size: 10px; padding: 3px 1px; } } /* CAN TABLE — bảng 10 thiên can */ .can-table { margin: 16px 0; display: flex; flex-direction: column; gap: 4px; background: rgba(15,11,22,0.5); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; padding: 8px; } .can-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; padding: 9px 12px; border-radius: 3px; align-items: center; background: rgba(28,21,40,0.5); border-left: 3px solid; } .can-row.can-header { background: linear-gradient(145deg, rgba(212,175,55,0.12), rgba(212,175,55,0.04)); border-left-color: var(--gold); font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); } .can-row.can-moc { border-left-color: #7ed39e; } .can-row.can-hoa { border-left-color: #ef6a6a; } .can-row.can-tho { border-left-color: #e0b256; } .can-row.can-kim { border-left-color: #d8d8e0; } .can-row.can-thuy { border-left-color: #86bfe0; } .can-row .can-hanh { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 14.5px; color: var(--ink); } .can-row.can-moc .can-hanh { color: #7ed39e; } .can-row.can-hoa .can-hanh { color: #ef6a6a; } .can-row.can-tho .can-hanh { color: #e0b256; } .can-row.can-kim .can-hanh { color: #d8d8e0; } .can-row.can-thuy .can-hanh { color: #86bfe0; } .can-row.can-header .can-hanh { color: var(--gold); font-size: 12px; } .can-row .can-duong, .can-row .can-am { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-style: italic; font-size: 16px; text-align: center; } .can-row .can-duong { color: var(--gold-bright); } .can-row .can-am { color: #b8d8f0; } .can-row.can-header .can-duong, .can-row.can-header .can-am { color: var(--gold); font-size: 12px; } @media (max-width: 400px) { .can-row { padding: 8px 10px; gap: 4px; } .can-row .can-hanh { font-size: 13.5px; } .can-row .can-duong, .can-row .can-am { font-size: 15px; } } /* STEP GRID — minh họa cách 5 bước */ .step-grid { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 16px; } .step-row { display: grid; grid-template-columns: 1fr auto 1fr auto; gap: 10px; align-items: center; padding: 9px 14px; background: rgba(126,211,158,0.06); border: 1px solid rgba(126,211,158,0.25); border-radius: 3px; } .step-row .step-a, .step-row .step-b { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 15px; color: var(--gold-bright); } .step-row .step-a { text-align: right; } .step-row .step-a small, .step-row .step-b small { color: var(--ink-dim); font-size: 11px; font-weight: 400; margin-left: 2px; } .step-row .step-arrow { color: var(--green); font-size: 14px; font-style: normal; } .step-row .step-tag { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--green); padding: 2px 8px; background: rgba(126,211,158,0.1); border: 1px solid rgba(126,211,158,0.3); border-radius: 2px; white-space: nowrap; } @media (max-width: 400px) { .step-row { grid-template-columns: 1fr auto 1fr; gap: 6px; padding: 8px 10px; } .step-row .step-tag { display: none; } .step-row .step-a, .step-row .step-b { font-size: 14px; } } /* LINEAGE GRID — truyền thừa qua các thế hệ */ .lineage-grid { display: flex; flex-direction: column; gap: 6px; margin: 14px 0; align-items: center; } .lineage-row { display: flex; align-items: center; gap: 12px; padding: 10px 18px; background: rgba(28,21,40,0.7); border: 1px solid rgba(212,175,55,0.3); border-radius: 4px; min-width: 200px; } .lineage-num { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(145deg, var(--crimson), var(--deep-red)); border: 1px solid var(--gold); color: var(--gold-bright); display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 12px; } .lineage-name { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-style: italic; font-size: 15px; color: var(--gold-bright); } .lineage-arrow { color: var(--gold); font-size: 14px; opacity: 0.7; } /* HIERARCHY BOX — chủ đạo, phụ trợ, thứ yếu */ .hierarchy-box { margin: 14px 0; display: flex; flex-direction: column; gap: 4px; padding: 10px; background: rgba(15,11,22,0.5); border: 1px solid rgba(212,175,55,0.25); border-radius: 4px; } .hier-row { display: grid; grid-template-columns: 100px 1fr; gap: 12px; padding: 9px 12px; border-radius: 3px; align-items: center; } .hier-row.main { background: rgba(245,208,97,0.12); border-left: 3px solid var(--gold-bright); } .hier-row.aux { background: rgba(212,175,55,0.06); border-left: 3px solid rgba(212,175,55,0.5); } .hier-row.minor { background: rgba(28,21,40,0.6); border-left: 3px solid rgba(212,175,55,0.25); } .hier-row .hier-tag { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 10.5px; letter-spacing: 2px; text-transform: uppercase; } .hier-row.main .hier-tag { color: var(--gold-bright); } .hier-row.aux .hier-tag { color: var(--gold); } .hier-row.minor .hier-tag { color: var(--ink-dim); } .hier-row .hier-name { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 15.5px; color: var(--ink); } .hier-row.main .hier-name { color: var(--gold-bright); } .hier-row.minor .hier-name { color: var(--ink-soft); } /* FIGURE CARD — chân dung nhân vật */ .figure-card { margin: 14px 0; padding: 16px 18px; background: linear-gradient(155deg, rgba(28,21,40,0.85), rgba(21,16,31,0.6)); border: 1px solid rgba(212,175,55,0.25); border-left: 3px solid var(--gold); border-radius: 4px; } .figure-card .figure-name { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-style: italic; font-size: 18px; color: var(--gold-bright); margin-bottom: 8px; } .figure-card .figure-year { font-size: 13px; font-weight: 400; color: var(--ink-dim); margin-left: 4px; } .figure-card .figure-body { font-family: 'Be Vietnam Pro', sans-serif; font-size: 14.5px; line-height: 1.7; color: var(--ink-soft); margin: 0; } .figure-card .figure-body strong { color: var(--ink); font-weight: 600; } .figure-card .figure-body em { color: var(--gold-bright); font-style: italic; } /* FINDING CARD — kết luận nghiên cứu */ .finding-card { margin: 14px 0; padding: 16px 18px 16px 70px; position: relative; background: linear-gradient(155deg, rgba(126,211,158,0.08), rgba(74,133,116,0.04)); border: 1px solid rgba(126,211,158,0.3); border-radius: 4px; } .finding-card .finding-num { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(145deg, rgba(126,211,158,0.2), rgba(74,133,116,0.1)); border: 1px solid var(--green); color: #aae5bf; display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 700; font-size: 14px; letter-spacing: 1px; } .finding-card .finding-body { font-family: 'Be Vietnam Pro', sans-serif; font-size: 14.5px; line-height: 1.7; color: var(--ink-soft); margin: 0; } .finding-card .finding-body strong { color: var(--ink); font-weight: 600; } .finding-card .finding-body em { color: #c8eed5; font-style: italic; } @media (max-width: 400px) { .hier-row { grid-template-columns: 80px 1fr; gap: 8px; padding: 7px 10px; } .hier-row .hier-tag { font-size: 9.5px; } .hier-row .hier-name { font-size: 14.5px; } .figure-card { padding: 14px 16px; } .figure-card .figure-name { font-size: 16.5px; } .finding-card { padding: 14px 14px 14px 60px; } .finding-card .finding-num { width: 38px; height: 38px; font-size: 12.5px; left: 11px; } } </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">Bát Tự · Lịch sử</span> <div class="hero-chinese">子平史話</div> <h1>Lịch Sử Bát Tự Tử Bình<br><em>Từ thiên mệnh đến thực chứng</em></h1> <div class="hero-rule"></div> <p class="hero-intro"> Muốn hiểu Tử Bình, trước tiên phải biết <em>nó từ đâu mà ra</em>. Không phải để hoài cổ — mà vì không có bản đồ thì người ta dễ <em>đứng ở một góc nhỏ, tưởng mình đang đứng giữa trung tâm</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"> Một nghìn năm — từ <em>Lạc Lộc Tử</em>, <em>Lý Hư Trung</em>, qua <em>Từ Tử Bình</em>, đến <em>Nhiệm Thiết Tiều</em>, <em>Vi Thiên Lý</em>, <em>Lục Trí Cực</em>.<br><br> Tử Bình không phải một <em>khối đông cứng</em> — nó là <em>dòng chảy</em> liên tục được thử thách, làm mới, và <em>cần được gạn đục khơi trong</em>. </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: 'Sơ khai —<br><em>Những viên gạch đầu tiên</em>', subtitle: 'Trước Tử Bình · Thế giới của thiên mệnh và thần bí', body: ` <p>Trước khi <em>Tử Bình thuật</em> xuất hiện, tư duy luận mệnh Trung Hoa được xây trên hai hệ thống độc lập. Cả hai cùng chia sẻ một thế giới quan: <em>con người tiếp nhận tín hiệu từ vũ trụ thông qua các biểu tượng và vì sao</em>.</p> <p>Hai trụ cột của thời kỳ này là <strong>Môn Ngũ Hành</strong>- <strong>Mệnh Năm</strong>, và <strong>Thất Chính Tứ Dư</strong>.</p> <h3 class="inline-sub">⟢ Lạc Lộc Tử — tổ sư đặt nền móng ⟢</h3> <p>Người đặt nền móng đầu tiên là <em>Lạc Lộc Tử</em> — một ẩn sĩ sống <strong>trước đời Đường</strong>, được tôn làm tổ sư của <em>Lộc Mệnh học phái</em>. Tác phẩm <em>Lạc Lộc Tử Tam Mệnh Tiêu Tức Phú</em> xây dựng khung lý thuyết "Tam Mệnh": <strong>Thiên Can là Lộc, Địa Chi là Mệnh, Nạp Âm Ngũ Hành là Thân</strong>.</p> <div class="kp"> Lần đầu tiên, các quy luật <em>Âm Dương Ngũ Hành</em> được chuyển hóa thành công cụ luận giải số phận — thay vì <strong>phó mặc hoàn toàn vào thần bí</strong>. </div> <h3 class="inline-sub">⟢ Lý Hư Trung — chính thức hệ thống hóa ⟢</h3> <p>Rồi đến <strong>đời Đường</strong>, <em>Lý Hư Trung (761–813)</em> chính thức hệ thống hóa thuật luận mệnh. Văn hào <em>Hàn Dũ</em> từng ca ngợi ông <em>"trăm lần không sai một hai"</em>.</p> <p>Trong tay Lý Hư Trung, mô hình <strong>ba trụ Năm – Tháng – Ngày</strong> được kiện toàn, bổ sung thêm <em>đại vận</em>, <em>tiểu vận</em>, và trụ <em>Thai Nguyên</em> đại diện cho giai đoạn thụ thai. Cốt lõi phép của ông là <strong>lấy trụ Năm làm gốc</strong> và dùng <em>Nạp Âm Ngũ Hành</em> làm công cụ phân tích chính yếu.</p> <h3 class="inline-sub">⟢ Thần Sát và Thất Chính Tứ Dư ⟢</h3> <p>Song song với Nạp Âm, <strong>Thần Sát</strong> giữ vai trò như những vì sao chiếu mệnh, mang bản chất <em>cát hung tiên thiên</em>. Còn <strong>Thất Chính Tứ Dư</strong> — chiêm tinh học cổ đại dựa trên <em>bảy hành tinh thực và bốn sao hư tưởng</em> — là một dòng chảy <strong>hoàn toàn độc lập</strong>.</p> <p>Nạp Âm và Thất Chính Tứ Dư <em>không phải hai bộ phận của cùng một mô hình</em>. Nhưng cả hai cùng tồn tại như những cách thức khác nhau để đọc số phận từ bầu trời.</p> <div class="kp"> Đây là <em>thế giới trước Tử Bình</em>. Một thế giới của <strong>thiên mệnh và thần bí</strong>. </div> ` }, { title: 'Nhà Tống —<br><em>Cuộc cách mạng tư duy</em>', subtitle: 'Từ Tử Bình & Uyên Hải Tử Bình · Bước ngoặt lớn nhất', body: ` <p>Bước ngoặt lớn nhất trong lịch sử mệnh lý học diễn ra vào khoảng <strong>cuối Ngũ Đại, đầu Tống</strong>.</p> <h3 class="inline-sub">⟢ Từ Tử Bình — chuyển trung tâm về Nhật Chủ ⟢</h3> <p><em>Từ Tử Bình</em> đã không đơn thuần thêm trụ Giờ vào mô hình cũ. Ông thực hiện một cuộc cách mạng về tư duy: <strong>chuyển trung tâm luận mệnh từ trụ Năm sang trụ Ngày</strong> — tức <em>Nhật Chủ</em>.</p> <div class="kp"> Lần đầu tiên, <strong>con người trở thành chủ thể trung tâm</strong> của phép luận đoán. Không phải một vì sao. Không phải một tổ hợp Nạp Âm xa xôi. Mà chính là <em>người đang được xem lá số</em>. </div> <p>Cùng với đó, Từ Tử Bình thay thế <em>Nạp Âm</em> bằng hệ thống sử dụng <strong>Ngũ Hành cải tiến từ phép bói dịch</strong>, sáng tạo ra hệ thống <strong>Thập Thần</strong> — <em>Chính Quan, Thực Thần, Chính Ấn…</em> và các Thần còn lại — dựa trên mối quan hệ sinh khắc giữa Nhật Chủ và các Can Chi trong tứ trụ.</p> <p><em>Thần Sát</em> bị đẩy xuống vị trí <strong>thứ yếu</strong>, không còn quyền xác nhận hay phủ quyết đối với kết luận của lá số bát tự.</p> <div class="kp"> Đây là bước dịch chuyển từ <em>thiên mệnh</em> sang <em>nhân bản</em>. Từ <em>chiêm tinh thần bí</em> sang <em>phân tích logic các mối quan hệ xã hội</em>. </div> <h3 class="inline-sub">⟢ Truyền thừa qua bốn thế hệ ⟢</h3> <p>Từ Tử Bình <strong>không trực tiếp viết sách</strong>. Học thuyết được truyền bí mật qua bốn thế hệ:</p> <div class="lineage-grid"> <div class="lineage-row"> <span class="lineage-num">1</span> <span class="lineage-name">Từ Tử Bình</span> </div> <div class="lineage-arrow">↓</div> <div class="lineage-row"> <span class="lineage-num">2</span> <span class="lineage-name">Xung Hư Tử</span> </div> <div class="lineage-arrow">↓</div> <div class="lineage-row"> <span class="lineage-num">3</span> <span class="lineage-name">Tăng Đạo Hồng</span> </div> <div class="lineage-arrow">↓</div> <div class="lineage-row"> <span class="lineage-num">4</span> <span class="lineage-name">Từ Đại Thăng</span> </div> </div> <p>Mãi đến <strong>cuối Nam Tống</strong>, <em>Từ Đại Thăng</em> mới là người công khai hóa toàn bộ lý thuyết thành hai bộ <em>Uyên Hải</em> và <em>Uyên Nguyên</em>, về sau hợp nhất thành <strong>Uyên Hải Tử Bình</strong>.</p> <h3 class="inline-sub">⟢ Xương sống của Uyên Hải Tử Bình ⟢</h3> <p>Trật tự luận mệnh được xác lập rõ ràng trong bộ kinh điển này. Cốt lõi tuyệt đối là <strong>Nguyệt Lệnh Cách Cục</strong> — <em>"muốn biết sang hèn, trước hết xem lệnh tháng"</em>.</p> <p><em>Thần Sát</em> và <em>Nạp Âm</em> cổ vẫn được bảo lưu như yếu tố tham khảo, nhưng đã bị hạ xuống mức phụ trợ mô tả. <em>Vượng Suy Nhật Chủ</em> chỉ được xét đến như một <strong>yếu tố phụ trợ không thiết yếu</strong>, chỉ để đánh giá khả năng đón nhận Tài Quan — chứ <em>chưa bao giờ là phương pháp luận độc lập</em>.</p> <div class="hierarchy-box"> <div class="hier-row main"><span class="hier-tag">Chủ đạo</span><span class="hier-name">Nguyệt Lệnh Cách Cục</span></div> <div class="hier-row aux"><span class="hier-tag">Phụ trợ</span><span class="hier-name">Thần Sát</span></div> <div class="hier-row minor"><span class="hier-tag">Thứ yếu</span><span class="hier-name">Vượng Suy</span></div> </div> <p>Đó là <em>xương sống của Uyên Hải Tử Bình</em>.</p> ` }, { title: 'Nhà Minh —<br><em>Tổng hợp & tinh lọc</em>', subtitle: 'Ba tác phẩm lớn · Chín muồi và những cây cầu tư tưởng', body: ` <p>Thời Minh, Tử Bình thuật bước vào giai đoạn <strong>chín muồi</strong> với <em>ba tác phẩm lớn</em> — mỗi tác phẩm đảm nhận một nhiệm vụ riêng trong tiến trình phát triển.</p> <h3 class="inline-sub">⟢ Tam Mệnh Thông Hội — bộ bách khoa ⟢</h3> <p><em>Tam Mệnh Thông Hội</em> của <strong>Tiến sĩ Vạn Dân Anh</strong> là bộ bách khoa <em>đồ sộ nhất</em> của Tử Bình thuật, tập hợp tinh hoa <strong>hơn hai trăm năm phát triển</strong>.</p> <p>Sách vừa <em>củng cố hệ thống Cách Cục chính thống</em>, vừa giải thích cặn kẽ những điểm mà Uyên Hải còn sơ lược.</p> <h3 class="inline-sub">⟢ Thần Phong Thông Khảo — tinh lọc thực chứng ⟢</h3> <p><em>Thần Phong Thông Khảo</em> của <strong>Trương Nam tự Thần Phong</strong>, đây là tác phẩm tuyệt vời đại diện cho <em>xu hướng tinh lọc thực chứng</em>.</p> <p>Trương Nam là <em>thầy thuốc</em>, nghiên cứu Tử Bình hơn <strong>bốn mươi năm</strong>, viết sách lúc ngoài bảy mươi tuổi. Ông <strong>thẳng thắn phê phán việc lạm dụng Thần Sát hoang đường</strong>. Ông đề xuất thuyết <em>"Bệnh – Dược"</em> — lấy <strong>cân bằng Ngũ Hành</strong> làm nguyên tắc chẩn đoán và kê đơn cho mệnh cục.</p> <div class="kp"> Điểm quý nhất của sách là <strong>ghi chép nhiều ví dụ thực tế</strong>, bổ sung mảng khuyết về dữ liệu cho hậu thế. </div> <h3 class="inline-sub">⟢ Tích Thiên Tủy — cây cầu tư tưởng ⟢</h3> <p><em>Nguyên bản Tích Thiên Tủy</em> là trường hợp <strong>đặc biệt nhất</strong>. Tương truyền có từ <em>cuối Tống đầu Minh</em>, đây là một tác phẩm <strong>triết học uyên thâm</strong>, bàn về <em>Hình, Tượng, Cách, Cục</em> — một hệ thống phân tích đa tầng.</p> <p>Thời Minh, sách <em>chưa thực sự bùng nổ</em>. Nhưng nó đóng vai trò như một <strong>cây cầu tư tưởng</strong>, đặt nền móng cho sự phân lưu mạnh mẽ ở giai đoạn tiếp theo.</p> <div class="warn-box"> <span class="warn-label">⚠ Cần phân biệt</span> <p>Đến thời nhà Thanh thì <em>Nhậm Thiết Tiều</em> và <em>Từ Lạc Ngô</em> <strong>gượng ép biến nó thành nền tảng của vượng suy pháp</strong>, cho dù <em>nguyên tác ban đầu không phải như vậy</em>.</p> </div> <p>Tư tưởng chủ đạo từ <strong>Tống đến Minh</strong> vẫn nhất quán:</p> <div class="hierarchy-box"> <div class="hier-row main"><span class="hier-tag">Trục chính</span><span class="hier-name">Nguyệt Lệnh Cách Cục</span></div> <div class="hier-row aux"><span class="hier-tag">Phụ trợ</span><span class="hier-name">Hình, Tượng</span></div> <div class="hier-row minor"><span class="hier-tag">Điểm tả</span><span class="hier-name">Thần Sát</span></div> <div class="hier-row minor"><span class="hier-tag">Thứ yếu</span><span class="hier-name">Vượng Suy</span></div> </div> ` }, { title: 'Nhà Thanh —<br><em>Phân hóa ba trường phái</em>', subtitle: 'Cách Cục · Vượng Suy · Điều Hậu — tam túc đỉnh lập', body: ` <p>Từ thời Thanh, Tử Bình thuật chứng kiến <strong>sự phân hóa rõ rệt</strong>. <em>Ba trường phái</em> ra đời, mỗi phái soi chiếu lá số từ một <em>góc độ chuyên biệt</em>.</p> <h3 class="inline-sub">⟢ Phái Cách Cục — Tử Bình Chân Thuyên ⟢</h3> <p><em>Phái Cách Cục</em> đạt đỉnh cao với <strong>Tử Bình Chân Thuyên</strong> của <em>Tiến sĩ Thẩm Hiếu Chiêm</em>. Kế thừa trung thành mạch chính từ Uyên Hải, ông <strong>khẳng định lại nguyên tắc</strong> <em>"dụng thần chuyên tìm ở lệnh tháng"</em> và hệ thống hóa một cách logic chưa từng có về <em>sự thành bại, cứu ứng của các cách cục</em>.</p> <div class="kp"> Đây là bộ sách <strong>thuần túy nhất về Cách Cục pháp</strong> — không pha tạp Thần Sát, không pha tạp Điều Hậu. </div> <h3 class="inline-sub">⟢ Phái Vượng Suy — Tích Thiên Tủy Xiển Vi ⟢</h3> <p><em>Phái Vượng Suy</em> định hình nhờ <strong>Tích Thiên Tủy Xiển Vi</strong> của <em>Nhiệm Thiết Tiều</em>, hoàn thành năm <strong>1848</strong>.</p> <div class="warn-box"> <span class="warn-label">⚠ Điểm cần lưu ý</span> <p><em>Nguyên bản Tích Thiên Tủy</em> là một hệ thống <strong>triết học rộng lớn về Hình Tượng, Đảng Thế, Cách Cục</strong>. Nhưng trong quá trình chú giải, Nhiệm Thiết Tiều đặt trọng tâm vào <em>"phù ức"</em> — nâng đỡ hay chế ngự để đưa mệnh cục về thế cân bằng.</p> </div> <p>Chính từ đây, <strong>Vượng Suy phái mới thực sự ra đời</strong>. Giới nghiên cứu hiện đại phân biệt rạch ròi:</p> <div class="compare-pair"> <div class="compare-cell good"> <span class="c-lbl">Nguyên bản</span> <div class="c-text"><em>Tích Thiên Tủy</em> — triết học Hình Tượng, Đảng Thế, Cách Cục, hệ thống đa tầng.</div> </div> <div class="compare-cell bad"> <span class="c-lbl">Bản chú giải</span> <div class="c-text"><em>Nhiệm thị Tích Thiên Tủy</em> — phù ức, vượng suy. Khác bản gốc dù cùng tên.</div> </div> </div> <h3 class="inline-sub">⟢ Phái Điều Hậu — Cùng Thông Bảo Giám ⟢</h3> <p><em>Phái Điều Hậu</em> gắn với một cuốn sách có lịch sử đặc biệt. Nguyên là bản chép tay lưu hành trong dân gian tên <em>Lan Giang Võng</em>, mãi đến thời <strong>Quang Tự</strong> mới được <em>Dư Xuân Đài</em> biên tập và xuất bản thành <strong>Cùng Thông Bảo Giám</strong>.</p> <p>Sách <em>không theo Cách Cục</em>, <em>không theo Vượng Suy</em>, mà lấy sự <strong>lạnh – ấm – ướt – khô của tháng sinh</strong> làm tiêu chí hàng đầu. Một hệ thống điều tiết khí hậu <em>hoàn toàn độc lập</em>.</p> <div class="kp"> Đến cuối thời Thanh, Tử Bình thuật có một bức tranh học thuật <strong>tam túc đỉnh lập</strong>: <em>Cách Cục — Vượng Suy — Điều Hậu</em>. </div> ` }, { title: 'Dân Quốc & Hiện đại —<br><em>Hiện đại hóa & Phục hưng</em>', subtitle: 'Từ Lạc Ngô · Vi Thiên Lý · Manh Phái · Học thuật hóa', body: ` <h3 class="inline-sub">⟢ Dân Quốc — hiện đại hóa ⟢</h3> <p>Thời Dân Quốc, Tử Bình bước từ <em>huyền học</em> sang <strong>học thuật hóa và thực dụng hóa</strong>, tập trung tới các lý thuyết <em>đơn giản, dễ phổ cập, có tính thương mại cao</em>.</p> <p>Ngoài những sách vở dựa trên truyền thống thì có <strong>3 nhân vật</strong> này có những tác phẩm khác biệt:</p> <div class="figure-card"> <div class="figure-name">Từ Lạc Ngô <span class="figure-year">(1886–1949)</span></div> <p class="figure-body">Dành cả đời <em>bình chú kinh điển</em> — <strong>Tử Bình Chân Thuyên, Tích Thiên Tủy, Cùng Thông Bảo Giám, Tam Mệnh Thông Hội</strong>. Ông ghi chép mệnh lệ của nhiều nhân vật đương thời, tạo <em>kho dữ liệu thực chứng</em> quý giá cho hậu thế. Tuy nhiên, hướng nghiên cứu của ông là <em>tổng hợp, trung dung</em>.</p> </div> <div class="figure-card"> <div class="figure-name">Viên Thụ San <span class="figure-year">(1881–1952)</span></div> <p class="figure-body">Một <em>thầy thuốc</em>, với <strong>Mệnh Lý Thám Nguyên</strong> liên kết các kiến thức <em>y học, triết học</em>, hệ thống hóa việc luận đoán <strong>bệnh tật từ Bát Tự</strong>.</p> </div> <div class="figure-card"> <div class="figure-name">Vi Thiên Lý <span class="figure-year">(1911–1988)</span></div> <p class="figure-body">Có công lớn trong việc <em>phổ cập Tử Bình Vượng Suy Pháp</em>. Với <strong>Thiên Lý Mệnh Cảo (1935)</strong>, ông hiện đại hóa cách trình bày, viết bằng ngôn ngữ giản dị, và thiết lập <strong>quy trình từng bước</strong>: <em>xem cường nhược → định cách cục → lấy dụng thần → luận hỉ kỵ → đoán đại vận</em>. Format đó, hậu thế vẫn đang dùng.</p> </div> <h3 class="inline-sub">⟢ Hiện đại — phục hưng ⟢</h3> <p>Sau gián đoạn dài, Tử Bình thuật phục hưng từ <strong>đầu những năm 1990</strong> với <em>Tứ Trụ Dự Trắc Học</em> của <strong>Thiệu Vĩ Hoa</strong>. Sách còn <em>thô sơ, thiên về Vượng Suy pháp</em>. Nhưng công lao của ông là <em>đưa mệnh lý trở lại với đại chúng Trung Quốc</em> sau nhiều thập kỷ vắng bóng.</p> <h3 class="inline-sub">⟢ Manh Phái — kỹ pháp thầy mù ⟢</h3> <p>Đầu những năm <strong>2000</strong>, <em>Đoàn Kiến Nghiệp</em> thu thập và hệ thống hóa <strong>kỹ pháp của các thầy mù dân gian</strong>, hình thành <em>Manh Phái mệnh lý</em>.</p> <p>Manh Phái <em>không bàn vượng suy, không tìm dụng thần, không phụ thuộc cách cục lệnh tháng</em>. Tập trung vào <strong>tố công</strong> — sinh khắc chế hóa cụ thể — và <strong>thủ tượng</strong> — nắm bắt hình tượng, đảng thế. Phong cách <em>thiết khẩu trực đoán</em>, nói thẳng đoán nhanh, nhanh chóng chiếm cảm tình trong thực hành.</p> <h3 class="inline-sub">⟢ Học thuật hóa — Lục Trí Cực ⟢</h3> <p>Cùng lúc, Tử Bình bắt đầu bước vào <strong>giảng đường đại học</strong>. Học giả <em>Lục Trí Cực</em> (Đại học Phục Đán) với <strong>Trung Quốc Mệnh Lý Học Sử Luận (2008)</strong> là dùng phương pháp học thuật hiện đại để nghiên cứu lịch sử mệnh lý.</p> <p>Đến <strong>Hiện Đại Bát Tự Mệnh Lý Học Cương Yếu (2020)</strong>, ông nỗ lực <em>tái cấu trúc Tử Bình bằng ngôn ngữ và logic khoa học</em>, tích hợp <strong>bốn góc nhìn</strong> — <em>Vượng Suy, Điều Hậu, Cách Cục, Hình Tượng, Đảng Thế</em> — thành một hệ thống phân tích đa tầng.</p> ` }, { title: 'Nhìn lại —<br><em>Vượng Suy ≠ Tử Bình truyền thống</em>', subtitle: 'Phản biện & góc nhìn thực chứng — Hoàng Trung', body: ` <h3 class="inline-sub">⟢ Nhìn lại hành trình ⟢</h3> <p>Lịch sử Bát Tự Tử Bình là hành trình liên tục từ <em>thiên mệnh</em> đến <em>nhân bản</em>, từ <em>thần bí</em> đến <em>thực chứng</em>, từ <em>tư duy trực đoán</em> đến <em>tư duy hệ thống nhân mệnh</em> — rồi từ hệ thống luận mệnh lại hình thành <strong>một nhánh kinh doanh vận mệnh</strong>.</p> <p>Khởi nguồn từ <em>Nạp Âm, Thần Sát và Thất Chính Tứ Dư</em>. Qua cuộc cách mạng của <em>Từ Tử Bình</em> với <strong>Nhật Chủ và Thập Thần</strong>. Rồi tổng hợp và tinh lọc qua thời Minh. Rồi phân hóa thành <strong>ba trường phái thời Thanh</strong>. Xuất hiện tình trạng <em>tinh gọn hóa để phổ cập rộng rãi</em> dưới tay các thầy Dân Quốc.</p> <p>Từ một <em>nghệ thuật chiêm bốc</em>, Tử Bình đang dần định vị mình như một <strong>hệ thống tri thức về con người và các mối quan hệ</strong>. Không ngừng được thử thách. Không ngừng được làm mới qua từng thế hệ.</p> <div class="kp"> Tuy nhiên cần <strong>gạn đục khơi trong</strong> để biết đâu là <em>Tử Bình chân chính</em>, đâu là <em>man thư tân biên</em>. Đó là điều người học cần tự hỏi <strong>trước khi bỏ tiền, bỏ thời gian, và bỏ niềm tin</strong> vào bất kỳ hệ thống nào. </div> <h3 class="inline-sub">⟢ Vượng Suy pháp ≠ tiến hóa của Tử Bình ⟢</h3> <p><strong>Tử Bình Vượng Suy pháp không phải là bản tiến hóa thay thế của Tử Bình truyền thống.</strong></p> <p>Về <em>mặt lịch sử</em>: <strong>Tử Bình truyền thống</strong> (còn gọi là <em>phái Cách cục</em>) là <strong>dòng chảy chính thống</strong>, được hình thành từ các kinh điển <em>Uyên Hải Tử Bình, Tam Mệnh Thông Hội, Tử Bình Chân Thuyên</em>. Trường phái này lấy <em>Nguyệt lệnh</em> làm trung tâm để định cách cục — một hệ thống phân tích <em>khách quan, toàn diện</em>.</p> <p>Trong khi đó, <strong>Vượng Suy pháp chỉ thực sự hình thành từ thời Thanh</strong>, với các đại diện như <em>Nhiệm Thiết Tiều</em> chú giải Tích Thiên Tủy và <em>Dư Xuân Đài</em> với Cùng Thông Bảo Giám. Hệ thống này lấy <em>sự mạnh yếu của Nhật Chủ</em> làm trung tâm, áp dụng nguyên tắc <em>"thân vượng thì ức chế, thân suy thì nâng đỡ"</em>.</p> <p>Về <em>bản chất</em>, hai hệ thống này khác biệt căn bản:</p> <div class="compare-pair"> <div class="compare-cell good"> <span class="c-lbl">Tử Bình truyền thống</span> <div class="c-text">Hệ thống <em>đa tầng, toàn diện</em>: Hình tượng, Đảng Thế → Cách cục → Vượng suy → Điều hậu. Vượng suy chỉ là <strong>một trong bốn lớp</strong>.</div> </div> <div class="compare-cell bad"> <span class="c-lbl">Vượng Suy pháp</span> <div class="c-text"><em>Đơn giản hóa cực đoan</em>, quy giản mọi quan hệ phức tạp của Ngũ Hành thành bài toán <strong>nhị nguyên</strong>: "vượng hay suy", "phù hay ức".</div> </div> </div> <p>Trong giới học thuật đương đại, <strong>Tử Bình truyền thống vẫn được bảo tồn và phát triển mạnh mẽ</strong>. Các học giả như <em>Hoàng Đại Lục, Từ Vĩ Cương</em> đã dành nhiều thập kỷ khôi phục và bảo vệ hệ thống <em>Nguyệt lệnh Cách cục</em>. <em>Vương Khánh</em> mang đến hướng tiếp cận <em>linh hoạt hơn</em>. Công trình của <em>Lục Trí Cực</em> xác nhận hệ thống gốc là <strong>cấu trúc đa tầng</strong>, trong đó Vượng Suy chỉ là một phần.</p> <div class="kp"> Có thể hình dung, Vượng Suy pháp và các trường phái đơn giản hóa khác là sản phẩm của <em>"tư duy tuyến tính"</em> giống như những <strong>"thầy bói xem voi"</strong> — lạm dụng một nhánh lý luận của Tử Bình truyền thống rồi nghĩ đó là <em>toàn bộ con voi</em>. Một sự tiến hóa thực sự <strong>không thể dẫn đến một phiên bản đơn giản và phiến diện hơn phiên bản gốc</strong>. </div> <h3 class="inline-sub">⟢ Góc nhìn thực chứng — Hoàng Trung ⟢</h3> <p>Là <em>nhà nghiên cứu độc lập</em>, ảnh hưởng nhiều bởi tinh thần thực chứng trong <strong>Uyên Hải Tử Bình</strong> và <strong>Thần Phong Thông Khảo</strong>. Tôi nghiên cứu Tử Bình truyền thống <em>dựa trên dữ liệu thu thập thực tiễn</em>.</p> <p>Mình cho rằng kết luận phải dựa trên <strong>nền tảng kiến thức đủ lớn và thực hành đủ nhiều</strong>. <em>Đọc ít, suy diễn nhiều là thảm họa</em>, nhưng <em>đọc nhiều suy diễn ít thì không phải trí tuệ</em>.</p> <p>Mình không đồng ý với cách nghiên cứu <em>từ thư phòng đến thư phòng</em> — dùng lý luận để lý luận. Cũng không đồng ý với cách lấy một lá số chỉ luận cho một người rồi kết luận hệ thống đúng hay sai. <strong>Một trường hợp có đúng đi chăng nữa cũng không chứng minh được gì cả.</strong></p> <p>Nên mình chọn một hướng khác — <em>thu thập dữ liệu những người sinh cùng ngày giờ</em>. Anh em sinh đôi. Người cùng làng. Cùng tỉnh. Khác tỉnh. Khác quốc gia. Rồi đối chiếu xem <strong>lá số ứng nghiệm đến đâu, và khác biệt bắt đầu từ đâu</strong>.</p> <p>Từ đó mình rút ra <strong>hai điều</strong>:</p> <div class="finding-card"> <div class="finding-num">Một</div> <p class="finding-body">Những gì <em>ứng nghiệm nhất</em> vẫn là <strong>Hình Tượng, Đảng Thế và Cách Cục</strong> — nền tảng cốt lõi của Tử Bình truyền thống. Không phải Vượng Suy pháp hay các hệ thống phái sinh. Bát tự Tử Bình vẫn phát triển mạnh mẽ <em>cả nghìn năm</em> mà không cần đến các hệ thống phái sinh — còn các hệ thống phái sinh ra đời gần đây chỉ <em>lợi dụng Tử Bình truyền thống để phô trương thanh thế</em>.</p> </div> <div class="finding-card"> <div class="finding-num">Hai</div> <p class="finding-body"><strong>Nguyên cục Bát Tự chỉ mang tính tương đối.</strong> Cùng một lá số, mức độ biểu hiện trong thực tế còn phụ thuộc vào <em>mệnh lý của những người thân xung quanh</em> và <em>môi trường sống</em>. Đó là lý do những người sinh cùng giờ — kể cả anh em song sinh — vẫn có thể có những <em>ngã rẽ cuộc đời rất khác nhau</em>.</p> </div> <div class="kp"> Mình không có kết luận lớn hơn những gì dữ liệu cho thấy. <em>Nghiên cứu vẫn đang tiếp tục.</em> </div> ` } ]; const QUESTIONS = [ { text: '<em>Từ Tử Bình</em> viết sách nào?', options: [ 'Uyên Hải Tử Bình', 'Tử Bình Chân Thuyên', 'Tam Mệnh Thông Hội', 'Từ Tử Bình không trực tiếp viết sách nào' ], correct: 3, explain: '<strong>Từ Tử Bình không trực tiếp viết sách.</strong> Học thuyết được truyền bí mật qua <em>bốn thế hệ</em>: Từ Tử Bình → Xung Hư Tử → Tăng Đạo Hồng → Từ Đại Thăng. Mãi đến cuối Nam Tống, <em>Từ Đại Thăng</em> mới là người công khai hóa toàn bộ lý thuyết thành hai bộ <em>Uyên Hải</em> và <em>Uyên Nguyên</em>, về sau hợp nhất thành <strong>Uyên Hải Tử Bình</strong>.' }, { text: 'Cuộc cách mạng tư duy <em>lớn nhất</em> của Từ Tử Bình so với hệ thống luận mệnh trước đó là gì?', options: [ 'Bổ sung thêm trụ Giờ vào mô hình ba trụ cũ', 'Chuyển trung tâm luận mệnh từ trụ Năm sang trụ Ngày — tức Nhật Chủ', 'Thay thế Ngũ Hành bằng hệ thống Thần Sát', 'Đưa chiêm tinh học vào hệ thống luận mệnh' ], correct: 1, explain: '<strong>Chuyển trung tâm về Nhật Chủ.</strong> Đây là bước dịch chuyển từ <em>thiên mệnh</em> sang <em>nhân bản</em> — lần đầu tiên <strong>con người trở thành chủ thể trung tâm</strong> của phép luận đoán, không phải một vì sao hay tổ hợp Nạp Âm xa xôi.' }, { text: 'Xương sống của <em>Uyên Hải Tử Bình</em> — bộ kinh điển cuối Nam Tống — được xác lập theo thứ tự nào?', options: [ 'Vượng Suy làm chủ đạo, Cách Cục phụ trợ, Thần Sát thứ yếu', 'Thần Sát làm chủ đạo, Nạp Âm phụ trợ, Cách Cục thứ yếu', 'Nguyệt Lệnh Cách Cục làm chủ đạo, Thần Sát phụ trợ, Vượng Suy thứ yếu', 'Điều Hậu làm chủ đạo, Hình Tượng phụ trợ, Thần Sát thứ yếu' ], correct: 2, explain: '<strong>Nguyệt Lệnh Cách Cục làm chủ đạo. Thần Sát phụ trợ. Vượng Suy thứ yếu.</strong> Thứ tự này nhất quán <em>từ Tống đến Minh</em> — Vượng Suy chỉ được xét đến để đánh giá khả năng đón nhận Tài Quan, <em>chưa bao giờ là phương pháp luận độc lập</em>.' }, { text: '<em>Trương Nam</em> — tác giả Thần Phong Thông Khảo thời Minh — đóng góp gì nổi bật cho Tử Bình thuật?', options: [ 'Hệ thống hóa toàn bộ Thần Sát theo từng tháng sinh', 'Sáng tạo ra hệ thống Thập Thần dựa trên sinh khắc', 'Phê phán lạm dụng Thần Sát, đề xuất thuyết Bệnh–Dược và ghi chép nhiều ví dụ thực tế', 'Viết bộ bách khoa đồ sộ nhất tập hợp hơn hai trăm năm phát triển' ], correct: 2, explain: '<strong>Phê phán Thần Sát + thuyết Bệnh–Dược + ghi chép thực tế.</strong> Trương Nam là <em>thầy thuốc</em>, nghiên cứu Tử Bình hơn bốn mươi năm. Ông tiêu biểu cho <em>xu hướng tinh lọc thực chứng</em> — thẳng thắn phê phán Thần Sát hoang đường và để lại <strong>kho dữ liệu thực tế quý giá</strong> cho hậu thế.' }, { text: 'Điều gì xảy ra với <em>Tích Thiên Tủy</em> từ thời Minh sang thời Thanh?', options: [ 'Sách bị thất lạc và không còn ảnh hưởng gì đến hậu thế', 'Nhiệm Thiết Tiều chú giải và đặt trọng tâm vào "phù ức", từ đó Vượng Suy phái mới thực sự ra đời', 'Sách trở thành nền tảng của phái Điều Hậu', 'Sách được dịch và phổ biến rộng rãi sang các nước lân cận' ], correct: 1, explain: '<strong>Nhiệm Thiết Tiều chú giải, biến thành nền tảng Vượng Suy.</strong> Nguyên bản <em>Tích Thiên Tủy</em> là triết học về <em>Hình Tượng, Đảng Thế, Cách Cục</em> — nhưng qua tay Nhiệm Thiết Tiều, nó <strong>bị gượng ép thành nền tảng Vượng Suy pháp</strong>. Giới nghiên cứu phân biệt rõ: <em>Tích Thiên Tủy nguyên bản</em> khác với <em>Nhiệm thị Tích Thiên Tủy</em>.' }, { text: '<em>Ba trường phái</em> Tử Bình hình thành rõ rệt từ thời Thanh là gì?', options: [ 'Nạp Âm — Thần Sát — Thất Chính Tứ Dư', 'Cách Cục — Vượng Suy — Điều Hậu', 'Hình Tượng — Nhật Chủ — Đại Vận', 'Thực Thần — Thương Quan — Chính Ấn' ], correct: 1, explain: '<strong>Cách Cục — Vượng Suy — Điều Hậu.</strong> Cách Cục đại diện bởi <em>Tử Bình Chân Thuyên</em> của Thẩm Hiếu Chiêm. Vượng Suy định hình qua <em>Tích Thiên Tủy Xiển Vi</em> của Nhiệm Thiết Tiều. Điều Hậu gắn với <em>Cùng Thông Bảo Giám</em> — lấy <em>lạnh ấm ướt khô</em> của tháng sinh làm tiêu chí.' }, { text: '<em>Vi Thiên Lý</em> đóng góp gì nổi bật trong thời Dân Quốc?', options: [ 'Liên kết Bát Tự với y học để luận đoán bệnh tật', 'Thu thập kỹ pháp của các thầy mù dân gian thành Manh Phái', 'Phổ cập Vượng Suy pháp bằng ngôn ngữ giản dị và quy trình từng bước rõ ràng', 'Viết bộ bình chú toàn bộ kinh điển Tử Bình' ], correct: 2, explain: '<strong>Phổ cập Vượng Suy pháp.</strong> Vi Thiên Lý hiện đại hóa cách trình bày với <em>Thiên Lý Mệnh Cảo (1935)</em>, thiết lập quy trình: <em>xem cường nhược → định cách cục → lấy dụng thần → luận hỉ kỵ → đoán đại vận</em>. Format đó <em>hậu thế vẫn đang dùng</em>. Đáp án A là Viên Thụ San. Đáp án B là Đoàn Kiến Nghiệp. D là Từ Lạc Ngô.' }, { text: 'Nói <em>Tử Bình truyền thống</em> lấy sự vượng suy của Nhật Chủ làm trọng điểm — đúng hay sai?', options: [ 'Đúng — vượng suy Nhật Chủ là nền tảng cốt lõi xuyên suốt mọi thời kỳ', 'Đúng một phần — vượng suy quan trọng ngang với Cách Cục', 'Sai — Nguyệt Lệnh Cách Cục mới là trọng điểm, vượng suy chỉ là yếu tố phụ trợ thứ yếu', 'Sai — Tử Bình truyền thống không dùng vượng suy trong bất kỳ trường hợp nào' ], correct: 2, explain: '<strong>Sai — Nguyệt Lệnh Cách Cục mới là trọng điểm.</strong> Trong <em>Uyên Hải Tử Bình</em> và suốt từ Tống đến Minh, Cách Cục làm chủ đạo — vượng suy chỉ được xét như <em>yếu tố phụ trợ</em> để đánh giá khả năng đón nhận Tài Quan. <strong>Lấy vượng suy làm trọng điểm là đặc trưng của Vượng Suy pháp</strong> — một trường phái ra đời từ thời Thanh, không phải Tử Bình truyền thống.' }, { text: '<em>Vượng Suy pháp</em> khác Tử Bình truyền thống ở điểm căn bản nào?', options: [ 'Vượng Suy pháp ra đời trước Tử Bình truyền thống', 'Tử Bình truyền thống là hệ thống đa tầng, Vượng Suy pháp đơn giản hóa toàn bộ thành bài toán nhị nguyên "vượng hay suy"', 'Tử Bình truyền thống chỉ dùng được ở Trung Quốc, Vượng Suy pháp phổ quát hơn', 'Vượng Suy pháp chính xác hơn vì được kiểm chứng khoa học' ], correct: 1, explain: '<strong>Tử Bình truyền thống là hệ thống đa tầng.</strong> <em>Hình tượng → Cách cục → Vượng suy → Điều hậu</em>. Vượng Suy pháp <em>quy giản tất cả</em> thành "phù hay ức" — một <strong>sự đơn giản hóa cực đoan</strong>, không phải tiến hóa. Hình dung như <em>"thầy bói xem voi"</em> — lạm dụng một nhánh nhỏ rồi nghĩ đó là toàn bộ con voi.' }, { text: 'Từ nghiên cứu thực chứng những người <em>sinh cùng ngày giờ</em>, kết luận nào được rút ra về nguyên cục Bát Tự?', options: [ 'Lá số quyết định hoàn toàn cuộc đời, môi trường không ảnh hưởng', 'Hình Tượng, Đảng Thế và Cách Cục ứng nghiệm nhiều nhất; nguyên cục Bát Tự chỉ mang tính tương đối vì còn phụ thuộc mệnh lý người thân và môi trường sống', 'Vượng Suy pháp chính xác hơn Cách Cục trong thực tế', 'Anh em sinh đôi luôn có cuộc đời giống hệt nhau nếu cùng lá số' ], correct: 1, explain: '<strong>Hình Tượng, Đảng Thế & Cách Cục ứng nghiệm nhất + nguyên cục chỉ tương đối.</strong> Hai điều rút ra: (1) những gì ứng nghiệm nhất là <em>Hình Tượng và Cách Cục</em> — nền tảng cốt lõi Tử Bình truyền thống; (2) nguyên cục Bát Tự <em>chỉ mang tính tương đối</em> — cùng một lá số vẫn có ngã rẽ khác nhau tùy <em>mệnh lý người thân</em> và <em>môi trường</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() { // Try iframe-internal scroll first (works in standalone) 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); } } // Also tell parent (WordPress page) to scroll to iframe top — works inside iframe try { if (window.parent && window.parent !== window) { window.parent.postMessage({ ltTcScrollToFrame: true }, '*'); } } catch(e) {} } 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); } } // Tell parent to scroll to CTA position try { if (window.parent && window.parent !== window) { window.parent.postMessage({ ltTcScrollToCTA: true }, '*'); } } catch(e) {} } 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 toàn bộ dòng chảy lịch sử Tử Bình — từ sơ khai đến đương đại. Đây là nền móng để đọc các kinh điển.'; } else if (totalCorrect >= 8) { title = 'Xuất <em>sắc</em>'; msg = 'Bạn đã nắm được dòng chảy chính của lịch sử Tử Bình. Vài câu sai chỉ là chi tiết — xem lại giải thích để hoàn thiện.'; } 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 II (cuộc cách mạng nhà Tống) và phần IV (ba trường phái nhà Thanh) — đây là hai khúc quanh quan trọng nhất.'; } 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, đặc biệt chú ý các tên tác giả và mốc thời gian quan trọng.'; } 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 sáu phần, ghi nhớ ba mốc lớn: Đường (Lý Hư Trung) → Tống (Từ Tử Bình) → Thanh (ba trường phá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({ ltLsHeight: 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: 7200px !important; min-height: 7200px !important; max-height: none !important; border: 0 !important; display: block !important; background: transparent !important; margin: 0 !important; padding: 0 !important;" title="Lịch Sử Bát Tự Tử Bình - Hoàng Trung"> </iframe> </div> <script> (function() { var IFRAME_ID = 'lt-ls-frame'; var INITIAL_H = 7200; 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); } function scrollParentToFrameTop(offsetPx) { var f = document.getElementById(IFRAME_ID); if (!f) return; setTimeout(function() { var rect = f.getBoundingClientRect(); var iframeTopInPage = rect.top + (window.pageYOffset || document.documentElement.scrollTop || 0); var targetY = Math.max(iframeTopInPage - (offsetPx || 20), 0); try { window.scrollTo({ top: targetY, behavior: 'smooth' }); } catch(e) { window.scrollTo(0, targetY); } }, 150); } window.addEventListener('message', function(e) { if (!e || !e.data) return; if (typeof e.data.ltLsHeight === 'number') setH(e.data.ltLsHeight, e.data.viewId); if (e.data.ltTcScrollToFrame === true || e.data.ltLsScrollToFrame === true) scrollParentToFrameTop(20); if (e.data.ltTcScrollToCTA === true || e.data.ltLsScrollToCTA === true) scrollParentToFrameTop(20); }); 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 LỊCH SỬ TỬ BÌNH -->