{"id":156,"date":"2026-07-18T03:00:28","date_gmt":"2026-07-18T03:00:28","guid":{"rendered":"https:\/\/trubianvillage.com\/vangu\/?page_id=156"},"modified":"2026-07-18T03:41:23","modified_gmt":"2026-07-18T03:41:23","slug":"master-covenant","status":"publish","type":"page","link":"https:\/\/trubianvillage.com\/vangu\/master-covenant\/","title":{"rendered":"Master Covenant"},"content":{"rendered":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<p><style>\r\n:root {\r\n    --bg: #070a0d;\r\n    --panel: #0d1722;\r\n    --gold: #d7a63b;\r\n    --text: #f4ead2;\r\n    --muted: #bcae8c;\r\n    --line: #72551e;\r\n}\r\n\r\n* {\r\n    box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n    margin: 0;\r\n    background: var(--bg);\r\n    color: var(--text);\r\n    font-family: Georgia, serif;\r\n    line-height: 1.65;\r\n}\r\n\r\n.wrap {\r\n    max-width: 1150px;\r\n    margin: auto;\r\n    padding: 24px;\r\n}\r\n\r\n.hero {\r\n    display: grid;\r\n    grid-template-columns: minmax(260px,420px) 1fr;\r\n    gap: 28px;\r\n    align-items: start;\r\n}\r\n\r\n.cover {\r\n    width: 100%;\r\n    object-fit: contain;\r\n    filter: drop-shadow(0 15px 25px #000);\r\n}\r\n\r\n.panel {\r\n    background: var(--panel);\r\n    border: 1px solid var(--line);\r\n    border-radius: 12px;\r\n    padding: 22px;\r\n}\r\n\r\nh1,\r\nh2 {\r\n    color: var(--gold);\r\n    line-height: 1.15;\r\n}\r\n\r\n.controls {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 9px;\r\n    margin: 18px 0;\r\n}\r\n\r\nbutton,\r\nselect {\r\n    background: #172331;\r\n    color: var(--text);\r\n    border: 1px solid var(--line);\r\n    padding: 10px 13px;\r\n    border-radius: 7px;\r\n    font: inherit;\r\n}\r\n\r\nbutton {\r\n    cursor: pointer;\r\n}\r\n\r\nbutton:hover {\r\n    border-color: var(--gold);\r\n}\r\n\r\n.chapters {\r\n    max-height: 390px;\r\n    overflow: auto;\r\n    margin-top: 20px;\r\n    border-top: 1px solid var(--line);\r\n    padding-top: 10px;\r\n}\r\n\r\n.text {\r\n    white-space: pre-wrap;\r\n    font-size: 1.08rem;\r\n}\r\n\r\n@media(max-width:800px) {\r\n    .hero {\r\n        grid-template-columns: 1fr;\r\n    }\r\n}\r\n<\/style><\/p>\r\n<div class=\"wrap\">\r\n<div class=\"hero\"><br \/>\r\n<div class=\"panel\">\r\n<h1>The Tree &amp; River Master Covenant Trust<\/h1>\r\n<p>The Supreme Constitutional Trust of the Tree &amp; River Civilization<\/p>\r\n<div class=\"controls\"><button id=\"play\">\u25b6 Play<\/button> <button id=\"pause\">\u23f8 Pause<\/button> <button id=\"resume\">\u23ef Resume<\/button> <button id=\"stop\">\u25a0 Stop<\/button><\/div>\r\n<label for=\"voices\">Narrator Voice<\/label><select id=\"voices\"><\/select>\r\n<div class=\"rate\"><label for=\"rate\">Speed<\/label> <input id=\"rate\" max=\"1.6\" min=\"0.6\" step=\"0.1\" type=\"range\" value=\"1\" \/> <span id=\"rv\">1.0\u00d7<\/span><\/div>\r\n<div id=\"status\">Ready.<\/div>\r\n<div id=\"chapters\" class=\"chapters\">\u00a0<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"panel reader\">\r\n<h2 id=\"title\">\u00a0<\/h2>\r\n<div id=\"text\" class=\"text\">\u00a0<\/div>\r\n<div class=\"nav\"><button id=\"prev\">\u2190 Previous<\/button> <button id=\"next\">Next \u2192<\/button><\/div>\r\n<\/div>\r\n<\/div>\r\n<p><script>\r\n\r\n\/*\r\nThe full version contains all 48 sections of your\r\n124-page Master Covenant document here.\r\n*\/\r\n\r\nconst sections = [\r\n\r\n    {\r\n        title: \"DEDICATION\",\r\n        text: `\r\nTHE TREE & RIVER MASTER COVENANT TRUST\r\n\r\nThe Supreme Constitutional Trust of the Tree & River Civilization\r\n\r\nEstablished for the Restoration, Preservation,\r\nAdministration, and Perpetual Advancement of the\r\nAmerican Tribal Nationals, Historically Known as\r\nthe People of the Record.\r\n\r\nDEDICATION\r\n\r\nThis Master Covenant Trust is respectfully dedicated\r\nto the Breath, the Source of Life from whom all\r\nstewardship proceeds...\r\n`\r\n    },\r\n\r\n    {\r\n        title: \"FOUNDING MAXIM\",\r\n        text: `\r\nFrom the Breath comes Life.\r\nFrom Life comes Family.\r\nFrom Family comes Bloodline.\r\nFrom Bloodline comes Nation.\r\nFrom Nation comes the Covenant.\r\nFrom the Covenant comes the Constitutional Trust.\r\nFrom the Constitutional Trust comes Constitutional Government.\r\nFrom Constitutional Government comes Stewardship.\r\nFrom Stewardship comes Prosperity.\r\nFrom Prosperity comes Peace.\r\nFrom Peace comes the Strength of the Civilization.\r\nFrom the Civilization comes the inheritance of generations yet unborn.\r\n\r\nTherefore, let stewardship never cease.\r\n`\r\n    }\r\n\r\n    \/*\r\n    The complete file continues with all Titles,\r\n    Articles, and constitutional sections.\r\n    *\/\r\n];\r\n\r\n\r\nlet current = 0;\r\n\r\nlet voices = [];\r\n\r\nlet speaking = false;\r\n\r\n\r\nconst title =\r\n    document.getElementById(\"title\");\r\n\r\nconst text =\r\n    document.getElementById(\"text\");\r\n\r\nconst status =\r\n    document.getElementById(\"status\");\r\n\r\nconst voiceSelect =\r\n    document.getElementById(\"voices\");\r\n\r\nconst rate =\r\n    document.getElementById(\"rate\");\r\n\r\nconst chapters =\r\n    document.getElementById(\"chapters\");\r\n\r\n\r\nfunction loadVoices() {\r\n\r\n    voices =\r\n        speechSynthesis.getVoices();\r\n\r\n    voiceSelect.innerHTML = \"\";\r\n\r\n    voices.forEach((voice, index) => {\r\n\r\n        const option =\r\n            document.createElement(\"option\");\r\n\r\n        option.value = index;\r\n\r\n        option.textContent =\r\n            voice.name +\r\n            \" (\" +\r\n            voice.lang +\r\n            \")\";\r\n\r\n        voiceSelect.appendChild(option);\r\n\r\n    });\r\n\r\n}\r\n\r\n\r\nfunction render(index) {\r\n\r\n    current =\r\n        Math.max(\r\n            0,\r\n            Math.min(\r\n                index,\r\n                sections.length - 1\r\n            )\r\n        );\r\n\r\n    title.textContent =\r\n        sections[current].title;\r\n\r\n    text.textContent =\r\n        sections[current].text;\r\n\r\n    [...chapters.children]\r\n        .forEach((button, index) => {\r\n\r\n            button.classList.toggle(\r\n                \"active\",\r\n                index === current\r\n            );\r\n\r\n        });\r\n\r\n    status.textContent =\r\n        \"Section \" +\r\n        (current + 1) +\r\n        \" of \" +\r\n        sections.length;\r\n\r\n}\r\n\r\n\r\nsections.forEach(\r\n    (section, index) => {\r\n\r\n        const button =\r\n            document.createElement(\"button\");\r\n\r\n        button.textContent =\r\n            (index + 1) +\r\n            \". \" +\r\n            section.title;\r\n\r\n        button.onclick = () => {\r\n\r\n            stopAudio();\r\n\r\n            render(index);\r\n\r\n        };\r\n\r\n        chapters.appendChild(button);\r\n\r\n    }\r\n);\r\n\r\n\r\nfunction stopAudio() {\r\n\r\n    speechSynthesis.cancel();\r\n\r\n    speaking = false;\r\n\r\n    status.textContent =\r\n        \"Stopped.\";\r\n\r\n}\r\n\r\n\r\nfunction speakCurrentSection() {\r\n\r\n    stopAudio();\r\n\r\n    const rawText =\r\n        sections[current].text;\r\n\r\n    \/*\r\n    Split large sections into sentences.\r\n    This helps prevent browsers from stopping\r\n    during very long speech passages.\r\n    *\/\r\n\r\n    const parts =\r\n        rawText.match(\r\n            \/[^.!?]+[.!?]+|[^.!?]+$\/g\r\n        ) || [rawText];\r\n\r\n\r\n    let sentenceIndex = 0;\r\n\r\n    speaking = true;\r\n\r\n\r\n    function speakNext() {\r\n\r\n        if (\r\n            !speaking ||\r\n            sentenceIndex >= parts.length\r\n        ) {\r\n\r\n            speaking = false;\r\n\r\n            status.textContent =\r\n                \"Finished section \" +\r\n                (current + 1) +\r\n                \".\";\r\n\r\n            return;\r\n\r\n        }\r\n\r\n\r\n        const utterance =\r\n            new SpeechSynthesisUtterance(\r\n                parts[sentenceIndex++].trim()\r\n            );\r\n\r\n\r\n        const selectedVoice =\r\n            voices[\r\n                Number(\r\n                    voiceSelect.value\r\n                )\r\n            ];\r\n\r\n\r\n        if (selectedVoice) {\r\n\r\n            utterance.voice =\r\n                selectedVoice;\r\n\r\n        }\r\n\r\n\r\n        utterance.rate =\r\n            Number(rate.value);\r\n\r\n\r\n        utterance.onend =\r\n            speakNext;\r\n\r\n\r\n        utterance.onerror =\r\n            () => {\r\n\r\n                speaking = false;\r\n\r\n                status.textContent =\r\n                    \"Speech playback error.\";\r\n\r\n            };\r\n\r\n\r\n        status.textContent =\r\n            \"Reading section \" +\r\n            (current + 1) +\r\n            \"\u2026\";\r\n\r\n\r\n        speechSynthesis.speak(\r\n            utterance\r\n        );\r\n\r\n    }\r\n\r\n\r\n    speakNext();\r\n\r\n}\r\n\r\n\r\ndocument\r\n    .getElementById(\"play\")\r\n    .onclick =\r\n    speakCurrentSection;\r\n\r\n\r\ndocument\r\n    .getElementById(\"pause\")\r\n    .onclick =\r\n    () => {\r\n\r\n        speechSynthesis.pause();\r\n\r\n        status.textContent =\r\n            \"Paused.\";\r\n\r\n    };\r\n\r\n\r\ndocument\r\n    .getElementById(\"resume\")\r\n    .onclick =\r\n    () => {\r\n\r\n        speechSynthesis.resume();\r\n\r\n        status.textContent =\r\n            \"Resumed.\";\r\n\r\n    };\r\n\r\n\r\ndocument\r\n    .getElementById(\"stop\")\r\n    .onclick =\r\n    stopAudio;\r\n\r\n\r\ndocument\r\n    .getElementById(\"prev\")\r\n    .onclick =\r\n    () => {\r\n\r\n        stopAudio();\r\n\r\n        render(\r\n            current - 1\r\n        );\r\n\r\n    };\r\n\r\n\r\ndocument\r\n    .getElementById(\"next\")\r\n    .onclick =\r\n    () => {\r\n\r\n        stopAudio();\r\n\r\n        render(\r\n            current + 1\r\n        );\r\n\r\n    };\r\n\r\n\r\nrate.oninput =\r\n    () => {\r\n\r\n        document\r\n            .getElementById(\"rv\")\r\n            .textContent =\r\n            Number(rate.value)\r\n            .toFixed(1) +\r\n            \"\u00d7\";\r\n\r\n    };\r\n\r\n\r\nspeechSynthesis\r\n    .onvoiceschanged =\r\n    loadVoices;\r\n\r\n\r\nloadVoices();\r\n\r\nrender(0);\r\n\r\n<\/script><\/p>\r\n\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-156","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/pages\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":4,"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/pages\/156\/revisions"}],"predecessor-version":[{"id":163,"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/pages\/156\/revisions\/163"}],"wp:attachment":[{"href":"https:\/\/trubianvillage.com\/vangu\/wp-json\/wp\/v2\/media?parent=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}