{"id":19,"date":"2026-08-19T11:01:41","date_gmt":"2026-08-19T11:01:41","guid":{"rendered":"https:\/\/crypto-grandpa.com.ua\/?st-import=09365df8ade7d37359edc5f2970c9438"},"modified":"2026-09-08T08:24:21","modified_gmt":"2026-09-08T08:24:21","slug":"contact","status":"publish","type":"page","link":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/contact\/","title":{"rendered":"\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0438"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"19\" class=\"elementor elementor-19\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15884395 e-con-full cg-main-hero e-flex e-con e-parent\" data-id=\"15884395\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-d3bfaa1 e-con-full e-flex e-con e-child\" data-id=\"d3bfaa1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5244f15 elementor-widget elementor-widget-heading\" data-id=\"5244f15\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">COMMUNICATION \u2022 PARTNERSHIP \u2022 SUPPORT<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9b030b elementor-widget elementor-widget-heading\" data-id=\"b9b030b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">CONTACT US<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d44e079 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d44e079\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Questions, ideas, partnerships or cooperation \u2014 we are always ready to hear from you.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ad9bebf e-flex e-con-boxed e-con e-parent\" data-id=\"7ad9bebf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3685ee1e elementor-widget elementor-widget-html\" data-id=\"3685ee1e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.cg-site-dock {\n    z-index: 20000 !important;\n}\n<\/style>\n\n<div class=\"cg-site-dock\">\n\n    <a class=\"cg-dock-item cg-dock-special\"\n       href=\"\/support-us\/\"\n       data-title=\"SUPPORT OUR MISSION\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/00_SUPPORT_MISSION.png\"\n             alt=\"Support Our Mission\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Education for All\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/01_education_for_all.png\"\n             alt=\"Education for All\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Digital Literacy\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/02_digital_literacy.png\"\n             alt=\"Digital Literacy\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Support Seniors\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/03_support_seniors.png\"\n             alt=\"Support Seniors\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Working Together\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/04_working_together.png\"\n             alt=\"Working Together\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Helping Grandchildren\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/05_helping_grandchildren.png\"\n             alt=\"Helping Grandchildren\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Economic Development\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/06_economic_development.png\"\n             alt=\"Economic Development\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Volunteer Support\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/07_volunteer_support.png\"\n             alt=\"Volunteer Support\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Support Services\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/08_support_services.png\"\n             alt=\"Support Services\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Financial Literacy\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/09_financial_literacy.png\"\n             alt=\"Financial Literacy\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Technology & Innovation\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/10_technology_innovation.png\"\n             alt=\"Technology & Innovation\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Community Development\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/11_community_development.png\"\n             alt=\"Community Development\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Cyber Safety\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/12_cyber_safety.png\"\n             alt=\"Cyber Safety\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Intergenerational Support\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/13_intergenerational_support.png\"\n             alt=\"Intergenerational Support\">\n    <\/a>\n\n    <a class=\"cg-dock-item\" href=\"#\" data-title=\"Programming\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/14_programming.png\"\n             alt=\"Programming\">\n    <\/a>\n\n    <a class=\"cg-dock-item cg-dock-special\"\n       href=\"\/support-our-software\/\"\n       data-title=\"SUPPORT OUR SOFTWARE\">\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/08\/15_SUPPORT_SOFT_.png\"\n             alt=\"Support Our Software\">\n    <\/a>\n\n<\/div>\n\n<script>\n(function () {\n\n    function initCGDock() {\n\n        const dock = document.querySelector('.cg-site-dock');\n        const hero = document.querySelector('.cg-main-hero');\n        const footer = document.querySelector('#colophon');\n\n        if (!dock) return;\n\n        \/*\n         * IMPORTANT:\n         * Move Dock directly into BODY so Elementor,\n         * Matryoshka cards or other containers cannot\n         * place it inside a lower stacking context.\n         *\/\n        if (dock.parentElement !== document.body) {\n            document.body.appendChild(dock);\n        }\n\n        \/*\n         * Keep Dock above Matryoshka cards and sections.\n         *\/\n        dock.style.zIndex = '20000';\n\n        const FIXED_BOTTOM = 110;\n        const HERO_GAP = 24;\n        const TRANSITION_DISTANCE = 180;\n\n        function updateCGDock() {\n\n            const scrollY =\n                window.scrollY ||\n                document.documentElement.scrollTop ||\n                0;\n\n            \/* ---------------------------------\n               1. POSITION AT HERO ON PAGE LOAD\n               --------------------------------- *\/\n\n            if (hero) {\n\n                const heroRect = hero.getBoundingClientRect();\n\n                \/* Absolute bottom of Hero *\/\n                const heroDocumentBottom =\n                    heroRect.bottom + scrollY;\n\n                \/*\n                 * Dock sits HERO_GAP pixels\n                 * above the bottom edge of Hero\n                 *\/\n                const heroBottomPosition = Math.max(\n                    24,\n                    window.innerHeight -\n                    heroDocumentBottom +\n                    HERO_GAP\n                );\n\n                \/*\n                 * Smoothly move from Hero position\n                 * to normal fixed position\n                 *\/\n                const progress = Math.min(\n                    scrollY \/ TRANSITION_DISTANCE,\n                    1\n                );\n\n                const currentBottom =\n                    heroBottomPosition +\n                    (FIXED_BOTTOM - heroBottomPosition) *\n                    progress;\n\n                dock.style.bottom =\n                    currentBottom + 'px';\n\n            } else {\n\n                dock.style.bottom =\n                    FIXED_BOTTOM + 'px';\n            }\n\n\n            \/* ---------------------------------\n               2. HIDE BEFORE FOOTER\n               --------------------------------- *\/\n\n            if (footer) {\n\n                const footerTop =\n                    footer.getBoundingClientRect().top;\n\n                \/*\n                 * Hide BEFORE Dock begins\n                 * covering footer content\n                 *\/\n                const hidePoint =\n                    window.innerHeight -\n                    (FIXED_BOTTOM + 85);\n\n                if (footerTop <= hidePoint) {\n\n                    dock.classList.add(\n                        'cg-dock-hidden'\n                    );\n\n                } else {\n\n                    dock.classList.remove(\n                        'cg-dock-hidden'\n                    );\n                }\n            }\n        }\n\n\n        updateCGDock();\n\n        window.addEventListener(\n            'scroll',\n            updateCGDock,\n            { passive: true }\n        );\n\n        window.addEventListener(\n            'resize',\n            updateCGDock\n        );\n    }\n\n\n    if (document.readyState === 'loading') {\n\n        document.addEventListener(\n            'DOMContentLoaded',\n            initCGDock\n        );\n\n    } else {\n\n        initCGDock();\n    }\n\n})();\n<\/script>\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-7c8b1882 e-flex e-con-boxed e-con e-parent\" data-id=\"7c8b1882\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2e801afd e-con-full e-flex e-con e-child\" data-id=\"2e801afd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bf2cf23 elementor-widget elementor-widget-html\" data-id=\"7bf2cf23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div\n    class=\"cg-json-engine-mount\"\n    data-manifest=\"https:\/\/stegotool.crypto-grandpa.com.ua\/wp-content\/uploads\/cg-matryoshka\/contact-official-organization\/manifest.json\"\n><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-470ea819 e-con-full e-flex e-con e-child\" data-id=\"470ea819\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f84e687 elementor-widget elementor-widget-html\" data-id=\"f84e687\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\n    \/* =========================================================\n       CG MATRYOSHKA ENGINE\n       DYNAMIC ACTIVE WORKSPACE\n       ========================================================= *\/\n\n    .cg-json-engine-mount {\n        position: relative;\n        width: 100%;\n        box-sizing: border-box;\n        overflow: visible;\n    }\n\n\n    \/* =========================================================\n       GENERATED ROW\n       ========================================================= *\/\n\n    .cg-json-engine-row {\n        width: 100%;\n\n        display: flex;\n        flex-direction: row;\n        flex-wrap: nowrap;\n\n        align-items: stretch;\n\n        gap: 40px;\n\n        box-sizing: border-box;\n\n        margin: 0 0 70px 0;\n\n        overflow: visible;\n\n        transition:\n            min-height 0.34s ease;\n    }\n\n\n    \/*\n     * \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043c\u0430\u0442\u0440\u0451\u0448\u043a\u0430:\n     * \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u043f\u0443\u0441\u0442\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0434 \u0444\u0443\u0442\u0435\u0440\u043e\u043c.\n     *\/\n    .cg-json-engine-row:last-child {\n        margin-bottom: 30px;\n    }\n\n\n    .cg-json-engine-icon-col {\n        flex: 0 0 28%;\n\n        width: 28%;\n        max-width: 28%;\n\n        min-width: 0;\n\n        display: flex;\n\n        align-items: flex-start;\n        justify-content: center;\n\n        box-sizing: border-box;\n\n        overflow: visible;\n    }\n\n\n    .cg-json-engine-content-col {\n        flex: 0 0 68%;\n\n        width: 68%;\n        max-width: 68%;\n\n        min-width: 0;\n\n        box-sizing: border-box;\n\n        overflow: visible;\n    }\n\n\n    .cg-json-engine-source {\n        position: relative;\n\n        width: 100%;\n\n        min-height: 300px;\n\n        overflow: visible;\n    }\n\n\n    \/* =========================================================\n       ICON\n       ========================================================= *\/\n\n    .cg-json-engine-icon-ui {\n        width: 100%;\n\n        display: flex;\n        flex-direction: column;\n\n        align-items: center;\n        justify-content: flex-start;\n\n        overflow: visible;\n    }\n\n\n    .cg-json-engine-icon-button {\n        width: 220px;\n        height: 220px;\n\n        display: flex;\n\n        align-items: center;\n        justify-content: center;\n\n        padding: 0;\n        margin: 0;\n\n        border: 0 !important;\n        outline: 0 !important;\n\n        background: transparent !important;\n\n        box-shadow: none !important;\n\n        cursor: pointer;\n\n        overflow: visible;\n\n        appearance: none;\n        -webkit-appearance: none;\n\n        transition:\n            transform 0.22s ease,\n            filter 0.22s ease;\n    }\n\n\n    .cg-json-engine-icon-image {\n        display: block;\n\n        width: 220px;\n        height: 220px;\n\n        object-fit: contain;\n\n        background: transparent !important;\n\n        mix-blend-mode: normal;\n\n        pointer-events: none;\n    }\n\n\n    .cg-json-engine-icon-button:hover {\n        transform: scale(1.055);\n\n        filter:\n            drop-shadow(\n                0 0 8px\n                rgba(240, 199, 107, 0.55)\n            );\n    }\n\n\n    .cg-json-engine-icon-button.is-active {\n        transform: scale(1.055);\n\n        filter:\n            drop-shadow(\n                0 0 13px\n                rgba(240, 199, 107, 0.75)\n            );\n    }\n\n\n    .cg-json-engine-icon-button:focus,\n    .cg-json-engine-icon-button:active,\n    .cg-json-engine-icon-button:focus-visible {\n        outline: none !important;\n\n        background: transparent !important;\n\n        box-shadow: none !important;\n    }\n\n\n    \/* =========================================================\n       CARD TITLE UNDER ICON\n       ========================================================= *\/\n\n    .cg-json-engine-card-title {\n        width: 250px;\n\n        min-height: 42px;\n\n        margin-top: 12px;\n\n        box-sizing: border-box;\n\n        color: #F0C76B;\n\n        font-size: 13px;\n        font-weight: 700;\n\n        line-height: 1.35;\n\n        letter-spacing: 1px;\n\n        text-align: center;\n        text-transform: uppercase;\n\n        opacity: 0;\n        visibility: hidden;\n\n        transform: translateY(-4px);\n\n        pointer-events: none;\n\n        transition:\n            opacity 0.20s ease,\n            visibility 0.20s ease,\n            transform 0.20s ease;\n    }\n\n\n    .cg-json-engine-card-title.is-visible {\n        opacity: 1;\n        visibility: visible;\n\n        transform: translateY(0);\n    }\n\n\n    \/* =========================================================\n       MATRYOSHKA\n       ========================================================= *\/\n\n    .cg-json-engine-matryoshka {\n        position: relative;\n\n        width: 100%;\n\n        overflow: visible;\n    }\n\n\n    .cg-json-engine-stage {\n        position: relative;\n\n        width: 100%;\n\n        height:\n            var(\n                --cg-cover-height,\n                340px\n            );\n\n        overflow: visible;\n\n        transition:\n            height 0.34s ease;\n    }\n\n\n    .cg-json-engine-matryoshka.is-active\n    .cg-json-engine-stage {\n        height:\n            var(\n                --cg-active-workspace-height,\n                900px\n            );\n    }\n\n\n    .cg-json-engine-matryoshka.is-manual\n    .cg-json-engine-stage {\n        height:\n            var(\n                --cg-manual-workspace-height,\n                900px\n            );\n    }\n\n\n    \/* =========================================================\n       COVER\n       ========================================================= *\/\n\n    .cg-json-engine-cover {\n        position: relative;\n\n        z-index: 300;\n\n        width: 100%;\n\n        height:\n            var(\n                --cg-cover-height,\n                340px\n            );\n\n        box-sizing: border-box;\n\n        padding:\n            34px\n            38px\n            76px\n            38px;\n\n        border:\n            1px solid\n            rgba(240, 199, 107, 0.88);\n\n        border-radius: 22px;\n\n        background:\n            linear-gradient(\n                145deg,\n                #0A1E36 0%,\n                #102D50 100%\n            );\n\n        box-shadow:\n            0 18px 45px\n            rgba(0, 0, 0, 0.38);\n\n        color: #FFFFFF;\n\n        overflow: hidden;\n    }\n\n\n    .cg-json-engine-cover-label {\n        margin-bottom: 14px;\n\n        color: #F0C76B;\n\n        font-size: 12px;\n        font-weight: 700;\n\n        line-height: 1.2;\n\n        letter-spacing: 2px;\n\n        text-transform: uppercase;\n    }\n\n\n    .cg-json-engine-cover h3 {\n        margin: 0 0 18px 0;\n\n        color: #F0C76B;\n\n        font-size: 30px;\n        font-weight: 700;\n\n        line-height: 1.15;\n    }\n\n\n    .cg-json-engine-cover p {\n        margin: 0 0 14px 0;\n\n        color: #FFFFFF;\n\n        font-size: 17px;\n\n        line-height: 1.55;\n    }\n\n\n    .cg-json-engine-cover-footer {\n        color: #F0C76B !important;\n\n        font-weight: 600;\n    }\n\n\n    \/* =========================================================\n       SCROLL TO EXPLORE\n       ========================================================= *\/\n\n    .cg-json-engine-hint {\n        position: absolute;\n\n        left: 50%;\n        bottom: 18px;\n\n        z-index: 320;\n\n        display: flex;\n        flex-direction: column;\n\n        align-items: center;\n        justify-content: center;\n\n        gap: 5px;\n\n        transform: translateX(-50%);\n\n        color: #F0C76B;\n\n        font-size: 12px;\n        font-weight: 700;\n\n        line-height: 1.1;\n\n        letter-spacing: 1.6px;\n\n        text-align: center;\n        text-transform: uppercase;\n\n        white-space: nowrap;\n\n        opacity: 0;\n        visibility: hidden;\n\n        pointer-events: none;\n\n        transition:\n            opacity 0.22s ease,\n            visibility 0.22s ease;\n    }\n\n\n    .cg-json-engine-matryoshka.is-active\n    .cg-json-engine-hint {\n        opacity: 1;\n        visibility: visible;\n    }\n\n\n    .cg-json-engine-hint-arrows {\n        display: block;\n\n        color: #F0C76B;\n\n        font-size: 17px;\n        font-weight: 700;\n\n        line-height: 1;\n\n        animation:\n            cgJsonEngineScrollArrow\n            1.35s\n            ease-in-out\n            infinite;\n    }\n\n\n    @keyframes cgJsonEngineScrollArrow {\n\n        0%,\n        100% {\n            opacity: 0.55;\n            transform: translateY(0);\n        }\n\n        50% {\n            opacity: 1;\n            transform: translateY(2px);\n        }\n\n    }\n\n\n    \/* =========================================================\n       CARDS\n       ========================================================= *\/\n\n    .cg-json-engine-card {\n        position: absolute;\n\n        top: 0;\n        left: 0;\n\n        z-index: 200;\n\n        width: 100%;\n\n        height:\n            var(\n                --cg-card-height,\n                340px\n            );\n\n        box-sizing: border-box;\n\n        padding:\n            56px\n            38px\n            30px\n            38px;\n\n        border:\n            1px solid\n            rgba(240, 199, 107, 0.84);\n\n        border-radius: 21px;\n\n        background:\n            linear-gradient(\n                145deg,\n                #081A30 0%,\n                #102D50 100%\n            );\n\n        box-shadow:\n            0 16px 38px\n            rgba(0, 0, 0, 0.34);\n\n        color: #FFFFFF;\n\n        opacity: 0;\n\n        pointer-events: none;\n\n        will-change:\n            transform,\n            opacity;\n\n        transition:\n            transform 0.16s linear,\n            opacity 0.14s ease,\n            box-shadow 0.25s ease;\n    }\n\n\n    .cg-json-engine-card h4 {\n        margin: 0 0 16px 0;\n\n        color: #F0C76B;\n\n        font-size: 23px;\n        font-weight: 700;\n\n        line-height: 1.25;\n    }\n\n\n    .cg-json-engine-card p {\n        margin: 0;\n\n        color: #FFFFFF;\n\n        font-size: 17px;\n\n        line-height: 1.58;\n    }\n\n\n    .cg-json-engine-card.is-manual-open {\n        z-index: 420 !important;\n\n        box-shadow:\n            0 23px 60px\n            rgba(0, 0, 0, 0.58);\n\n        transition:\n            transform 0.32s ease,\n            opacity 0.20s ease,\n            box-shadow 0.25s ease;\n    }\n\n\n    \/* =========================================================\n       NUMBERS\n       ========================================================= *\/\n\n    .cg-json-engine-tabs {\n        position: absolute;\n\n        inset: 0;\n\n        z-index: 500;\n\n        pointer-events: none;\n    }\n\n\n    .cg-json-engine-tab {\n        position: absolute;\n\n        top: 0;\n        left: 0;\n\n        min-width: 33px;\n        height: 22px;\n\n        display: flex;\n\n        align-items: center;\n        justify-content: center;\n\n        box-sizing: border-box;\n\n        padding: 0 6px;\n\n        border:\n            1px solid\n            rgba(240, 199, 107, 0.95) !important;\n\n        border-radius: 5px;\n\n        background:\n            rgba(7, 26, 51, 0.98) !important;\n\n        color:\n            #F0C76B !important;\n\n        font-size: 10px;\n        font-weight: 700;\n\n        line-height: 1;\n\n        letter-spacing: 0.7px;\n\n        opacity: 0;\n        visibility: hidden;\n\n        pointer-events: none;\n\n        cursor: default;\n\n        appearance: none;\n        -webkit-appearance: none;\n\n        outline: none !important;\n\n        box-shadow: none !important;\n\n        transition:\n            opacity 0.18s ease,\n            background-color 0.18s ease,\n            color 0.18s ease,\n            transform 0.16s linear;\n    }\n\n\n    .cg-json-engine-tab:focus,\n    .cg-json-engine-tab:active,\n    .cg-json-engine-tab:focus-visible {\n        background:\n            rgba(7, 26, 51, 0.98) !important;\n\n        color:\n            #F0C76B !important;\n\n        border-color:\n            #F0C76B !important;\n\n        outline: none !important;\n\n        box-shadow: none !important;\n    }\n\n\n    .cg-json-engine-matryoshka.is-assembled\n    .cg-json-engine-tab {\n        pointer-events: auto;\n\n        cursor: pointer;\n    }\n\n\n    .cg-json-engine-matryoshka.is-assembled\n    .cg-json-engine-tab:hover {\n        background:\n            #F0C76B !important;\n\n        color:\n            #071A33 !important;\n    }\n\n\n    \/* =========================================================\n       ERROR\n       ========================================================= *\/\n\n    .cg-json-engine-error {\n        width: 100%;\n\n        min-height: 260px;\n\n        display: flex;\n        flex-direction: column;\n\n        align-items: center;\n        justify-content: center;\n\n        gap: 10px;\n\n        box-sizing: border-box;\n\n        padding: 30px;\n\n        border:\n            1px solid\n            rgba(240, 199, 107, 0.65);\n\n        border-radius: 22px;\n\n        background: #0A1E36;\n\n        text-align: center;\n    }\n\n\n    .cg-json-engine-error strong {\n        color: #F0C76B;\n    }\n\n\n    .cg-json-engine-error span {\n        color: #FFFFFF;\n    }\n\n\n\n    \/* =========================================================\n       TABLET\n       ========================================================= *\/\n\n    @media (min-width: 768px) and (max-width: 1024px) {\n\n        .cg-json-engine-icon-button,\n        .cg-json-engine-icon-image {\n            width: 180px;\n            height: 180px;\n        }\n\n    }\n\n\n    \/* =========================================================\n       MOBILE\n       ========================================================= *\/\n\n    @media (max-width: 767px) {\n\n        .cg-json-engine-row {\n            flex-direction: column;\n\n            gap: 18px;\n\n            margin-bottom: 55px;\n        }\n\n\n        .cg-json-engine-row:last-child {\n            margin-bottom: 25px;\n        }\n\n\n        .cg-json-engine-icon-col,\n        .cg-json-engine-content-col {\n            flex: 0 0 100%;\n\n            width: 100%;\n            max-width: 100%;\n        }\n\n\n        .cg-json-engine-icon-button,\n        .cg-json-engine-icon-image {\n            width: 140px;\n            height: 140px;\n        }\n\n\n        .cg-json-engine-card-title {\n            width: 190px;\n\n            font-size: 11px;\n        }\n\n\n        .cg-json-engine-cover {\n            padding:\n                26px\n                24px\n                72px\n                24px;\n        }\n\n\n        .cg-json-engine-cover h3 {\n            font-size: 24px;\n        }\n\n\n        .cg-json-engine-cover p,\n        .cg-json-engine-card p {\n            font-size: 15px;\n        }\n\n\n        .cg-json-engine-card {\n            padding:\n                54px\n                26px\n                26px\n                28px;\n        }\n\n\n        .cg-json-engine-card h4 {\n            font-size: 20px;\n        }\n\n    }\n\n<\/style>\n\n\n<script>\n(function () {\n\n    'use strict';\n\n\n    \/* =========================================================\n       DESTROY PREVIOUS VERSION\n       ========================================================= *\/\n\n    if (\n        window.__CG_JSON_MATRYOSHKA_ENGINE__ &&\n        typeof window.__CG_JSON_MATRYOSHKA_ENGINE__.destroy ===\n        'function'\n    ) {\n\n        window.__CG_JSON_MATRYOSHKA_ENGINE__.destroy();\n\n    }\n\n\n    if (\n        window.__CG_JSON_MATRYOSHKA_TEST__ &&\n        typeof window.__CG_JSON_MATRYOSHKA_TEST__.destroy ===\n        'function'\n    ) {\n\n        window.__CG_JSON_MATRYOSHKA_TEST__.destroy();\n\n    }\n\n\n    \/* =========================================================\n       MOUNT\n       ========================================================= *\/\n\n    const mount =\n        document.querySelector(\n            '.cg-json-engine-mount'\n        );\n\n\n    if (!mount) {\n        return;\n    }\n\n\n    const MANIFEST_URL =\n        mount.dataset.manifest || '';\n\n\n    if (!MANIFEST_URL) {\n        return;\n    }\n\n\n    \/* =========================================================\n       SETTINGS\n       ========================================================= *\/\n\n    const STEP = 420;\n\n    const STACK_SHIFT_X = 14;\n    const STACK_SHIFT_Y = 26;\n\n    const TAB_REVEAL_START = 0.55;\n\n    const TAB_LEFT = 11;\n    const TAB_BOTTOM = 1;\n    const TAB_HEIGHT = 22;\n\n    const CENTER_DURATION = 460;\n\n    const HEADER_GAP = 18;\n\n    const UPPER_VIEWPORT_RATIO = 0.12;\n\n    const ENTRY_BELOW_VIEWPORT = 80;\n\n    const MANUAL_GAP = 28;\n\n    const WORKSPACE_BOTTOM_PAD = 60;\n\n\n    \/* =========================================================\n       GLOBAL STATE\n       ========================================================= *\/\n\n    let instances = [];\n\n    let currentInstance = null;\n\n    let pageLocked = false;\n\n    let lockedScrollY = 0;\n\n    let lastTouchY = null;\n\n    let destroyed = false;\n\n\n    const savedPageStyle = {\n\n        htmlOverflow: '',\n        htmlOverscroll: '',\n\n        bodyOverflow: '',\n        bodyOverscroll: '',\n        bodyTouchAction: ''\n\n    };\n\n\n    \/* =========================================================\n       HELPERS\n       ========================================================= *\/\n\n    function clamp(\n        value,\n        min,\n        max\n    ) {\n\n        return Math.min(\n            max,\n            Math.max(\n                min,\n                value\n            )\n        );\n\n    }\n\n\n    function createElement(\n        tag,\n        className,\n        text\n    ) {\n\n        const element =\n            document.createElement(\n                tag\n            );\n\n\n        if (className) {\n            element.className =\n                className;\n        }\n\n\n        if (\n            text !== undefined &&\n            text !== null\n        ) {\n\n            element.textContent =\n                text;\n\n        }\n\n\n        return element;\n\n    }\n\n\n    \/* =========================================================\n       PAGE LOCK\n       ========================================================= *\/\n\n    function lockPage() {\n\n        if (pageLocked) {\n            return;\n        }\n\n\n        const html =\n            document.documentElement;\n\n\n        const body =\n            document.body;\n\n\n        lockedScrollY =\n            window.scrollY;\n\n\n        savedPageStyle.htmlOverflow =\n            html.style.overflow;\n\n\n        savedPageStyle.htmlOverscroll =\n            html.style.overscrollBehavior;\n\n\n        savedPageStyle.bodyOverflow =\n            body.style.overflow;\n\n\n        savedPageStyle.bodyOverscroll =\n            body.style.overscrollBehavior;\n\n\n        savedPageStyle.bodyTouchAction =\n            body.style.touchAction;\n\n\n        html.style.setProperty(\n            'overflow',\n            'hidden',\n            'important'\n        );\n\n\n        html.style.setProperty(\n            'overscroll-behavior',\n            'none',\n            'important'\n        );\n\n\n        body.style.setProperty(\n            'overflow',\n            'hidden',\n            'important'\n        );\n\n\n        body.style.setProperty(\n            'overscroll-behavior',\n            'none',\n            'important'\n        );\n\n\n        body.style.setProperty(\n            'touch-action',\n            'none',\n            'important'\n        );\n\n\n        pageLocked = true;\n\n    }\n\n\n    function unlockPage() {\n\n        if (!pageLocked) {\n            return;\n        }\n\n\n        const html =\n            document.documentElement;\n\n\n        const body =\n            document.body;\n\n\n        html.style.overflow =\n            savedPageStyle.htmlOverflow;\n\n\n        html.style.overscrollBehavior =\n            savedPageStyle.htmlOverscroll;\n\n\n        body.style.overflow =\n            savedPageStyle.bodyOverflow;\n\n\n        body.style.overscrollBehavior =\n            savedPageStyle.bodyOverscroll;\n\n\n        body.style.touchAction =\n            savedPageStyle.bodyTouchAction;\n\n\n        pageLocked = false;\n\n    }\n\n\n    \/* =========================================================\n       MANIFEST VALIDATION\n       ========================================================= *\/\n\n    function validateManifest(\n        manifest\n    ) {\n\n        if (\n            !manifest ||\n            typeof manifest !==\n            'object'\n        ) {\n\n            throw new Error(\n                'Invalid manifest'\n            );\n\n        }\n\n\n        if (\n            !Array.isArray(\n                manifest.sections\n            ) ||\n            manifest.sections.length === 0\n        ) {\n\n            throw new Error(\n                'Manifest sections missing'\n            );\n\n        }\n\n\n        manifest.sections.forEach(\n            function (\n                section,\n                index\n            ) {\n\n                if (\n                    !section ||\n                    !section.source\n                ) {\n\n                    throw new Error(\n                        'Manifest source missing at section ' +\n                        (\n                            index + 1\n                        )\n                    );\n\n                }\n\n            }\n        );\n\n    }\n\n\n    \/* =========================================================\n       SECTION VALIDATION\n       ========================================================= *\/\n\n    function validateSection(\n        data\n    ) {\n\n        if (\n            !data ||\n            typeof data !==\n            'object'\n        ) {\n\n            throw new Error(\n                'Invalid section JSON'\n            );\n\n        }\n\n\n        if (\n            !data.section ||\n            typeof data.section !==\n            'object'\n        ) {\n\n            throw new Error(\n                'Section data missing'\n            );\n\n        }\n\n\n        if (\n            !data.section.id ||\n            !data.section.title\n        ) {\n\n            throw new Error(\n                'Section ID or title missing'\n            );\n\n        }\n\n\n        if (\n            !data.section.icon ||\n            typeof data.section.icon !==\n            'object' ||\n            !data.section.icon.src\n        ) {\n\n            throw new Error(\n                'Section icon missing'\n            );\n\n        }\n\n\n        if (\n            !data.cover ||\n            typeof data.cover !==\n            'object'\n        ) {\n\n            throw new Error(\n                'Cover missing'\n            );\n\n        }\n\n\n        if (\n            !Array.isArray(\n                data.cards\n            ) ||\n            data.cards.length === 0\n        ) {\n\n            throw new Error(\n                'Cards missing'\n            );\n\n        }\n\n\n        data.cards.forEach(\n            function (\n                card,\n                index\n            ) {\n\n                if (\n                    !card ||\n                    !card.title ||\n                    !card.text\n                ) {\n\n                    throw new Error(\n                        'Invalid card ' +\n                        (\n                            index + 1\n                        )\n                    );\n\n                }\n\n            }\n        );\n\n    }\n\n\n    \/* =========================================================\n       MATRYOSHKA INSTANCE\n       ========================================================= *\/\n\n    class MatryoshkaInstance {\n\n        constructor(\n            data\n        ) {\n\n            this.data = data;\n\n            this.row = null;\n\n            this.iconUI = null;\n            this.iconButton = null;\n            this.iconTitle = null;\n\n            this.source = null;\n\n            this.root = null;\n            this.stage = null;\n            this.cover = null;\n\n            this.cards = [];\n            this.tabs = [];\n\n            this.coverHeight = 340;\n            this.cardHeight = 340;\n\n            this.stackHeight = 340;\n\n            this.activeWorkspaceHeight = 900;\n\n            this.manualWorkspaceHeight = 900;\n\n            this.assemblyDistance = 0;\n\n            this.progress = 0;\n\n            this.mode = 'off';\n\n            this.manualIndex = -1;\n\n            this.centerTimer = null;\n\n            this.build();\n\n        }\n\n\n        \/* =====================================================\n           BUILD ROW\n           ===================================================== *\/\n\n        build() {\n\n            this.row =\n                createElement(\n                    'div',\n                    'cg-json-engine-row'\n                );\n\n\n            this.row.dataset.section =\n                this.data.section.id;\n\n\n            const iconCol =\n                createElement(\n                    'div',\n                    'cg-json-engine-icon-col'\n                );\n\n\n            this.iconUI =\n                createElement(\n                    'div',\n                    'cg-json-engine-icon-ui'\n                );\n\n\n            this.iconButton =\n                createElement(\n                    'button',\n                    'cg-json-engine-icon-button'\n                );\n\n\n            this.iconButton.type =\n                'button';\n\n\n            this.iconButton.setAttribute(\n                'aria-expanded',\n                'false'\n            );\n\n\n            this.iconButton.setAttribute(\n\n                'aria-label',\n\n                this.data.section.icon.aria_label ||\n\n                this.data.section.title ||\n\n                'Open section'\n\n            );\n\n\n            const iconImage =\n                createElement(\n                    'img',\n                    'cg-json-engine-icon-image'\n                );\n\n\n            iconImage.src =\n                this.data.section.icon.src;\n\n\n            iconImage.alt =\n                this.data.section.icon.alt ||\n\n                this.data.section.title ||\n\n                '';\n\n\n            this.iconButton.appendChild(\n                iconImage\n            );\n\n\n            this.iconTitle =\n                createElement(\n                    'div',\n                    'cg-json-engine-card-title'\n                );\n\n\n            this.iconTitle.setAttribute(\n                'aria-live',\n                'polite'\n            );\n\n\n            this.iconUI.appendChild(\n                this.iconButton\n            );\n\n\n            this.iconUI.appendChild(\n                this.iconTitle\n            );\n\n\n            iconCol.appendChild(\n                this.iconUI\n            );\n\n\n            const contentCol =\n                createElement(\n                    'div',\n                    'cg-json-engine-content-col'\n                );\n\n\n            this.source =\n                createElement(\n                    'div',\n                    'cg-json-engine-source'\n                );\n\n\n            contentCol.appendChild(\n                this.source\n            );\n\n\n            this.row.appendChild(\n                iconCol\n            );\n\n\n            this.row.appendChild(\n                contentCol\n            );\n\n\n            mount.appendChild(\n                this.row\n            );\n\n\n            this.buildMatryoshka();\n\n\n            this.iconButton.addEventListener(\n                'click',\n                this.onIconClick\n            );\n\n        }\n\n\n        \/* =====================================================\n           BUILD MATRYOSHKA\n           ===================================================== *\/\n\n        buildMatryoshka() {\n\n            this.root =\n                createElement(\n                    'section',\n                    'cg-json-engine-matryoshka'\n                );\n\n\n            this.root.dataset.section =\n                this.data.section.id;\n\n\n            this.stage =\n                createElement(\n                    'div',\n                    'cg-json-engine-stage'\n                );\n\n\n            this.cover =\n                createElement(\n                    'article',\n                    'cg-json-engine-cover'\n                );\n\n\n            if (\n                this.data.cover.label\n            ) {\n\n                this.cover.appendChild(\n                    createElement(\n                        'div',\n                        'cg-json-engine-cover-label',\n                        this.data.cover.label\n                    )\n                );\n\n            }\n\n\n            this.cover.appendChild(\n                createElement(\n                    'h3',\n                    '',\n                    this.data.cover.title || ''\n                )\n            );\n\n\n            if (\n                this.data.cover.description\n            ) {\n\n                this.cover.appendChild(\n                    createElement(\n                        'p',\n                        '',\n                        this.data.cover.description\n                    )\n                );\n\n            }\n\n\n            if (\n                this.data.cover.secondary_text\n            ) {\n\n                this.cover.appendChild(\n                    createElement(\n                        'p',\n                        '',\n                        this.data.cover.secondary_text\n                    )\n                );\n\n            }\n\n\n            if (\n                this.data.cover.footer_text\n            ) {\n\n                this.cover.appendChild(\n                    createElement(\n                        'p',\n                        'cg-json-engine-cover-footer',\n                        this.data.cover.footer_text\n                    )\n                );\n\n            }\n\n\n            const hint =\n                createElement(\n                    'div',\n                    'cg-json-engine-hint'\n                );\n\n\n            hint.appendChild(\n                createElement(\n                    'span',\n                    '',\n                    'SCROLL TO EXPLORE'\n                )\n            );\n\n\n            hint.appendChild(\n                createElement(\n                    'span',\n                    'cg-json-engine-hint-arrows',\n                    '\u2191\u2193'\n                )\n            );\n\n\n            this.cover.appendChild(\n                hint\n            );\n\n\n            this.stage.appendChild(\n                this.cover\n            );\n\n\n            this.cards = [];\n\n\n            this.data.cards.forEach(\n                (\n                    cardData,\n                    index\n                ) => {\n\n                    const card =\n                        createElement(\n                            'article',\n                            'cg-json-engine-card'\n                        );\n\n\n                    card.dataset.cardIndex =\n                        String(index);\n\n\n                    card.dataset.cardTitle =\n                        cardData.title;\n\n\n                    card.appendChild(\n                        createElement(\n                            'h4',\n                            '',\n                            cardData.title\n                        )\n                    );\n\n\n                    card.appendChild(\n                        createElement(\n                            'p',\n                            '',\n                            cardData.text\n                        )\n                    );\n\n\n                    this.stage.appendChild(\n                        card\n                    );\n\n\n                    this.cards.push(\n                        card\n                    );\n\n                }\n            );\n\n\n            const tabsLayer =\n                createElement(\n                    'div',\n                    'cg-json-engine-tabs'\n                );\n\n\n            this.tabs = [];\n\n\n            this.data.cards.forEach(\n                (\n                    cardData,\n                    index\n                ) => {\n\n                    const tab =\n                        createElement(\n                            'button',\n                            'cg-json-engine-tab',\n                            String(\n                                index + 1\n                            ).padStart(\n                                2,\n                                '0'\n                            )\n                        );\n\n\n                    tab.type =\n                        'button';\n\n\n                    tab.dataset.cardIndex =\n                        String(index);\n\n\n                    tab.setAttribute(\n                        'aria-label',\n                        cardData.title\n                    );\n\n\n                    tab.tabIndex =\n                        -1;\n\n\n                    tabsLayer.appendChild(\n                        tab\n                    );\n\n\n                    this.tabs.push(\n                        tab\n                    );\n\n                }\n            );\n\n\n            this.stage.appendChild(\n                tabsLayer\n            );\n\n\n            this.root.appendChild(\n                this.stage\n            );\n\n\n            this.source.appendChild(\n                this.root\n            );\n\n\n            this.bindCardEvents();\n\n\n            this.measure();\n\n        }\n\n\n        \/* =====================================================\n           DYNAMIC WORKSPACE MEASUREMENT\n           ===================================================== *\/\n\n        measure() {\n\n            if (\n                !this.cover ||\n                !this.cards.length\n            ) {\n\n                return;\n\n            }\n\n\n            this.cover.style.height =\n                'auto';\n\n\n            this.cards.forEach(\n                function (\n                    card\n                ) {\n\n                    card.style.height =\n                        'auto';\n\n                }\n            );\n\n\n            this.coverHeight =\n                Math.max(\n\n                    300,\n\n                    Math.ceil(\n                        this.cover.scrollHeight\n                    )\n\n                );\n\n\n            this.cardHeight =\n                this.coverHeight;\n\n\n            this.cards.forEach(\n                (\n                    card\n                ) => {\n\n                    this.cardHeight =\n                        Math.max(\n\n                            this.cardHeight,\n\n                            Math.ceil(\n                                card.scrollHeight\n                            )\n\n                        );\n\n                }\n            );\n\n\n            this.coverHeight =\n                Math.max(\n                    this.coverHeight,\n                    this.cardHeight\n                );\n\n\n            this.cardHeight =\n                this.coverHeight;\n\n\n            this.cover.style.height =\n                '';\n\n\n            this.cards.forEach(\n                function (\n                    card\n                ) {\n\n                    card.style.height =\n                        '';\n\n                }\n            );\n\n\n            this.stage.style.setProperty(\n\n                '--cg-cover-height',\n\n                this.coverHeight +\n                'px'\n\n            );\n\n\n            this.stage.style.setProperty(\n\n                '--cg-card-height',\n\n                this.cardHeight +\n                'px'\n\n            );\n\n\n            this.stackHeight =\n\n                this.coverHeight +\n\n                (\n                    STACK_SHIFT_Y *\n                    this.cards.length\n                ) +\n\n                WORKSPACE_BOTTOM_PAD;\n\n\n            const entryY =\n                this.getEntryY();\n\n\n            const travelHeight =\n\n                entryY +\n\n                this.cardHeight +\n\n                WORKSPACE_BOTTOM_PAD;\n\n\n            this.activeWorkspaceHeight =\n\n                Math.max(\n\n                    this.stackHeight,\n\n                    travelHeight\n\n                );\n\n\n            const manualCardBottom =\n\n                this.coverHeight +\n\n                MANUAL_GAP +\n\n                this.cardHeight +\n\n                WORKSPACE_BOTTOM_PAD;\n\n\n            this.manualWorkspaceHeight =\n\n                Math.max(\n\n                    this.activeWorkspaceHeight,\n\n                    manualCardBottom\n\n                );\n\n\n            this.stage.style.setProperty(\n\n                '--cg-active-workspace-height',\n\n                this.activeWorkspaceHeight +\n                'px'\n\n            );\n\n\n            this.stage.style.setProperty(\n\n                '--cg-manual-workspace-height',\n\n                this.manualWorkspaceHeight +\n                'px'\n\n            );\n\n\n            this.iconUI.style.minHeight =\n                this.coverHeight +\n                'px';\n\n\n            this.iconUI.style.justifyContent =\n                'center';\n\n\n            this.assemblyDistance =\n\n                STEP *\n                this.cards.length;\n\n\n            this.updateCards();\n\n        }\n\n\n        \/* =====================================================\n           ENTRY POSITION\n           ===================================================== *\/\n\n        getEntryY() {\n\n            const rect =\n                this.stage\n                    .getBoundingClientRect();\n\n\n            return Math.max(\n\n                this.coverHeight +\n                240,\n\n                window.innerHeight -\n                rect.top +\n                ENTRY_BELOW_VIEWPORT\n\n            );\n\n        }\n\n\n        \/* =====================================================\n           ICON TITLE\n           ===================================================== *\/\n\n        setIconTitle(\n            text\n        ) {\n\n            this.iconTitle.textContent =\n                text || '';\n\n\n            this.iconTitle.classList.toggle(\n                'is-visible',\n                Boolean(text)\n            );\n\n        }\n\n\n        \/* =====================================================\n           UPDATE CARDS\n           ===================================================== *\/\n\n        updateCards() {\n\n            if (\n                !this.root ||\n                !this.stage\n            ) {\n\n                return;\n\n            }\n\n\n            const active =\n                this.mode ===\n                'active';\n\n\n            const assembled =\n\n                active &&\n\n                this.progress >=\n                this.assemblyDistance -\n                0.5;\n\n\n            this.root.classList.toggle(\n                'is-active',\n                active\n            );\n\n\n            this.root.classList.toggle(\n                'is-assembled',\n                assembled\n            );\n\n\n            this.root.classList.toggle(\n                'is-manual',\n                this.manualIndex !==\n                -1\n            );\n\n\n            this.row.classList.toggle(\n                'is-active-row',\n                active\n            );\n\n\n            this.iconButton.classList.toggle(\n                'is-active',\n                active\n            );\n\n\n            this.iconButton.setAttribute(\n\n                'aria-expanded',\n\n                active\n                    ?\n                    'true'\n                    :\n                    'false'\n\n            );\n\n\n            const entryY =\n                this.getEntryY();\n\n\n            this.cards.forEach(\n                (\n                    card,\n                    index\n                ) => {\n\n                    const segmentStart =\n\n                        index *\n                        STEP;\n\n\n                    const local =\n\n                        active\n\n                            ?\n\n                            clamp(\n\n                                (\n                                    this.progress -\n                                    segmentStart\n                                ) \/\n                                STEP,\n\n                                0,\n                                1\n\n                            )\n\n                            :\n\n                            0;\n\n\n                    const finalX =\n\n                        -STACK_SHIFT_X *\n                        (\n                            index +\n                            1\n                        );\n\n\n                    const finalY =\n\n                        STACK_SHIFT_Y *\n                        (\n                            index +\n                            1\n                        );\n\n\n                    let x =\n                        finalX *\n                        local;\n\n\n                    let y =\n\n                        entryY +\n\n                        (\n                            (\n                                finalY -\n                                entryY\n                            ) *\n                            local\n                        );\n\n\n                    let opacity =\n\n                        local <= 0\n\n                            ?\n\n                            0\n\n                            :\n\n                            clamp(\n                                local *\n                                1.55,\n                                0,\n                                1\n                            );\n\n\n                    let scale =\n\n                        0.988 +\n\n                        (\n                            0.012 *\n                            local\n                        );\n\n\n                    let zIndex =\n\n                        250 -\n                        index;\n\n\n                    if (\n                        assembled &&\n                        this.manualIndex ===\n                        index\n                    ) {\n\n                        x = 0;\n\n\n                        y =\n\n                            this.coverHeight +\n                            MANUAL_GAP;\n\n\n                        opacity = 1;\n\n                        scale = 1;\n\n                        zIndex = 420;\n\n\n                        card.classList.add(\n                            'is-manual-open'\n                        );\n\n                    } else {\n\n                        card.classList.remove(\n                            'is-manual-open'\n                        );\n\n                    }\n\n\n                    card.style.transform =\n\n                        'translate3d(' +\n\n                        x +\n                        'px,' +\n\n                        y +\n                        'px,0) scale(' +\n\n                        scale +\n\n                        ')';\n\n\n                    card.style.opacity =\n                        String(opacity);\n\n\n                    card.style.zIndex =\n                        String(zIndex);\n\n\n                    card.style.pointerEvents =\n\n                        this.manualIndex ===\n                        index\n\n                            ?\n\n                            'auto'\n\n                            :\n\n                            'none';\n\n\n                    const reveal =\n\n                        clamp(\n\n                            (\n                                local -\n                                TAB_REVEAL_START\n                            ) \/\n\n                            (\n                                1 -\n                                TAB_REVEAL_START\n                            ),\n\n                            0,\n                            1\n\n                        );\n\n\n                    let tabX =\n\n                        x +\n                        TAB_LEFT;\n\n\n                    let tabY =\n\n                        y +\n\n                        this.cardHeight -\n\n                        TAB_BOTTOM -\n\n                        TAB_HEIGHT;\n\n\n                    if (\n                        assembled &&\n                        this.manualIndex ===\n                        index\n                    ) {\n\n                        tabX =\n                            TAB_LEFT;\n\n\n                        tabY =\n\n                            this.coverHeight +\n\n                            MANUAL_GAP +\n\n                            this.cardHeight -\n\n                            TAB_BOTTOM -\n\n                            TAB_HEIGHT;\n\n                    }\n\n\n                    this.tabs[\n                        index\n                    ].style.transform =\n\n                        'translate3d(' +\n\n                        tabX +\n                        'px,' +\n\n                        tabY +\n                        'px,0)';\n\n\n                    this.tabs[\n                        index\n                    ].style.opacity =\n                        String(reveal);\n\n\n                    this.tabs[\n                        index\n                    ].style.visibility =\n\n                        reveal >\n                        0.02\n\n                            ?\n\n                            'visible'\n\n                            :\n\n                            'hidden';\n\n\n                    this.tabs[\n                        index\n                    ].tabIndex =\n\n                        assembled\n\n                            ?\n\n                            0\n\n                            :\n\n                            -1;\n\n                }\n            );\n\n\n            if (\n                !assembled &&\n                this.manualIndex !==\n                -1\n            ) {\n\n                this.manualIndex = -1;\n\n\n                this.setIconTitle(\n                    ''\n                );\n\n\n                this.root.classList.remove(\n                    'is-manual'\n                );\n\n            }\n\n        }\n\n\n        \/* =====================================================\n           CARD EVENTS\n           ===================================================== *\/\n\n        bindCardEvents() {\n\n            this.tabs.forEach(\n                (\n                    tab,\n                    index\n                ) => {\n\n                    tab.addEventListener(\n                        'mouseenter',\n                        () => {\n\n                            if (\n                                this.mode ===\n                                'active' &&\n\n                                this.progress >=\n                                this.assemblyDistance -\n                                0.5\n                            ) {\n\n                                this.setIconTitle(\n\n                                    this.cards[\n                                        index\n                                    ].dataset.cardTitle ||\n\n                                    ''\n\n                                );\n\n                            }\n\n                        }\n                    );\n\n\n                    tab.addEventListener(\n                        'mouseleave',\n                        () => {\n\n                            if (\n                                this.manualIndex ===\n                                -1\n                            ) {\n\n                                this.setIconTitle(\n                                    ''\n                                );\n\n                            }\n\n                        }\n                    );\n\n\n                    tab.addEventListener(\n                        'click',\n                        (\n                            event\n                        ) => {\n\n                            event.preventDefault();\n\n                            event.stopPropagation();\n\n\n                            if (\n                                this.manualIndex ===\n                                index\n                            ) {\n\n                                this.closeManual();\n\n                            } else {\n\n                                this.openManual(\n                                    index\n                                );\n\n                            }\n\n                        }\n                    );\n\n\n                    this.cards[\n                        index\n                    ].addEventListener(\n                        'click',\n                        () => {\n\n                            if (\n                                this.manualIndex ===\n                                index\n                            ) {\n\n                                this.closeManual();\n\n                            }\n\n                        }\n                    );\n\n                }\n            );\n\n        }\n\n\n        \/* =====================================================\n           MANUAL CARD\n           ===================================================== *\/\n\n        openManual(\n            index\n        ) {\n\n            if (\n                this.mode !==\n                'active' ||\n\n                this.progress <\n                this.assemblyDistance -\n                0.5\n            ) {\n\n                return;\n\n            }\n\n\n            this.manualIndex =\n                index;\n\n\n            this.setIconTitle(\n\n                this.cards[\n                    index\n                ].dataset.cardTitle ||\n\n                ''\n\n            );\n\n\n            this.updateCards();\n\n        }\n\n\n        closeManual() {\n\n            if (\n                this.manualIndex ===\n                -1\n            ) {\n\n                return;\n\n            }\n\n\n            this.manualIndex = -1;\n\n\n            this.setIconTitle(\n                ''\n            );\n\n\n            this.updateCards();\n\n        }\n\n\n        \/* =====================================================\n           HEADER \/ TARGET POSITION\n           ===================================================== *\/\n\n        getHeaderBottom() {\n\n            const header =\n                document.querySelector(\n                    '#masthead'\n                );\n\n\n            if (!header) {\n                return 0;\n            }\n\n\n            return Math.max(\n\n                0,\n\n                header\n                    .getBoundingClientRect()\n                    .bottom\n\n            );\n\n        }\n\n\n        getTargetY() {\n\n            const rect =\n                this.row\n                    .getBoundingClientRect();\n\n\n            const desiredTop =\n\n                Math.max(\n\n                    this.getHeaderBottom() +\n                    HEADER_GAP,\n\n                    window.innerHeight *\n                    UPPER_VIEWPORT_RATIO\n\n                );\n\n\n            return Math.max(\n\n                0,\n\n                window.scrollY +\n                rect.top -\n                desiredTop\n\n            );\n\n        }\n\n\n        \/* =====================================================\n           ACTIVATE\n           ===================================================== *\/\n\n        activate() {\n\n            if (\n                this.mode !==\n                'off'\n            ) {\n\n                return;\n\n            }\n\n\n            if (\n                currentInstance &&\n                currentInstance !==\n                this\n            ) {\n\n                currentInstance.deactivate();\n\n            }\n\n\n            currentInstance =\n                this;\n\n\n            this.mode =\n                'centering';\n\n\n            this.progress = 0;\n\n            this.manualIndex = -1;\n\n\n            this.setIconTitle(\n                ''\n            );\n\n\n            this.measure();\n\n\n            const target =\n                this.getTargetY();\n\n\n            window.scrollTo({\n\n                top: target,\n\n                behavior: 'smooth'\n\n            });\n\n\n            clearTimeout(\n                this.centerTimer\n            );\n\n\n            this.centerTimer =\n                window.setTimeout(\n                    () => {\n\n                        if (\n                            destroyed ||\n\n                            currentInstance !==\n                            this ||\n\n                            this.mode !==\n                            'centering'\n                        ) {\n\n                            return;\n\n                        }\n\n\n                        window.scrollTo(\n                            0,\n                            target\n                        );\n\n\n                        this.measure();\n\n\n                        lockPage();\n\n\n                        this.mode =\n                            'active';\n\n\n                        this.updateCards();\n\n                    },\n\n                    CENTER_DURATION\n                );\n\n        }\n\n\n        \/* =====================================================\n           DEACTIVATE\n           ===================================================== *\/\n\n        deactivate() {\n\n            clearTimeout(\n                this.centerTimer\n            );\n\n\n            this.mode =\n                'off';\n\n\n            this.progress =\n                0;\n\n\n            this.manualIndex =\n                -1;\n\n\n            this.setIconTitle(\n                ''\n            );\n\n\n            this.updateCards();\n\n\n            if (\n                currentInstance ===\n                this\n            ) {\n\n                currentInstance =\n                    null;\n\n\n                unlockPage();\n\n            }\n\n        }\n\n\n        \/* =====================================================\n           WHEEL\n           ===================================================== *\/\n\n        handleWheel(\n            event\n        ) {\n\n            if (\n                this.mode !==\n                'active'\n            ) {\n\n                return;\n\n            }\n\n\n            if (\n                this.manualIndex !==\n                -1\n            ) {\n\n                this.closeManual();\n\n                return;\n\n            }\n\n\n            let delta =\n                event.deltaY;\n\n\n            if (\n                event.deltaMode ===\n                1\n            ) {\n\n                delta *= 18;\n\n            }\n\n\n            if (\n                event.deltaMode ===\n                2\n            ) {\n\n                delta *=\n                    window.innerHeight;\n\n            }\n\n\n            delta =\n                clamp(\n                    delta,\n                    -140,\n                    140\n                );\n\n\n            this.progress =\n                clamp(\n\n                    this.progress +\n                    delta,\n\n                    0,\n\n                    this.assemblyDistance\n\n                );\n\n\n            this.updateCards();\n\n        }\n\n\n        \/* =====================================================\n           TOUCH\n           ===================================================== *\/\n\n        handleTouchDelta(\n            delta\n        ) {\n\n            if (\n                this.mode !==\n                'active'\n            ) {\n\n                return;\n\n            }\n\n\n            if (\n                this.manualIndex !==\n                -1\n            ) {\n\n                this.closeManual();\n\n                return;\n\n            }\n\n\n            this.progress =\n                clamp(\n\n                    this.progress +\n\n                    delta *\n                    2.2,\n\n                    0,\n\n                    this.assemblyDistance\n\n                );\n\n\n            this.updateCards();\n\n        }\n\n\n        \/* =====================================================\n           KEYBOARD\n           ===================================================== *\/\n\n        handleKeyDelta(\n            delta\n        ) {\n\n            if (\n                this.mode !==\n                'active'\n            ) {\n\n                return;\n\n            }\n\n\n            if (\n                this.manualIndex !==\n                -1\n            ) {\n\n                this.closeManual();\n\n                return;\n\n            }\n\n\n            this.progress =\n                clamp(\n\n                    this.progress +\n                    delta,\n\n                    0,\n\n                    this.assemblyDistance\n\n                );\n\n\n            this.updateCards();\n\n        }\n\n\n        \/* =====================================================\n           ICON CLICK\n           ===================================================== *\/\n\n        onIconClick =\n            (\n                event\n            ) => {\n\n                event.preventDefault();\n\n\n                if (\n                    this.mode ===\n                    'off'\n                ) {\n\n                    this.activate();\n\n                } else {\n\n                    this.deactivate();\n\n                }\n\n            };\n\n\n        \/* =====================================================\n           DESTROY\n           ===================================================== *\/\n\n        destroy() {\n\n            clearTimeout(\n                this.centerTimer\n            );\n\n\n            this.iconButton.removeEventListener(\n                'click',\n                this.onIconClick\n            );\n\n        }\n\n    }\n\n\n    \/* =========================================================\n       ERROR ROW\n       ========================================================= *\/\n\n    function createErrorRow(\n        title,\n        detail\n    ) {\n\n        const row =\n            createElement(\n                'div',\n                'cg-json-engine-row'\n            );\n\n\n        const iconCol =\n            createElement(\n                'div',\n                'cg-json-engine-icon-col'\n            );\n\n\n        const contentCol =\n            createElement(\n                'div',\n                'cg-json-engine-content-col'\n            );\n\n\n        const box =\n            createElement(\n                'div',\n                'cg-json-engine-error'\n            );\n\n\n        box.appendChild(\n            createElement(\n                'strong',\n                '',\n                title\n            )\n        );\n\n\n        box.appendChild(\n            createElement(\n                'span',\n                '',\n                detail\n            )\n        );\n\n\n        contentCol.appendChild(\n            box\n        );\n\n\n        row.appendChild(\n            iconCol\n        );\n\n\n        row.appendChild(\n            contentCol\n        );\n\n\n        mount.appendChild(\n            row\n        );\n\n    }\n\n\n    \/* =========================================================\n       FETCH JSON\n       ========================================================= *\/\n\n    async function fetchJson(\n        url\n    ) {\n\n        const response =\n            await fetch(\n                url,\n                {\n                    cache: 'no-store'\n                }\n            );\n\n\n        if (\n            !response.ok\n        ) {\n\n            throw new Error(\n                'HTTP ' +\n                response.status\n            );\n\n        }\n\n\n        return await response.json();\n\n    }\n\n\n    \/* =========================================================\n       INIT\n       ========================================================= *\/\n\n    async function init() {\n\n        try {\n\n            mount.innerHTML = '';\n\n\n            const manifest =\n                await fetchJson(\n                    MANIFEST_URL\n                );\n\n\n            validateManifest(\n                manifest\n            );\n\n\n            for (\n                let index = 0;\n                index <\n                manifest.sections.length;\n                index++\n            ) {\n\n                const item =\n                    manifest.sections[\n                        index\n                    ];\n\n\n                try {\n\n                    const sectionUrl =\n                        new URL(\n                            item.source,\n                            MANIFEST_URL\n                        ).href;\n\n\n                    const data =\n                        await fetchJson(\n                            sectionUrl\n                        );\n\n\n                    validateSection(\n                        data\n                    );\n\n\n                    const instance =\n                        new MatryoshkaInstance(\n                            data\n                        );\n\n\n                    instances.push(\n                        instance\n                    );\n\n\n                } catch (\n                    sectionError\n                ) {\n\n                    console.error(\n                        '[CG MATRYOSHKA SECTION]',\n                        sectionError\n                    );\n\n\n                    createErrorRow(\n\n                        'SECTION ' +\n                        String(\n                            index + 1\n                        ).padStart(\n                            2,\n                            '0'\n                        ) +\n                        ' COULD NOT BE LOADED',\n\n                        item.source\n\n                    );\n\n                }\n\n            }\n\n\n        } catch (\n            error\n        ) {\n\n            console.error(\n                '[CG MATRYOSHKA ENGINE]',\n                error\n            );\n\n\n            createErrorRow(\n\n                'MATRYOSHKA ENGINE COULD NOT START',\n\n                String(\n                    error.message ||\n                    error\n                )\n\n            );\n\n        }\n\n    }\n\n\n    \/* =========================================================\n       GLOBAL WHEEL\n       ========================================================= *\/\n\n    function onWheel(\n        event\n    ) {\n\n        if (\n            !currentInstance ||\n            currentInstance.mode ===\n            'off'\n        ) {\n\n            return;\n\n        }\n\n\n        event.preventDefault();\n\n\n        if (\n            currentInstance.mode ===\n            'active'\n        ) {\n\n            currentInstance.handleWheel(\n                event\n            );\n\n        }\n\n    }\n\n\n    \/* =========================================================\n       GLOBAL TOUCH\n       ========================================================= *\/\n\n    function onTouchStart(\n        event\n    ) {\n\n        if (\n            !currentInstance ||\n            currentInstance.mode !==\n            'active' ||\n            !event.touches ||\n            event.touches.length !==\n            1\n        ) {\n\n            return;\n\n        }\n\n\n        lastTouchY =\n            event.touches[\n                0\n            ].clientY;\n\n    }\n\n\n    function onTouchMove(\n        event\n    ) {\n\n        if (\n            !currentInstance ||\n            currentInstance.mode !==\n            'active' ||\n            !event.touches ||\n            event.touches.length !==\n            1\n        ) {\n\n            return;\n\n        }\n\n\n        event.preventDefault();\n\n\n        const currentY =\n            event.touches[\n                0\n            ].clientY;\n\n\n        const delta =\n\n            lastTouchY -\n            currentY;\n\n\n        lastTouchY =\n            currentY;\n\n\n        currentInstance.handleTouchDelta(\n            delta\n        );\n\n    }\n\n\n    function onTouchEnd() {\n\n        lastTouchY = null;\n\n    }\n\n\n    \/* =========================================================\n       GLOBAL KEYBOARD\n       ========================================================= *\/\n\n    function onKeyDown(\n        event\n    ) {\n\n        if (\n            !currentInstance ||\n            currentInstance.mode ===\n            'off'\n        ) {\n\n            return;\n\n        }\n\n\n        let delta = null;\n\n\n        if (\n            event.key ===\n            'ArrowDown'\n        ) {\n\n            delta = 120;\n\n\n        } else if (\n            event.key ===\n            'ArrowUp'\n        ) {\n\n            delta = -120;\n\n\n        } else if (\n            event.key ===\n            'PageDown' ||\n            event.key ===\n            ' '\n        ) {\n\n            delta = 320;\n\n\n        } else if (\n            event.key ===\n            'PageUp'\n        ) {\n\n            delta = -320;\n\n\n        } else if (\n            event.key ===\n            'Home'\n        ) {\n\n            event.preventDefault();\n\n\n            currentInstance.closeManual();\n\n\n            currentInstance.progress = 0;\n\n\n            currentInstance.updateCards();\n\n\n            return;\n\n\n        } else if (\n            event.key ===\n            'End'\n        ) {\n\n            event.preventDefault();\n\n\n            currentInstance.closeManual();\n\n\n            currentInstance.progress =\n                currentInstance\n                    .assemblyDistance;\n\n\n            currentInstance.updateCards();\n\n\n            return;\n\n\n        } else if (\n            event.key ===\n            'Escape'\n        ) {\n\n            event.preventDefault();\n\n\n            currentInstance.deactivate();\n\n\n            return;\n\n\n        } else {\n\n            return;\n\n        }\n\n\n        event.preventDefault();\n\n\n        if (\n            currentInstance &&\n            currentInstance.mode ===\n            'active'\n        ) {\n\n            currentInstance.handleKeyDelta(\n                delta\n            );\n\n        }\n\n    }\n\n\n    \/* =========================================================\n       SCROLL GUARD\n       ========================================================= *\/\n\n    function onWindowScroll() {\n\n        if (\n            pageLocked &&\n            currentInstance &&\n            currentInstance.mode ===\n            'active' &&\n            Math.abs(\n                window.scrollY -\n                lockedScrollY\n            ) >\n            1\n        ) {\n\n            window.scrollTo(\n                0,\n                lockedScrollY\n            );\n\n        }\n\n    }\n\n\n    \/* =========================================================\n       RESIZE\n       ========================================================= *\/\n\n    function onResize() {\n\n        instances.forEach(\n            function (\n                instance\n            ) {\n\n                instance.measure();\n\n            }\n        );\n\n    }\n\n\n    \/* =========================================================\n       DESTROY ENGINE\n       ========================================================= *\/\n\n    function destroy() {\n\n        destroyed = true;\n\n\n        if (\n            currentInstance\n        ) {\n\n            currentInstance.deactivate();\n\n        }\n\n\n        unlockPage();\n\n\n        instances.forEach(\n            function (\n                instance\n            ) {\n\n                instance.destroy();\n\n            }\n        );\n\n\n        instances = [];\n\n\n        mount.innerHTML = '';\n\n\n        window.removeEventListener(\n            'wheel',\n            onWheel,\n            true\n        );\n\n\n        window.removeEventListener(\n            'touchstart',\n            onTouchStart,\n            true\n        );\n\n\n        window.removeEventListener(\n            'touchmove',\n            onTouchMove,\n            true\n        );\n\n\n        window.removeEventListener(\n            'touchend',\n            onTouchEnd,\n            true\n        );\n\n\n        window.removeEventListener(\n            'keydown',\n            onKeyDown,\n            true\n        );\n\n\n        window.removeEventListener(\n            'scroll',\n            onWindowScroll,\n            true\n        );\n\n\n        window.removeEventListener(\n            'resize',\n            onResize\n        );\n\n    }\n\n\n    \/* =========================================================\n       GLOBAL EVENTS\n       ========================================================= *\/\n\n    window.addEventListener(\n        'wheel',\n        onWheel,\n        {\n            capture: true,\n            passive: false\n        }\n    );\n\n\n    window.addEventListener(\n        'touchstart',\n        onTouchStart,\n        {\n            capture: true,\n            passive: true\n        }\n    );\n\n\n    window.addEventListener(\n        'touchmove',\n        onTouchMove,\n        {\n            capture: true,\n            passive: false\n        }\n    );\n\n\n    window.addEventListener(\n        'touchend',\n        onTouchEnd,\n        {\n            capture: true,\n            passive: true\n        }\n    );\n\n\n    window.addEventListener(\n        'keydown',\n        onKeyDown,\n        true\n    );\n\n\n    window.addEventListener(\n        'scroll',\n        onWindowScroll,\n        true\n    );\n\n\n    window.addEventListener(\n        'resize',\n        onResize\n    );\n\n\n    window.__CG_JSON_MATRYOSHKA_ENGINE__ = {\n\n        destroy: destroy\n\n    };\n\n\n    \/* =========================================================\n       START\n       ========================================================= *\/\n\n    if (\n        document.readyState ===\n        'loading'\n    ) {\n\n        document.addEventListener(\n            'DOMContentLoaded',\n            init,\n            {\n                once: true\n            }\n        );\n\n\n    } else {\n\n        init();\n\n    }\n\n})();\n<\/script>\t\t\t\t<\/div>\n\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>COMMUNICATION \u2022 PARTNERSHIP \u2022 SUPPORT CONTACT US Questions, ideas, partnerships or cooperation \u2014 we are always ready to hear from you.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_surecart_dashboard_logo_width":"180px","_surecart_dashboard_show_logo":true,"_surecart_dashboard_navigation_orders":true,"_surecart_dashboard_navigation_invoices":true,"_surecart_dashboard_navigation_subscriptions":true,"_surecart_dashboard_navigation_downloads":true,"_surecart_dashboard_navigation_billing":true,"_surecart_dashboard_navigation_account":true,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"disabled","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":115,"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":3347,"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/pages\/19\/revisions\/3347"}],"wp:attachment":[{"href":"https:\/\/stegotool.crypto-grandpa.com.ua\/ua\/wp-json\/wp\/v2\/media?parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}