{"id":2655,"date":"2026-06-22T18:26:51","date_gmt":"2026-06-22T18:26:51","guid":{"rendered":"https:\/\/app.digitalfreelancer.org\/?page_id=2655"},"modified":"2026-07-15T19:03:16","modified_gmt":"2026-07-15T19:03:16","slug":"dashboard-i-ching","status":"publish","type":"page","link":"https:\/\/app.digitalfreelancer.org\/index.php\/dashboard-i-ching\/","title":{"rendered":"Dashboard i-ching"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2655\" class=\"elementor elementor-2655\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3c81a5b elementor-hidden-mobile e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"3c81a5b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4fe4d1 elementor-widget elementor-widget-spacer\" data-id=\"b4fe4d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-53668a6 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"53668a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e6e2f09 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"e6e2f09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76c9d27 elementor-widget elementor-widget-shortcode\" data-id=\"76c9d27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"icdp-wrap\" data-icdp=\"icdp_129687c0\">\n        <style>\n        \/* =========================================================\n           I CHING \u00b7 OR\u00c1CULO DAS MUTA\u00c7\u00d5ES\n           Identidade visual: tinta, papel de arroz e selo de cin\u00e1brio.\n        ========================================================== *\/\n        .icdp-wrap {\n            --ink:        #140e1f;\n            --ink-deep:   #0a0714;\n            --paper:      #f3ead9;\n            --paper-soft: #f7f0e0;\n            --seal:       #8a6a2c;\n            --seal-deep:  #5e4718;\n            --jade:       #7c4fb0;\n            --brass:      #b9893c;\n            --brass-lite: #e0b871;\n            --line-dark:  #241a35;\n            --radius:     10px;\n\n            font-family: 'IC-Body', -apple-system, \"Segoe UI\", sans-serif;\n            color: var(--paper-soft);\n            background: var(--ink);\n            border-radius: 16px;\n            overflow: hidden;\n            position: relative;\n        }\n\n        .icdp-wrap * { box-sizing: border-box; }\n\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Noto+Serif+TC:wght@400;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');\n        .icdp-wrap { --f-display: 'Noto Serif TC', Georgia, serif; --f-body: 'Inter', -apple-system, sans-serif; --f-mono: 'JetBrains Mono', ui-monospace, monospace; }\n        .icdp-wrap, .icdp-wrap button, .icdp-wrap input { font-family: var(--f-body); }\n\n        .icdp-app {\n            position: relative;\n            min-height: 760px;\n            background:\n                radial-gradient(circle at 12% 8%, rgba(185,137,60,0.10), transparent 40%),\n                radial-gradient(circle at 88% 92%, rgba(124,79,176,0.12), transparent 45%),\n                var(--ink);\n            padding: 26px 30px 34px;\n        }\n\n        \/* ---------- TOP BAR ---------- *\/\n        .icdp-top {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            border-bottom: 1px solid rgba(224,184,113,0.18);\n            padding-bottom: 18px;\n            margin-bottom: 24px;\n            flex-wrap: wrap;\n            gap: 12px;\n        }\n\n        .icdp-brand { display: flex; align-items: center; gap: 12px; }\n\n        .icdp-glyph {\n            font-family: var(--f-display);\n            font-size: 34px;\n            color: var(--brass-lite);\n            line-height: 1;\n        }\n\n        .icdp-brand strong {\n            font-family: var(--f-display);\n            font-size: 18px;\n            letter-spacing: 0.14em;\n            display: block;\n            color: var(--paper-soft);\n        }\n\n        .icdp-brand span {\n            font-size: 12px;\n            color: rgba(237,228,208,0.55);\n            letter-spacing: 0.04em;\n        }\n\n        .icdp-meta {\n            text-align: right;\n            font-size: 12px;\n            color: rgba(237,228,208,0.6);\n            font-family: var(--f-mono);\n            line-height: 1.6;\n        }\n\n        .icdp-meta strong { color: var(--brass-lite); font-family: var(--f-body); font-weight: 600; display:block; font-size:13px; }\n\n        \/* ---------- BODY GRID ---------- *\/\n        .icdp-body {\n            display: grid;\n            grid-template-columns: 360px 1fr;\n            gap: 22px;\n            align-items: start;\n        }\n\n        @media (max-width: 860px) {\n            .icdp-body { grid-template-columns: 1fr; }\n        }\n\n        \/* ---------- ALTAR (casting stage) ---------- *\/\n        .icdp-altar {\n            background: linear-gradient(180deg, rgba(255,255,255,0.03), transparent), var(--ink-deep);\n            border: 1px solid rgba(224,184,113,0.16);\n            border-radius: var(--radius);\n            padding: 26px 22px;\n            position: relative;\n            overflow: hidden;\n        }\n\n        .icdp-altar::before,\n        .icdp-altar::after {\n            content: \"\";\n            position: absolute;\n            width: 220px;\n            height: 220px;\n            border-radius: 50%;\n            filter: blur(50px);\n            opacity: 0.5;\n            pointer-events: none;\n        }\n        .icdp-altar::before { background: radial-gradient(circle, rgba(185,137,60,0.18), transparent 70%); top: -80px; left: -80px; }\n        .icdp-altar::after  { background: radial-gradient(circle, rgba(124,79,176,0.16), transparent 70%); bottom: -90px; right: -70px; }\n\n        .icdp-altar-title {\n            font-family: var(--f-display);\n            font-size: 20px;\n            margin: 0 0 4px;\n            color: var(--paper-soft);\n            position: relative;\n        }\n\n        .icdp-altar-sub {\n            margin: 0 0 22px;\n            font-size: 13px;\n            color: rgba(237,228,208,0.55);\n            position: relative;\n        }\n\n        \/* Coins *\/\n        .icdp-coins {\n            display: flex;\n            justify-content: center;\n            gap: 18px;\n            margin-bottom: 26px;\n            position: relative;\n            min-height: 56px;\n        }\n\n        .icdp-coin {\n            width: 52px;\n            height: 52px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-family: var(--f-display);\n            font-size: 20px;\n            font-weight: 700;\n            background: radial-gradient(circle at 35% 30%, var(--brass-lite), var(--brass) 70%);\n            color: var(--ink-deep);\n            border: 2px solid rgba(0,0,0,0.25);\n            box-shadow: 0 3px 8px rgba(0,0,0,0.4);\n            transition: opacity .2s ease;\n        }\n\n        .icdp-coin.is-yin {\n            background: radial-gradient(circle at 35% 30%, #2c2438, #170f22 75%);\n            color: var(--brass-lite);\n        }\n\n        .icdp-coin.is-flipping { animation: icdpFlip .55s ease-in-out; }\n\n        @keyframes icdpFlip {\n            0%   { transform: rotateY(0deg) scale(1); }\n            45%  { transform: rotateY(540deg) scale(1.08); }\n            100% { transform: rotateY(720deg) scale(1); }\n        }\n\n        @media (prefers-reduced-motion: reduce) {\n            .icdp-coin.is-flipping { animation: none; }\n        }\n\n        \/* Hexagram stack: column-reverse so line 1 (cast first) stays at the bottom *\/\n        .icdp-hexagram {\n            display: flex;\n            flex-direction: column-reverse;\n            align-items: center;\n            gap: 10px;\n            min-height: 220px;\n            justify-content: flex-start;\n            padding: 6px 0 4px;\n        }\n\n        .icdp-line-row {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            opacity: 0;\n            transform: translateY(6px);\n            animation: icdpLineIn .45s ease forwards;\n        }\n\n        @keyframes icdpLineIn {\n            to { opacity: 1; transform: translateY(0); }\n        }\n\n        .icdp-line-num {\n            font-family: var(--f-mono);\n            font-size: 11px;\n            color: rgba(237,228,208,0.4);\n            width: 14px;\n            text-align: right;\n        }\n\n        .icdp-line {\n            width: 150px;\n            height: 12px;\n            display: flex;\n            gap: 14px;\n        }\n\n        .icdp-line-bar {\n            height: 100%;\n            border-radius: 3px;\n            background: linear-gradient(180deg, var(--brass-lite), var(--brass));\n        }\n\n        .icdp-line.is-yang .icdp-line-bar { width: 100%; }\n        .icdp-line.is-yin  .icdp-line-bar { flex: 1; }\n\n        .icdp-line-changing .icdp-line-bar { background: linear-gradient(180deg, #c9a6ff, var(--jade)); }\n\n        .icdp-line-dot {\n            width: 7px;\n            height: 7px;\n            border-radius: 50%;\n            background: var(--seal);\n            box-shadow: 0 0 6px rgba(124,79,176,0.7);\n            flex: 0 0 auto;\n            margin-left: 4px;\n            visibility: hidden;\n        }\n        .icdp-line-changing .icdp-line-dot { visibility: visible; }\n\n        .icdp-hex-placeholder {\n            font-size: 12px;\n            color: rgba(237,228,208,0.35);\n            text-align: center;\n            width: 100%;\n            padding: 70px 0;\n        }\n\n        \/* Actions *\/\n        .icdp-actions {\n            display: flex;\n            gap: 10px;\n            margin-top: 22px;\n            position: relative;\n        }\n\n        .icdp-btn {\n            flex: 1;\n            padding: 12px 14px;\n            border-radius: 9px;\n            border: none;\n            cursor: pointer;\n            font-weight: 600;\n            font-size: 13.5px;\n            letter-spacing: 0.01em;\n            transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;\n        }\n        .icdp-btn:active { transform: translateY(1px); }\n        .icdp-btn:disabled { opacity: 0.45; cursor: not-allowed; }\n\n        .icdp-btn-primary {\n            background: linear-gradient(135deg, var(--brass-lite), var(--brass));\n            color: var(--ink-deep);\n            box-shadow: 0 4px 14px rgba(185,137,60,0.25);\n        }\n        .icdp-btn-primary:hover:not(:disabled) { box-shadow: 0 6px 18px rgba(185,137,60,0.4); }\n\n        .icdp-btn-ghost {\n            background: transparent;\n            border: 1px solid rgba(237,228,208,0.25);\n            color: rgba(237,228,208,0.8);\n        }\n        .icdp-btn-ghost:hover:not(:disabled) { border-color: rgba(237,228,208,0.5); color: #fff; }\n\n        .icdp-hint {\n            margin: 14px 0 0;\n            font-size: 11.5px;\n            color: rgba(237,228,208,0.4);\n            text-align: center;\n        }\n\n        \/* ---------- READING PANEL ---------- *\/\n        .icdp-reading {\n            background: var(--paper-soft);\n            color: var(--ink-deep);\n            border-radius: var(--radius);\n            padding: 30px 32px;\n            min-height: 500px;\n            position: relative;\n            box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04);\n        }\n\n        .icdp-reading-empty {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            text-align: center;\n            min-height: 440px;\n            color: rgba(20,14,31,0.45);\n            gap: 14px;\n        }\n\n        .icdp-seal-ghost {\n            font-family: var(--f-display);\n            font-size: 64px;\n            color: rgba(185,137,60,0.18);\n        }\n\n        .icdp-reading-head {\n            display: flex;\n            gap: 20px;\n            align-items: flex-start;\n            padding-bottom: 20px;\n            border-bottom: 1px solid rgba(20,14,31,0.1);\n        }\n\n        .icdp-seal {\n            flex: 0 0 auto;\n            width: 78px;\n            height: 78px;\n            border-radius: 10px;\n            background: var(--seal);\n            color: var(--paper);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-family: var(--f-display);\n            font-weight: 700;\n            font-size: 15px;\n            line-height: 1.1;\n            text-align: center;\n            transform: rotate(-3deg);\n            box-shadow: 0 6px 16px rgba(138,106,44,0.35), inset 0 0 0 2px rgba(255,255,255,0.15);\n            border: 2px solid var(--seal-deep);\n            opacity: 0;\n        }\n        .icdp-seal.icdp-stamp-in { animation: icdpStamp .5s cubic-bezier(.2,1.4,.4,1) forwards; }\n\n        @keyframes icdpStamp {\n            0%   { opacity: 0; transform: rotate(-3deg) scale(1.9); }\n            60%  { opacity: 1; }\n            100% { opacity: 1; transform: rotate(-3deg) scale(1); }\n        }\n\n        .icdp-seal small { display:block; font-size: 10px; font-weight:500; opacity:0.85; font-family: var(--f-mono); }\n        .icdp-seal b { display:block; font-size: 22px; }\n        .icdp-seal-hanzi { display:block; font-size: 15px; opacity: 0.85; margin-top: 2px; }\n\n        .icdp-title-block h2 {\n            font-family: var(--f-display);\n            font-size: 26px;\n            margin: 0 0 2px;\n        }\n        .icdp-title-block .icdp-pinyin {\n            font-style: italic;\n            color: var(--jade);\n            font-size: 14px;\n            margin: 0 0 10px;\n        }\n        .icdp-trigrams {\n            display: flex;\n            gap: 16px;\n            font-size: 12.5px;\n            color: rgba(20,14,31,0.6);\n        }\n        .icdp-trigrams span b { color: var(--ink-deep); font-family: var(--f-display); font-size: 15px; margin-right:4px; }\n\n        .icdp-meaning {\n            margin-top: 22px;\n            font-size: 15.5px;\n            line-height: 1.75;\n        }\n        .icdp-meaning p { margin: 0; }\n\n        .icdp-changing-block {\n            margin-top: 22px;\n            padding: 16px 18px;\n            background: rgba(124,79,176,0.08);\n            border-left: 3px solid var(--seal);\n            border-radius: 6px;\n            font-size: 13.5px;\n        }\n        .icdp-changing-block h4 {\n            margin: 0 0 6px;\n            font-size: 12px;\n            text-transform: uppercase;\n            letter-spacing: 0.08em;\n            color: var(--seal);\n        }\n\n        .icdp-transform {\n            margin-top: 18px;\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            padding: 16px 18px;\n            background: rgba(138,106,44,0.10);\n            border-radius: 8px;\n        }\n        .icdp-transform-arrow { font-size: 20px; color: var(--jade); }\n        .icdp-transform-mini {\n            display: flex;\n            flex-direction: column-reverse;\n            gap: 4px;\n        }\n        .icdp-transform-mini .tl { width: 46px; height: 5px; display:flex; gap:5px; }\n        .icdp-transform-mini .tl .b { background: var(--jade); border-radius: 2px; }\n        .icdp-transform-mini .tl.y .b { width: 100%; }\n        .icdp-transform-mini .tl.n .b { flex: 1; }\n        .icdp-transform-text strong { font-family: var(--f-display); font-size: 16px; display:block; }\n        .icdp-transform-text span { font-size: 12.5px; color: rgba(20,14,31,0.55); }\n\n        .icdp-copy-row { margin-top: 24px; text-align: right; }\n        .icdp-copy-btn {\n            background: none;\n            border: 1px solid rgba(20,14,31,0.2);\n            color: rgba(20,14,31,0.65);\n            font-size: 12px;\n            padding: 8px 14px;\n            border-radius: 7px;\n            cursor: pointer;\n        }\n        .icdp-copy-btn:hover { border-color: rgba(20,14,31,0.4); color: var(--ink-deep); }\n\n        \/* ---------- HISTORY ---------- *\/\n        .icdp-history {\n            margin-top: 22px;\n            background: rgba(255,255,255,0.02);\n            border: 1px solid rgba(224,184,113,0.14);\n            border-radius: var(--radius);\n            padding: 16px 20px;\n        }\n        .icdp-history h3 {\n            margin: 0 0 12px;\n            font-size: 12px;\n            text-transform: uppercase;\n            letter-spacing: 0.1em;\n            color: rgba(237,228,208,0.5);\n        }\n        .icdp-history-row {\n            display: flex;\n            gap: 10px;\n            overflow-x: auto;\n            padding-bottom: 4px;\n        }\n        .icdp-history-empty { font-size: 12.5px; color: rgba(237,228,208,0.35); }\n\n        .icdp-chip {\n            flex: 0 0 auto;\n            width: 46px;\n            height: 46px;\n            border-radius: 8px;\n            background: var(--seal);\n            color: var(--paper);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-family: var(--f-display);\n            font-weight: 700;\n            cursor: pointer;\n            border: none;\n            font-size: 15px;\n            opacity: 0.9;\n            transition: transform .15s ease, opacity .15s ease;\n        }\n        .icdp-chip:hover { transform: translateY(-2px); opacity: 1; }\n        <\/style>\n\n        <div class=\"icdp-app\">\n\n            <header class=\"icdp-top\">\n                <div class=\"icdp-brand\">\n                    <span class=\"icdp-glyph\">\u6613<\/span>\n                    <div>\n                        <strong>OR\u00c1CULO DAS MUTA\u00c7\u00d5ES<\/strong>\n                        <span>I Ching \u00b7 \u6613\u7d93<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"icdp-meta\">\n                    <strong>Viajante<\/strong>\n                    18 de July de 2026                <\/div>\n            <\/header>\n\n            <div class=\"icdp-body\">\n\n                <section class=\"icdp-altar\">\n                    <h2 class=\"icdp-altar-title\">Altar de Consulta<\/h2>\n                    <p class=\"icdp-altar-sub\">Formula a tua pergunta em sil\u00eancio e lan\u00e7a as moedas.<\/p>\n\n                    <div class=\"icdp-coins\" data-el=\"coins\">\n                        <div class=\"icdp-coin\" data-el=\"coin\">\u967d<\/div>\n                        <div class=\"icdp-coin\" data-el=\"coin\">\u967d<\/div>\n                        <div class=\"icdp-coin\" data-el=\"coin\">\u967d<\/div>\n                    <\/div>\n\n                    <div class=\"icdp-hexagram\" data-el=\"hexagram\">\n                        <p class=\"icdp-hex-placeholder\">O hexagrama ser\u00e1 constru\u00eddo aqui, linha a linha, de baixo para cima.<\/p>\n                    <\/div>\n\n                    <div class=\"icdp-actions\">\n                        <button class=\"icdp-btn icdp-btn-primary\" data-el=\"cast\">Lan\u00e7ar Hexagrama<\/button>\n                        <button class=\"icdp-btn icdp-btn-ghost\" data-el=\"reset\">Nova Consulta<\/button>\n                    <\/div>\n                    <p class=\"icdp-hint\">M\u00e9todo tradicional das tr\u00eas moedas \u2014 seis lan\u00e7amentos, um por linha.<\/p>\n                <\/section>\n\n                <section class=\"icdp-reading\" data-el=\"reading\">\n                    <div class=\"icdp-reading-empty\" data-el=\"empty\">\n                        <span class=\"icdp-seal-ghost\">\u5366<\/span>\n                        <p>A tua leitura aparecer\u00e1 aqui assim que lan\u00e7ares o hexagrama.<\/p>\n                    <\/div>\n                    <div class=\"icdp-reading-content\" data-el=\"content\" hidden><\/div>\n                <\/section>\n\n            <\/div>\n\n            <section class=\"icdp-history\">\n                <h3>Registo de Consultas desta Sess\u00e3o<\/h3>\n                <div class=\"icdp-history-row\" data-el=\"history\">\n                    <p class=\"icdp-history-empty\">Ainda sem consultas nesta sess\u00e3o.<\/p>\n                <\/div>\n            <\/section>\n\n        <\/div>\n        <\/div>\n\n        <script>\n        (function () {\n            \"use strict\";\n\n            var root = document.querySelector('[data-icdp=\"icdp_129687c0\"]');\n            if (!root) { return; }\n\n            var els = {\n                coinsBox: root.querySelector('[data-el=\"coins\"]'),\n                hexBox:   root.querySelector('[data-el=\"hexagram\"]'),\n                castBtn:  root.querySelector('[data-el=\"cast\"]'),\n                resetBtn: root.querySelector('[data-el=\"reset\"]'),\n                reading:  root.querySelector('[data-el=\"reading\"]'),\n                empty:    root.querySelector('[data-el=\"empty\"]'),\n                content:  root.querySelector('[data-el=\"content\"]'),\n                history:  root.querySelector('[data-el=\"history\"]')\n            };\n\n            \/* ---------------------------------------------------------\n               Trigrama data \u2014 linhas em ordem base\u2192topo, 1 = yang, 0 = yin\n            ---------------------------------------------------------- *\/\n            var TRIGRAMS = {\n                qian: { name: \"C\u00e9u\",      symbol: \"\u2630\", lines: [1,1,1] },\n                zhen: { name: \"Trov\u00e3o\",   symbol: \"\u2633\", lines: [1,0,0] },\n                kan:  { name: \"\u00c1gua\",     symbol: \"\u2635\", lines: [0,1,0] },\n                gen:  { name: \"Montanha\", symbol: \"\u2636\", lines: [0,0,1] },\n                kun:  { name: \"Terra\",    symbol: \"\u2637\", lines: [0,0,0] },\n                xun:  { name: \"Vento\",    symbol: \"\u2634\", lines: [0,1,1] },\n                li:   { name: \"Fogo\",     symbol: \"\u2632\", lines: [1,0,1] },\n                dui:  { name: \"Lago\",     symbol: \"\u2631\", lines: [1,1,0] }\n            };\n\n            \/* Tabela de King Wen: KINGWEN[trigrama_inferior][trigrama_superior] = n\u00famero (1-64) *\/\n            var KINGWEN = {\n                qian: { qian:1,  zhen:34, kan:5,  gen:26, kun:11, xun:9,  li:14, dui:43 },\n                zhen: { qian:25, zhen:51, kan:3,  gen:27, kun:24, xun:42, li:21, dui:17 },\n                kan:  { qian:6,  zhen:40, kan:29, gen:4,  kun:7,  xun:59, li:64, dui:47 },\n                gen:  { qian:33, zhen:62, kan:39, gen:52, kun:15, xun:53, li:56, dui:31 },\n                kun:  { qian:12, zhen:16, kan:8,  gen:23, kun:2,  xun:20, li:35, dui:45 },\n                xun:  { qian:44, zhen:32, kan:48, gen:18, kun:46, xun:57, li:50, dui:28 },\n                li:   { qian:13, zhen:55, kan:63, gen:22, kun:36, xun:37, li:30, dui:49 },\n                dui:  { qian:10, zhen:54, kan:60, gen:41, kun:19, xun:61, li:38, dui:58 }\n            };\n\n            \/* ---------------------------------------------------------\n               64 Hexagramas \u2014 nome, hanzi, pinyin e leitura essencial\n            ---------------------------------------------------------- *\/\n            var HEX = {\n                1:{h:\"\u4e7e\",p:\"Qi\u00e1n\",n:\"O Criativo\",m:\"For\u00e7a pura e persistente do c\u00e9u. Momento de iniciativa forte e lideran\u00e7a confiante \u2014 avan\u00e7a com integridade e persist\u00eancia.\"},\n                2:{h:\"\u5764\",p:\"K\u016bn\",n:\"O Receptivo\",m:\"A terra que acolhe e sustenta. Tempo de receptividade, paci\u00eancia e devo\u00e7\u00e3o \u2014 deixa-te conduzir antes de agir.\"},\n                3:{h:\"\u5c6f\",p:\"Zh\u016bn\",n:\"Dificuldade Inicial\",m:\"Como um broto a irromper solo duro. In\u00edcio dif\u00edcil que exige perseveran\u00e7a e apoio de outros \u2014 organiza antes de for\u00e7ar.\"},\n                4:{h:\"\u8499\",p:\"M\u00e9ng\",n:\"Insensatez Juvenil\",m:\"A n\u00e9voa da inexperi\u00eancia. Tempo de aprendizagem \u2014 procura orienta\u00e7\u00e3o com humildade e disciplina.\"},\n                5:{h:\"\u9700\",p:\"X\u016b\",n:\"A Espera\",m:\"A nuvem antes da chuva. Aguarda com confian\u00e7a e prepara-te \u2014 a for\u00e7a certa chega no seu pr\u00f3prio tempo.\"},\n                6:{h:\"\u8a1f\",p:\"S\u00f2ng\",n:\"O Conflito\",m:\"Tens\u00e3o entre vontades opostas. Evita o confronto prolongado \u2014 procura media\u00e7\u00e3o e recua da disputa cedo.\"},\n                7:{h:\"\u5e2b\",p:\"Sh\u012b\",n:\"O Ex\u00e9rcito\",m:\"Disciplina coletiva sob comando justo. Organiza recursos e pessoas com ordem clara perante o desafio.\"},\n                8:{h:\"\u6bd4\",p:\"B\u01d0\",n:\"A Uni\u00e3o\",m:\"\u00c1guas que se juntam sobre a terra. Tempo de alian\u00e7a e solidariedade \u2014 aproxima-te dos que partilham o teu caminho.\"},\n                9:{h:\"\u5c0f\u755c\",p:\"Xi\u01ceo X\u00f9\",n:\"Pequena Conten\u00e7\u00e3o\",m:\"O vento que apenas cont\u00e9m as nuvens. Progresso pequeno e gradual \u2014 acumula for\u00e7as antes do grande avan\u00e7o.\"},\n                10:{h:\"\u5c65\",p:\"L\u01da\",n:\"O Caminhar\",m:\"Pisar com cuidado atr\u00e1s do tigre. Age com tato e respeito nas situa\u00e7\u00f5es delicadas \u2014 a cortesia protege-te.\"},\n                11:{h:\"\u6cf0\",p:\"T\u00e0i\",n:\"A Paz\",m:\"C\u00e9u e terra em harmonia f\u00e9rtil. Per\u00edodo pr\u00f3spero de equil\u00edbrio \u2014 aproveita para consolidar e partilhar o bem-estar.\"},\n                12:{h:\"\u5426\",p:\"P\u01d0\",n:\"A Estagna\u00e7\u00e3o\",m:\"C\u00e9u e terra afastados. Tempo de bloqueio e desconex\u00e3o \u2014 recolhe-te, protege o essencial e aguarda a mudan\u00e7a.\"},\n                13:{h:\"\u540c\u4eba\",p:\"T\u00f3ng R\u00e9n\",n:\"Companheirismo\",m:\"Fogo sob o c\u00e9u, unindo pessoas. Procura uni\u00e3o genu\u00edna atrav\u00e9s de prop\u00f3sitos partilhados e abertura sincera.\"},\n                14:{h:\"\u5927\u6709\",p:\"D\u00e0 Y\u01d2u\",n:\"Grande Posse\",m:\"O sol no auge do c\u00e9u. Abund\u00e2ncia e influ\u00eancia \u2014 usa a riqueza com generosidade e responsabilidade.\"},\n                15:{h:\"\u8b19\",p:\"Qi\u0101n\",n:\"A Mod\u00e9stia\",m:\"A montanha escondida sob a terra. Humildade verdadeira traz equil\u00edbrio duradouro \u2014 n\u00e3o ostentes o que alcan\u00e7as.\"},\n                16:{h:\"\u8c6b\",p:\"Y\u00f9\",n:\"O Entusiasmo\",m:\"O trov\u00e3o que desperta a terra. Motiva\u00e7\u00e3o coletiva e alegria \u2014 usa o entusiasmo para preparar e mobilizar.\"},\n                17:{h:\"\u96a8\",p:\"Su\u00ed\",n:\"O Seguir\",m:\"O trov\u00e3o dentro do lago. Adapta-te ao momento certo e segue o que \u00e9 justo, sem perder a tua identidade.\"},\n                18:{h:\"\u8831\",p:\"G\u01d4\",n:\"Reparar o Deteriorado\",m:\"O vento no sop\u00e9 da montanha, corrompendo. Corrige antigos erros com trabalho paciente e decis\u00e3o.\"},\n                19:{h:\"\u81e8\",p:\"L\u00edn\",n:\"A Aproxima\u00e7\u00e3o\",m:\"A terra sobre o lago, avan\u00e7ando. Influ\u00eancia crescente \u2014 aproxima-te dos outros com responsabilidade e cuidado.\"},\n                20:{h:\"\u89c0\",p:\"Gu\u0101n\",n:\"A Contempla\u00e7\u00e3o\",m:\"O vento sobre a terra, observando. Observa com clareza antes de agir \u2014 a vis\u00e3o precede a a\u00e7\u00e3o certa.\"},\n                21:{h:\"\u566c\u55d1\",p:\"Sh\u00ec K\u00e8\",n:\"Morder e Atravessar\",m:\"O trov\u00e3o e o rel\u00e2mpago cortam o obst\u00e1culo. Resolve com firmeza aquilo que impede o progresso.\"},\n                22:{h:\"\u8cc1\",p:\"B\u00ec\",n:\"O Adorno\",m:\"O fogo ao p\u00e9 da montanha, embelezando. Cuida da forma e da beleza, mas n\u00e3o esque\u00e7as a subst\u00e2ncia.\"},\n                23:{h:\"\u525d\",p:\"B\u014d\",n:\"A Desagrega\u00e7\u00e3o\",m:\"A montanha assente sobre a terra, a desmoronar-se. Fase de decl\u00ednio \u2014 retira-te e preserva o essencial at\u00e9 passar.\"},\n                24:{h:\"\u5fa9\",p:\"F\u00f9\",n:\"O Retorno\",m:\"O trov\u00e3o dentro da terra, o primeiro impulso. Um novo ciclo come\u00e7a \u2014 volta ao caminho certo com passos pequenos.\"},\n                25:{h:\"\u7121\u5984\",p:\"W\u00fa W\u00e0ng\",n:\"A Inoc\u00eancia\",m:\"O trov\u00e3o sob o c\u00e9u, sem artif\u00edcio. Age com sinceridade natural, sem c\u00e1lculo \u2014 o que \u00e9 genu\u00edno prospera.\"},\n                26:{h:\"\u5927\u755c\",p:\"D\u00e0 X\u00f9\",n:\"Grande Conten\u00e7\u00e3o\",m:\"A montanha guarda o c\u00e9u dentro de si. Acumula sabedoria e for\u00e7a antes de agir em grande escala.\"},\n                27:{h:\"\u9824\",p:\"Y\u00ed\",n:\"A Nutri\u00e7\u00e3o\",m:\"A montanha sobre o trov\u00e3o, como um maxilar. Cuida do que alimentas \u2014 corpo, mente e palavras \u2014 com discernimento.\"},\n                28:{h:\"\u5927\u904e\",p:\"D\u00e0 Gu\u00f2\",n:\"Grande Excesso\",m:\"O lago submerge a \u00e1rvore. Situa\u00e7\u00e3o sob grande press\u00e3o \u2014 age com coragem, mas evita o colapso pela sobrecarga.\"},\n                29:{h:\"\u574e\",p:\"K\u01cen\",n:\"O Abismo\",m:\"\u00c1gua sobre \u00e1gua, perigo repetido. Persiste com sinceridade atrav\u00e9s da dificuldade, um passo de cada vez.\"},\n                30:{h:\"\u96e2\",p:\"L\u00ed\",n:\"O Fogo\",m:\"Chama que se agarra \u00e0 chama. Clareza e brilho atrav\u00e9s da conex\u00e3o \u2014 ilumina com const\u00e2ncia, n\u00e3o com excesso.\"},\n                31:{h:\"\u54b8\",p:\"Xi\u00e1n\",n:\"Atra\u00e7\u00e3o M\u00fatua\",m:\"O lago sobre a montanha, sentindo-se. A liga\u00e7\u00e3o genu\u00edna nasce da recetividade \u2014 deixa-te influenciar com discernimento.\"},\n                32:{h:\"\u6046\",p:\"H\u00e9ng\",n:\"A Dura\u00e7\u00e3o\",m:\"O trov\u00e3o e o vento, constantes. Constr\u00f3i o que perdura atrav\u00e9s de rotina firme e compromisso renovado.\"},\n                33:{h:\"\u906f\",p:\"D\u00f9n\",n:\"A Retirada\",m:\"A montanha sob o c\u00e9u, afastando-se. Recua estrategicamente sem fugir \u2014 preserva a dignidade retirando-te a tempo.\"},\n                34:{h:\"\u5927\u58ef\",p:\"D\u00e0 Zhu\u00e0ng\",n:\"Grande Poder\",m:\"O trov\u00e3o no alto do c\u00e9u. For\u00e7a consider\u00e1vel ao teu dispor \u2014 usa-a com retid\u00e3o, n\u00e3o com viol\u00eancia.\"},\n                35:{h:\"\u6649\",p:\"J\u00ecn\",n:\"O Progresso\",m:\"O sol a nascer sobre a terra. Avan\u00e7o reconhecido e vis\u00edvel \u2014 segue em frente com confian\u00e7a luminosa.\"},\n                36:{h:\"\u660e\u5937\",p:\"M\u00edng Y\u00ed\",n:\"Luz Ferida\",m:\"O sol mergulhado na terra. Tempos de escurid\u00e3o externa \u2014 protege a tua luz interior e age com discri\u00e7\u00e3o.\"},\n                37:{h:\"\u5bb6\u4eba\",p:\"Ji\u0101 R\u00e9n\",n:\"A Fam\u00edlia\",m:\"O vento gerado pelo fogo, dentro de casa. Ordem e afeto no lar sustentam tudo o resto \u2014 cuida das rela\u00e7\u00f5es pr\u00f3ximas.\"},\n                38:{h:\"\u777d\",p:\"Ku\u00ed\",n:\"A Oposi\u00e7\u00e3o\",m:\"O fogo sobe, o lago desce, afastando-se. Diferen\u00e7as e desconfian\u00e7a \u2014 procura pequenos pontos de encontro antes de reconciliar.\"},\n                39:{h:\"\u8e47\",p:\"Ji\u01cen\",n:\"O Obst\u00e1culo\",m:\"A montanha diante da \u00e1gua, dif\u00edcil de atravessar. Procura aliados e o caminho mais s\u00e1bio, n\u00e3o o mais direto.\"},\n                40:{h:\"\u89e3\",p:\"Xi\u00e8\",n:\"A Liberta\u00e7\u00e3o\",m:\"O trov\u00e3o e a chuva libertam a tens\u00e3o. Al\u00edvio depois da dificuldade \u2014 resolve o que resta e segue em frente.\"},\n                41:{h:\"\u640d\",p:\"S\u01d4n\",n:\"A Diminui\u00e7\u00e3o\",m:\"A montanha sobre o lago, retirando para elevar. Sacrifica o sup\u00e9rfluo para fortalecer o essencial \u2014 a simplicidade traz ganho.\"},\n                42:{h:\"\u76ca\",p:\"Y\u00ec\",n:\"O Aumento\",m:\"O vento e o trov\u00e3o refor\u00e7am-se. Momento f\u00e9rtil para investir e partilhar \u2014 o que d\u00e1s com sinceridade multiplica-se.\"},\n                43:{h:\"\u592c\",p:\"Gu\u00e0i\",n:\"A Resolu\u00e7\u00e3o\",m:\"O lago transborda para o c\u00e9u. Chegou o momento de cortar com clareza aquilo que j\u00e1 n\u00e3o serve, com firmeza mas sem crueldade.\"},\n                44:{h:\"\u59e4\",p:\"G\u00f2u\",n:\"Encontro Inesperado\",m:\"O vento sob o c\u00e9u, um encontro s\u00fabito. Uma influ\u00eancia inesperada surge \u2014 recebe-a com discernimento e limites claros.\"},\n                45:{h:\"\u8403\",p:\"Cu\u00ec\",n:\"A Reuni\u00e3o\",m:\"O lago sobre a terra, as \u00e1guas juntam-se. Tempo de reunir pessoas e recursos em torno de um prop\u00f3sito comum.\"},\n                46:{h:\"\u5347\",p:\"Sh\u0113ng\",n:\"A Ascens\u00e3o\",m:\"A \u00e1rvore cresce da terra, subindo devagar. Progresso constante para cima \u2014 sobe passo a passo, sem atalhos.\"},\n                47:{h:\"\u56f0\",p:\"K\u00f9n\",n:\"A Exaust\u00e3o\",m:\"O lago esvaziado sob a terra. Recursos escassos e cansa\u00e7o \u2014 conserva energia e mant\u00e9m a integridade mesmo em aperto.\"},\n                48:{h:\"\u4e95\",p:\"J\u01d0ng\",n:\"O Po\u00e7o\",m:\"A \u00e1gua acess\u00edvel a todos, sempre presente. Fonte de sabedoria partilhada \u2014 mant\u00e9m-na limpa e acess\u00edvel a quem precisa.\"},\n                49:{h:\"\u9769\",p:\"G\u00e9\",n:\"A Revolu\u00e7\u00e3o\",m:\"O fogo sob o lago, transformando. Mudan\u00e7a necess\u00e1ria e justa \u2014 age quando o momento estiver maduro, n\u00e3o antes.\"},\n                50:{h:\"\u9f0e\",p:\"D\u01d0ng\",n:\"O Caldeir\u00e3o\",m:\"O fogo sobre o vento, transformando o alimento. Refinamento e nutri\u00e7\u00e3o atrav\u00e9s da transforma\u00e7\u00e3o \u2014 prepara-te para servir os outros.\"},\n                51:{h:\"\u9707\",p:\"Zh\u00e8n\",n:\"O Despertar\",m:\"Trov\u00e3o sobre trov\u00e3o, choque repentino. Um abalo desperta aten\u00e7\u00e3o \u2014 mant\u00e9m a calma interior no meio do choque s\u00fabito.\"},\n                52:{h:\"\u826e\",p:\"G\u00e8n\",n:\"A Quietude\",m:\"Montanha sobre montanha, im\u00f3vel. Aprende a parar no momento certo \u2014 a quietude interior traz clareza duradoura.\"},\n                53:{h:\"\u6f38\",p:\"Ji\u00e0n\",n:\"Desenvolvimento Gradual\",m:\"A \u00e1rvore cresce devagar na montanha. Progresso lento e constante, como o crescimento natural \u2014 a paci\u00eancia \u00e9 a chave.\"},\n                54:{h:\"\u6b78\u59b9\",p:\"Gu\u012b M\u00e8i\",n:\"A Jovem Noiva\",m:\"O trov\u00e3o sobre o lago, uma uni\u00e3o desigual. Pap\u00e9is e expectativas exigem cuidado \u2014 age com integridade apesar do desequil\u00edbrio.\"},\n                55:{h:\"\u8c50\",p:\"F\u0113ng\",n:\"A Abund\u00e2ncia\",m:\"O trov\u00e3o e o rel\u00e2mpago no seu auge. Momento de plenitude e clareza \u2014 aproveita-o, pois o pico \u00e9 passageiro.\"},\n                56:{h:\"\u65c5\",p:\"L\u01da\",n:\"O Viajante\",m:\"O fogo sobre a montanha, sem ra\u00edzes fixas. Tempo de deslocamento e adapta\u00e7\u00e3o \u2014 viaja com leveza e discri\u00e7\u00e3o.\"},\n                57:{h:\"\u5dfd\",p:\"X\u00f9n\",n:\"O Suave\",m:\"Vento sobre vento, penetrante e cont\u00ednuo. Influ\u00eancia gradual e persistente \u2014 a suavidade bem dirigida vence a resist\u00eancia.\"},\n                58:{h:\"\u514c\",p:\"Du\u00ec\",n:\"A Alegria\",m:\"Lago sobre lago, satisfa\u00e7\u00e3o partilhada. Comunica\u00e7\u00e3o aberta e alegria genu\u00edna fortalecem os la\u00e7os \u2014 partilha o que \u00e9 bom.\"},\n                59:{h:\"\u6e19\",p:\"Hu\u00e0n\",n:\"A Dispers\u00e3o\",m:\"O vento sobre a \u00e1gua, dissolvendo o r\u00edgido. Dissolve tens\u00f5es acumuladas \u2014 une as pessoas atrav\u00e9s de um prop\u00f3sito comum.\"},\n                60:{h:\"\u7bc0\",p:\"Ji\u00e9\",n:\"A Limita\u00e7\u00e3o\",m:\"A \u00e1gua contida pelo lago. Estabelece limites claros e razo\u00e1veis \u2014 a disciplina moderada sustenta o que \u00e9 valioso.\"},\n                61:{h:\"\u4e2d\u5b5a\",p:\"Zh\u014dng F\u00fa\",n:\"Verdade Interior\",m:\"O vento sobre o lago, tocando o oculto. Sinceridade profunda que atravessa barreiras \u2014 a confian\u00e7a verdadeira une o que parecia separado.\"},\n                62:{h:\"\u5c0f\u904e\",p:\"Xi\u01ceo Gu\u00f2\",n:\"Pequeno Excesso\",m:\"O trov\u00e3o na montanha, um exagero contido. Cuida dos pequenos detalhes com aten\u00e7\u00e3o redobrada \u2014 n\u00e3o tentes grandes voos agora.\"},\n                63:{h:\"\u65e2\u6fdf\",p:\"J\u00ec J\u00ec\",n:\"Depois da Conclus\u00e3o\",m:\"\u00c1gua sobre fogo, equil\u00edbrio alcan\u00e7ado. Um ciclo completou-se com sucesso \u2014 mant\u00e9m vigil\u00e2ncia para que a ordem n\u00e3o se desfa\u00e7a.\"},\n                64:{h:\"\u672a\u6fdf\",p:\"W\u00e8i J\u00ec\",n:\"Antes da Conclus\u00e3o\",m:\"Fogo sobre \u00e1gua, quase l\u00e1. Falta o \u00faltimo passo \u2014 avan\u00e7a com cuidado e m\u00e9todo at\u00e9 completar a travessia.\"}\n            };\n\n            \/* ---------------------------------------------------------\n               Estado\n            ---------------------------------------------------------- *\/\n            var busy = false;\n            var history = [];\n            var reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n            function trigramIdFromLines(a) {\n                for (var id in TRIGRAMS) {\n                    var L = TRIGRAMS[id].lines;\n                    if (L[0] === a[0] && L[1] === a[1] && L[2] === a[2]) { return id; }\n                }\n                return null;\n            }\n\n            function castCoins() {\n                \/\/ 2 = cara yin (valor 2), 3 = cara yang (valor 3) \u2014 soma de 3 moedas: 6,7,8,9\n                var coins = [0,0,0];\n                var sum = 0;\n                for (var i=0;i<3;i++){\n                    var v = Math.random() > 0.5 ? 3 : 2;\n                    coins[i] = v;\n                    sum += v;\n                }\n                var yang = (sum === 7 || sum === 9);\n                var changing = (sum === 6 || sum === 9);\n                return { coins: coins, sum: sum, yang: yang, changing: changing };\n            }\n\n            function animateCoins(coinEls, result, done) {\n                if (reduceMotion) {\n                    paintCoins(coinEls, result);\n                    done();\n                    return;\n                }\n                coinEls.forEach(function (el) { el.classList.add('is-flipping'); });\n                setTimeout(function () {\n                    coinEls.forEach(function (el) { el.classList.remove('is-flipping'); });\n                    paintCoins(coinEls, result);\n                    setTimeout(done, 260);\n                }, 550);\n            }\n\n            function paintCoins(coinEls, result) {\n                for (var i=0;i<3;i++){\n                    var isYang = result.coins[i] === 3;\n                    coinEls[i].textContent = isYang ? '\u967d' : '\u9670';\n                    coinEls[i].classList.toggle('is-yin', !isYang);\n                }\n            }\n\n            function buildLineRow(index, line) {\n                var row = document.createElement('div');\n                row.className = 'icdp-line-row' + (line.changing ? ' icdp-line-changing' : '');\n                row.style.animationDelay = '0s';\n\n                var num = document.createElement('span');\n                num.className = 'icdp-line-num';\n                num.textContent = String(index + 1);\n\n                var lineEl = document.createElement('div');\n                lineEl.className = 'icdp-line ' + (line.yang ? 'is-yang' : 'is-yin');\n\n                if (line.yang) {\n                    var bar = document.createElement('div');\n                    bar.className = 'icdp-line-bar';\n                    lineEl.appendChild(bar);\n                } else {\n                    var b1 = document.createElement('div'); b1.className = 'icdp-line-bar';\n                    var b2 = document.createElement('div'); b2.className = 'icdp-line-bar';\n                    lineEl.appendChild(b1); lineEl.appendChild(b2);\n                }\n\n                var dot = document.createElement('span');\n                dot.className = 'icdp-line-dot';\n\n                row.appendChild(num);\n                row.appendChild(lineEl);\n                row.appendChild(dot);\n                return row;\n            }\n\n            function resolveHexagram(linesYang) {\n                var lowerId = trigramIdFromLines(linesYang.slice(0,3));\n                var upperId = trigramIdFromLines(linesYang.slice(3,6));\n                var number = KINGWEN[lowerId][upperId];\n                return { number: number, lowerId: lowerId, upperId: upperId, data: HEX[number] };\n            }\n\n            function miniHexMarkup(linesYang) {\n                var html = '';\n                for (var i=0;i<6;i++){\n                    var yang = linesYang[i] === 1;\n                    html += '<div class=\"tl ' + (yang ? 'y' : 'n') + '\">' + (yang ? '<div class=\"b\"><\/div>' : '<div class=\"b\"><\/div><div class=\"b\"><\/div>') + '<\/div>';\n                }\n                return '<div class=\"icdp-transform-mini\">' + html + '<\/div>';\n            }\n\n            function renderReading(session) {\n                els.empty.hidden = true;\n                els.content.hidden = false;\n\n                var primary = session.primary;\n                var trigLower = TRIGRAMS[primary.lowerId];\n                var trigUpper = TRIGRAMS[primary.upperId];\n\n                var html = '';\n                html += '<div class=\"icdp-reading-head\">';\n                html += '  <div class=\"icdp-seal\" data-el=\"seal\"><small>N.\u00ba<\/small><b>' + primary.number + '<\/b><span class=\"icdp-seal-hanzi\">' + primary.data.h + '<\/span><\/div>';\n                html += '  <div class=\"icdp-title-block\">';\n                html += '    <h2>' + primary.data.n + '<\/h2>';\n                html += '    <p class=\"icdp-pinyin\">' + primary.data.p + ' \u00b7 Hexagrama ' + primary.number + '<\/p>';\n                html += '    <div class=\"icdp-trigrams\">';\n                html += '      <span><b>' + trigUpper.symbol + '<\/b>' + trigUpper.name + ' (superior)<\/span>';\n                html += '      <span><b>' + trigLower.symbol + '<\/b>' + trigLower.name + ' (inferior)<\/span>';\n                html += '    <\/div>';\n                html += '  <\/div>';\n                html += '<\/div>';\n\n                html += '<div class=\"icdp-meaning\"><p>' + primary.data.m + '<\/p><\/div>';\n\n                if (session.changingIdx.length) {\n                    html += '<div class=\"icdp-changing-block\">';\n                    html += '<h4>Linhas em Muta\u00e7\u00e3o<\/h4>';\n                    html += '<p>Linha' + (session.changingIdx.length > 1 ? 's' : '') + ' ' + session.changingIdx.join(', ') + ' \u2014 o momento cont\u00e9m uma tens\u00e3o que j\u00e1 se est\u00e1 a transformar. Presta aten\u00e7\u00e3o especial a essa posi\u00e7\u00e3o na tua situa\u00e7\u00e3o.<\/p>';\n                    html += '<\/div>';\n\n                    if (session.transformed) {\n                        var t = session.transformed;\n                        html += '<div class=\"icdp-transform\">';\n                        html += miniHexMarkup(session.transformedLines);\n                        html += '<span class=\"icdp-transform-arrow\">\u2192<\/span>';\n                        html += '<div class=\"icdp-transform-text\"><strong>' + t.data.n + ' \u00b7 N.\u00ba ' + t.number + '<\/strong><span>Hexagrama de transforma\u00e7\u00e3o \u2014 para onde a situa\u00e7\u00e3o evolui.<\/span><\/div>';\n                        html += '<\/div>';\n                    }\n                }\n\n                html += '<div class=\"icdp-copy-row\"><button class=\"icdp-copy-btn\" data-el=\"copy\">Copiar leitura<\/button><\/div>';\n\n                els.content.innerHTML = html;\n\n                var sealEl = els.content.querySelector('[data-el=\"seal\"]');\n                requestAnimationFrame(function () { sealEl.classList.add('icdp-stamp-in'); });\n\n                var copyBtn = els.content.querySelector('[data-el=\"copy\"]');\n                copyBtn.addEventListener('click', function () { copySummary(session); });\n            }\n\n            function copySummary(session) {\n                var lines = [];\n                lines.push('I Ching \u00b7 Hexagrama ' + session.primary.number + ' \u2014 ' + session.primary.data.n + ' (' + session.primary.data.p + ')');\n                lines.push(session.primary.data.m);\n                if (session.changingIdx.length) {\n                    lines.push('Linhas em muta\u00e7\u00e3o: ' + session.changingIdx.join(', '));\n                    if (session.transformed) {\n                        lines.push('Transforma-se em: Hexagrama ' + session.transformed.number + ' \u2014 ' + session.transformed.data.n);\n                    }\n                }\n                var text = lines.join('\\n');\n                if (navigator.clipboard && navigator.clipboard.writeText) {\n                    navigator.clipboard.writeText(text).catch(function () {});\n                }\n            }\n\n            function addToHistory(session) {\n                history.unshift(session);\n                if (history.length > 12) { history.pop(); }\n                renderHistory();\n            }\n\n            function renderHistory() {\n                if (!history.length) {\n                    els.history.innerHTML = '<p class=\"icdp-history-empty\">Ainda sem consultas nesta sess\u00e3o.<\/p>';\n                    return;\n                }\n                els.history.innerHTML = '';\n                history.forEach(function (session) {\n                    var chip = document.createElement('button');\n                    chip.className = 'icdp-chip';\n                    chip.type = 'button';\n                    chip.title = session.primary.number + ' \u2014 ' + session.primary.data.n;\n                    chip.textContent = session.primary.number;\n                    chip.addEventListener('click', function () { renderReading(session); });\n                    els.history.appendChild(chip);\n                });\n            }\n\n            function setBusy(state) {\n                busy = state;\n                els.castBtn.disabled = state;\n                els.resetBtn.disabled = state;\n            }\n\n            function resetAltar() {\n                els.hexBox.innerHTML = '<p class=\"icdp-hex-placeholder\">O hexagrama ser\u00e1 constru\u00eddo aqui, linha a linha, de baixo para cima.<\/p>';\n                var coinEls = els.coinsBox.querySelectorAll('[data-el=\"coin\"]');\n                coinEls.forEach(function (el) { el.textContent = '\u967d'; el.classList.remove('is-yin'); });\n            }\n\n            function resetReading() {\n                els.content.hidden = true;\n                els.content.innerHTML = '';\n                els.empty.hidden = false;\n            }\n\n            function castHexagram() {\n                if (busy) { return; }\n                setBusy(true);\n                resetAltar();\n                resetReading();\n\n                var linesYang = [];\n                var changingIdx = [];\n                var coinEls = Array.prototype.slice.call(els.coinsBox.querySelectorAll('[data-el=\"coin\"]'));\n\n                function castNext(i) {\n                    if (i >= 6) {\n                        var transformedLines = null;\n                        var transformed = null;\n                        if (changingIdx.length) {\n                            transformedLines = linesYang.map(function (v, idx) {\n                                return changingIdx.indexOf(idx + 1) !== -1 ? (v ? 0 : 1) : v;\n                            });\n                            transformed = resolveHexagram(transformedLines);\n                        }\n                        var primary = resolveHexagram(linesYang);\n                        var session = {\n                            primary: primary,\n                            changingIdx: changingIdx,\n                            transformed: transformed,\n                            transformedLines: transformedLines\n                        };\n                        renderReading(session);\n                        addToHistory(session);\n                        setBusy(false);\n                        return;\n                    }\n\n                    var result = castCoins();\n                    animateCoins(coinEls, result, function () {\n                        linesYang.push(result.yang ? 1 : 0);\n                        if (result.changing) { changingIdx.push(i + 1); }\n\n                        var row = buildLineRow(i, { yang: result.yang, changing: result.changing });\n                        if (i === 0) { els.hexBox.innerHTML = ''; }\n                        els.hexBox.appendChild(row);\n\n                        setTimeout(function () { castNext(i + 1); }, reduceMotion ? 60 : 260);\n                    });\n                }\n\n                castNext(0);\n            }\n\n            function fullReset() {\n                if (busy) { return; }\n                resetAltar();\n                resetReading();\n            }\n\n            els.castBtn.addEventListener('click', castHexagram);\n            els.resetBtn.addEventListener('click', fullReset);\n\n        })();\n        <\/script>\n        \n[abertura_iching]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eeafcb6 elementor-hidden-mobile e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"eeafcb6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0e629fa elementor-widget elementor-widget-spacer\" data-id=\"0e629fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>[abertura_iching]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-2655","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/comments?post=2655"}],"version-history":[{"count":46,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2655\/revisions"}],"predecessor-version":[{"id":2884,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2655\/revisions\/2884"}],"wp:attachment":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/media?parent=2655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}