{"id":936,"date":"2025-03-29T11:25:21","date_gmt":"2025-03-29T10:25:21","guid":{"rendered":"https:\/\/enigma.swallnet.com\/?page_id=936"},"modified":"2025-11-29T10:01:58","modified_gmt":"2025-11-29T09:01:58","slug":"odkaz-mistra-hvezdare-en","status":"publish","type":"page","link":"https:\/\/enigma.swallnet.com\/index.php\/odkaz-mistra-hvezdare-en\/","title":{"rendered":"The Astronomer&#8217;s Legacy"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" style=\"border-style:none;border-width:0px\"><\/p>\n\n\n<!-- Enigma Web Log Active -->\n\n\n\n<p class=\"wp-block-paragraph\" style=\"border-style:none;border-width:0px\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Astronomer&#8217;s Legacy<\/h2>\n\n\n    <div class=\"review-summary\">\n        <div class=\"star-rating-row\">\n            <div id=\"star-container-1\" class=\"star-rating\"><\/div>\n        <\/div>\n        <div class=\"review-meta-row\">\n            <div class=\"review-summary-text\" id=\"review-summary-text-1\"><\/div>\n        <\/div>\n    <\/div>\n\n    <style>\n        .review-summary {\n            max-width: 300px;\n        }\n\n        .star-rating-row {\n            display: flex;\n            justify-content: flex-start;\n            margin-bottom: 4px;\n        }\n\n        .star-rating {\n            display: flex;\n            font-size: 24px;\n            color: gold;\n            min-width: 130px;\n        }\n\n        .star {\n            position: relative;\n            width: 1em;\n            height: 1em;\n            margin-right: 4px;\n            display: inline-block;\n            background: lightgray;\n            clip-path: polygon(\n                50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%,\n                50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%\n            );\n        }\n\n        .star.filled {\n            background: gold;\n        }\n\n        .star.half::before {\n            content: '';\n            position: absolute;\n            width: 50%;\n            height: 100%;\n            background: gold;\n            left: 0;\n        }\n\n        .review-meta-row {\n            font-size: 14px;\n            color: white;\n        }\n\n        .review-summary-text {\n            color: #ccc;\n            font-weight: 500;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            const adventureId = 1;\n            const summaryTextId = 'review-summary-text-' + adventureId;\n            const starsId = 'star-container-' + adventureId;\n\n            if (typeof renderEnigmaRating === 'function') {\n                renderEnigmaRating(adventureId, function(totalReviews, averageRating) {\n                    const summary = document.getElementById(summaryTextId);\n                    if (summary && !isNaN(averageRating)) {\n                        summary.textContent = `${totalReviews} hodnocen\u00ed (${averageRating.toFixed(1)})`;\n                    }\n                });\n            }\n        });\n    <\/script>\n    \n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-843cb96b wp-block-columns-is-layout-flex block-visibility-hide-small-screen\" style=\"margin-top:0;margin-bottom:0;padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\" style=\"font-size:20px\"><strong>Story<\/strong><\/p>\n<\/div>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">In the year 1608, in the dark corners of Prague\u2019s Old Town, one of the legendary artifacts of the Rudolfine era went &#8222;missing&#8220; \u2014 the Astrolabe of Truth, a device said to reveal the truth about human existence and the universe. Master Petr, a student of the renowned astronomer Tycho Brahe, hid it to protect it from those who might misuse its power.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">For centuries, the Astrolabe remained hidden, but now its existence has resurfaced, drawing the attention of unworthy pursuers. The Astrolabe of Truth is still safely concealed, but time is running out \u2014 if you don\u2019t act quickly, it could fall into the wrong hands.<\/p>\n\n\n\n<p class=\"block-visibility-hide-small-screen wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Now it&#8217;s up to you and your team to follow in Master Petr\u2019s footsteps, solve his clever riddles, and find the Astrolabe before those who seek to abuse its power do. Can you uncover its hiding place before the sun sets? The fate of the Astrolabe \u2014 and perhaps of truth itself \u2014 is in your hands.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-style-rounded wp-duotone-unset-2 is-style-rounded--1\" style=\"margin-top:var(--wp--preset--spacing--70);margin-right:0;margin-bottom:var(--wp--preset--spacing--70);margin-left:0\"><img data-dominant-color=\"635b4c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small.webp\" alt=\"\" class=\"wp-image-1415 not-transparent\" style=\"--dominant-color: #635b4c; object-fit:cover\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6418681a wp-block-columns-is-layout-flex block-visibility-hide-large-screen block-visibility-hide-medium-screen\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\" style=\"font-size:20px\"><strong>Story<\/strong><\/p>\n<\/div>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">In the year 1608, in the dark corners of Prague\u2019s Old Town, one of the legendary artifacts of the Rudolfine era went &#8222;missing&#8220; \u2014 the Astrolabe of Truth, a device said to reveal the truth about human existence and the universe. Master Petr, a student of the renowned astronomer Tycho Brahe, hid it to protect it from those who might misuse its power.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">For centuries, the Astrolabe remained hidden, but now its existence has resurfaced, drawing the attention of unworthy pursuers. The Astrolabe of Truth is still safely concealed, but time is running out \u2014 if you don\u2019t act quickly, it could fall into the wrong hands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Now it&#8217;s up to you and your team to follow in Master Petr\u2019s footsteps, solve his clever riddles, and find the Astrolabe before those who seek to abuse its power do. Can you uncover its hiding place before the sun sets? The fate of the Astrolabe \u2014 and perhaps of truth itself \u2014 is in your hands.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-style-rounded wp-duotone-unset-4 is-style-rounded--3\" style=\"margin-top:var(--wp--preset--spacing--40);margin-right:0;margin-bottom:var(--wp--preset--spacing--40);margin-left:0\"><img data-dominant-color=\"635b4c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small.webp\" alt=\"\" class=\"wp-image-1415 not-transparent\" style=\"--dominant-color: #635b4c; object-fit:cover\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/klementinum_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6418681a wp-block-columns-is-layout-flex block-visibility-hide-small-screen\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-resized is-style-rounded is-style-rounded--5\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)\"><img data-dominant-color=\"6a5b45\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/hraci_resi_ukol_small.webp\" alt=\"\" class=\"wp-image-1414 not-transparent\" style=\"--dominant-color: #6a5b45; object-fit:cover;width:400px;height:350px\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/hraci_resi_ukol_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/hraci_resi_ukol_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/hraci_resi_ukol_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"has-regular-font-size wp-block-paragraph\"><strong><strong>Key Game Features<\/strong><\/strong><\/p>\n\n\n\n<ul style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Teamwork:<\/strong>&nbsp;Split into two teams and enjoy a unique challenge that will test your logic, wit, and collaboration. Each team member plays a key role that contributes to the group\u2019s success.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>AI Virtual Guide:<\/strong>&nbsp;Your virtual narrator is not only a source of tasks but also your companion in discovering local history. It provides interesting facts about landmarks you visit and offers tips for solving mysteries. Its adaptability ensures the game stays engaging and dynamic, no matter how fast or slow you progress.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Interactive Technology:<\/strong>&nbsp;Use your phone\u2019s GPS and camera to complete tasks and uncover clues left by Master Petr. Each task takes you to a place of historical significance.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Historic Setting:<\/strong><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">The game will take you to the most beautiful and fascinating places of Prague\u2019s Old Town. Explore the secrets of Nov\u00fd Sv\u011bt and Mal\u00e1 Strana, and immerse yourself in the stories these places have to tell.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer block-visibility-hide-large-screen block-visibility-hide-medium-screen\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6418681a wp-block-columns-is-layout-flex block-visibility-hide-large-screen block-visibility-hide-medium-screen\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"has-regular-font-size wp-block-paragraph\"><strong><strong>Key Game Features<\/strong><\/strong><\/p>\n\n\n\n<ul style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\" class=\"wp-block-list\">\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Teamwork:<\/strong>&nbsp;Split into two teams and enjoy a unique challenge that will test your logic, wit, and collaboration. Each team member plays a key role that contributes to the group\u2019s success.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>AI Virtual Guide:<\/strong>&nbsp;Your virtual narrator is not only a source of tasks but also your companion in discovering local history. It provides interesting facts about landmarks you visit and offers tips for solving mysteries. Its adaptability ensures the game stays engaging and dynamic, no matter how fast or slow you progress.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Interactive Technology:<\/strong>&nbsp;Use your phone\u2019s GPS and camera to complete tasks and uncover clues left by Master Petr. Each task takes you to a place of historical significance.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Historic Setting:<\/strong><\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">The game will take you to the most beautiful and fascinating places of Prague\u2019s Old Town. Explore the secrets of Nov\u00fd Sv\u011bt and Mal\u00e1 Strana, and immerse yourself in the stories these places have to tell.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">    <div style=\"text-align: center; margin-bottom: 10px;\">\n    <div style=\"display: inline-block;\">\n        <span style=\"font-weight: bold; color: red; margin-right: 10px;\">\n        P\u0159ihlaste se nebo si \u00fa\u010det zalo\u017ete na dv\u011b kliknut\u00ed \u2013 a z\u00edskejte slevu jako nikde jinde!        <\/span>\n        <a href=\"https:\/\/enigma.swallnet.com\/index.php\/login\"\n        class=\"wp-block-button__link wp-element-button\"\n        style=\"display: inline-block; white-space: nowrap; background: #22445d; color: white; padding: 8px 16px; border-radius: 5px; text-decoration: none;\">\n        Vyzkou\u0161ejte Ihned        <\/a>\n    <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-752eff22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-752eff22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table aligncenter is-style-regular has-small-font-size block-visibility-hide-small-screen\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--30)\"><table class=\"has-border-color has-primary-border-color has-fixed-layout\" style=\"border-width:7px\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PO\u010cET T\u00ddM\u016e<\/th><th>POPIS<\/th><th class=\"has-text-align-center\" data-align=\"center\">CENA<\/th><th class=\"has-text-align-center\" data-align=\"center\"><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>1 <strong>team<\/strong><\/strong><\/td><td>Play in a single team (any number of players). Ideal for families, friends, or colleagues.<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><s>1090 K\u010d<\/s><\/mark><\/strong>  -&gt; <strong><strong><strong><strong>     <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"1\"\n          data-multiplayer=\"0\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"1\"\n          data-game-name=\"The Astronomer\u2019s Legacy\"\n          data-multiplayer=\"0\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"1\">\n        <input type=\"hidden\" name=\"game_name\" value=\"The Astronomer\u2019s Legacy\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"0\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>2 <strong>team<\/strong><\/strong>s<\/td><td>Play in two cooperating teams. The teams split up during part of the game, gain different pieces of information, and then reunite to solve the final challenge together.<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><s>1290 K\u010d<\/s><\/mark><\/strong> -&gt; <strong><strong><strong>     <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"1\"\n          data-multiplayer=\"1\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"1\"\n          data-game-name=\"The Astronomer\u2019s Legacy\"\n          data-multiplayer=\"1\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"1\">\n        <input type=\"hidden\" name=\"game_name\" value=\"The Astronomer\u2019s Legacy\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"1\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular has-small-font-size block-visibility-hide-large-screen block-visibility-hide-medium-screen\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--30)\"><table class=\"has-border-color has-primary-border-color has-fixed-layout\" style=\"border-width:7px\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PO\u010cET T\u00ddM\u016e<\/th><th class=\"has-text-align-center\" data-align=\"center\">CENA<\/th><th><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>1 <strong>team<\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><s>1090 K\u010d<\/s><\/mark><\/strong>  -&gt; <strong><strong><strong><strong><strong><strong>     <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"1\"\n          data-multiplayer=\"0\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"1\"\n          data-game-name=\"The Astronomer\u2019s Legacy\"\n          data-multiplayer=\"0\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"1\">\n        <input type=\"hidden\" name=\"game_name\" value=\"The Astronomer\u2019s Legacy\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"0\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>2 <strong>team<\/strong><\/strong>s<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><s>1290 K\u010d<\/s><\/mark><\/strong> -&gt; <strong><strong><strong>     <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"1\"\n          data-multiplayer=\"1\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/td><td>    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"1\"\n          data-game-name=\"The Astronomer\u2019s Legacy\"\n          data-multiplayer=\"1\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"1\">\n        <input type=\"hidden\" name=\"game_name\" value=\"The Astronomer\u2019s Legacy\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"1\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-b790145d wp-block-group-is-layout-constrained\" style=\"padding-right:0;padding-left:0\">\n<p class=\"wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><strong><strong>Additional Information<\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\u2022 <strong><strong>How many players can be in a team?<\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"margin-right:0;margin-left:0;padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">You can have any number of players in one team \u2014 we recommend 2 to 6 people to ensure everyone enjoys the game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\u2022 <strong><strong>How does the two-team game work?<\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 Teams cooperate for most of the game but temporarily split at one point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 Each team completes specific tasks and gathers information the other team doesn\u2019t have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 After several tasks, the teams reunite, share their findings, and work together on the final puzzle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\u2022 <strong><strong>What does the price include?<\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 Full access to the &#8222;Astronomer\u2019s Legacy&#8220; game<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 A unique experience for individuals and teams<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\u2022 An AI-powered virtual guide that not only leads you but also provides interesting information about the places you visit<\/p>\n<\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0d5e80e3 wp-block-columns-is-layout-flex\" style=\"padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">    <div class=\"leaderboard-container\">\n        <h1>Nejlep\u0161\u00ed hr\u00e1\u010di<\/h1>\n        <table id=\"leaderboard-table\">\n            <thead>\n                <tr>\n                    <th>Po\u0159ad\u00ed<\/th>\n                    <th>P\u0159ezd\u00edvka<\/th>\n                    <th>Sk\u00f3re<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody>\n                <!-- Dynamically inserted data -->\n            <\/tbody>\n        <\/table>\n        <div id=\"error-message\" class=\"error\"><\/div>\n    <\/div>\n\n    <style>\n        .leaderboard-container {\n            max-width: 800px;\n            margin: 0 auto;\n            background: #383838;\n            border-radius: 15px;\n            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n            padding: 20px;\n        }\n        h1 {\n            text-align: center;\n            color: white;\n        }\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            margin-top: 20px;\n        }\n        th, td {\n            text-align: left;\n            padding: 12px;\n            border-bottom: 1px solid #9CA3AF;\n        }\n        th {\n            background-color: #0F3D57;\n            color: white;\n        }\n        tr:hover {\n            background-color: #265A7C;\n        }\n        #leaderboard-table tbody tr:nth-child(1) td {\n            color: #C4A85E;\n            font-weight: bold;\n        }\n        #leaderboard-table tbody tr:nth-child(2) td {\n            color: #A8A9AD;\n            font-weight: bold;\n        }\n        #leaderboard-table tbody tr:nth-child(3) td {\n            color: #CD7F32; \/* Bronze *\/\n            font-weight: bold;\n        }\n        .error {\n            color: red;\n            text-align: center;\n            margin-top: 20px;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\" type=\"text\/javascript\">\n    \/\/ <![CDATA[\n    (function(){\n        async function fetchLeaderboard(adventureId, maxRecords, webLocale) {\n            try {\n                \/\/const response = await fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/leaderboard?adventureId=${adventureId}&maxRecords=${maxRecords}&webLocale=${webLocale}`);\n                const response = await fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/leaderboard?adventureId=${adventureId}&maxRecords=${maxRecords}&webLocale=cs`);\n                if (!response.ok) {\n                    throw new Error(`HTTP error! Status: ${response.status}`);\n                }\n                const data = await response.json();\n                populateLeaderboardTable(data);\n            } catch (error) {\n                document.getElementById('error-message').textContent = 'Nepoda\u0159ilo se na\u010d\u00edst data \u017eeb\u0159\u00ed\u010dku: ' + error.message;\n            }\n        }\n\n        function populateLeaderboardTable(data) {\n            const tableBody = document.getElementById('leaderboard-table').querySelector('tbody');\n            tableBody.innerHTML = ''; \/\/ Clear previous data\n\n            Object.values(data).forEach(record => {\n                const row = document.createElement('tr');\n\n                const rankCell = document.createElement('td');\n                rankCell.textContent = record.rank;\n\n                const nickNameCell = document.createElement('td');\n                nickNameCell.textContent = record.nickName;\n\n                const scoreCell = document.createElement('td');\n                scoreCell.textContent = record.score;\n\n                row.appendChild(rankCell);\n                row.appendChild(nickNameCell);\n                row.appendChild(scoreCell);\n\n                tableBody.appendChild(row);\n            });\n        }\n\n        const adventureId = 1;\n        const maxRecords  = 10;\n        const webLocale   = null;\n        fetchLeaderboard(adventureId, maxRecords, webLocale);\n    })();\n    \/\/ ]]>\n    <\/script>\n    \n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">    <div class=\"detailed-review-wrapper\" data-adventure-id=\"1\">\n        <h3>Hodnocen\u00ed u\u017eivatel\u016f<\/h3>\n\n        <div id=\"category-ratings-1\" class=\"category-ratings\">\n            <div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-0-adventure-1\"><\/div><div class=\"numeric-average\" id=\"avg-0-adventure-1\"><\/div><span class=\"category-label\">Celkov\u00fd z\u00e1\u017eitek<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-1-adventure-1\"><\/div><div class=\"numeric-average\" id=\"avg-1-adventure-1\"><\/div><span class=\"category-label\">H\u00e1danky<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-2-adventure-1\"><\/div><div class=\"numeric-average\" id=\"avg-2-adventure-1\"><\/div><span class=\"category-label\">Lokalita<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-3-adventure-1\"><\/div><div class=\"numeric-average\" id=\"avg-3-adventure-1\"><\/div><span class=\"category-label\">Z\u00e1bava<\/span><\/div>        <\/div>\n\n        <h4>Vybran\u00e9 recenze<\/h4>\n        <div id=\"published-reviews-1\" class=\"published-reviews\"><\/div>\n    <\/div>\n\n    <style>\n        .rating-row {\n            display: flex;\n            align-items: center;\n            margin-bottom: 10px;\n            gap: 10px;\n        }\n        .category-label {\n            font-weight: bold;\n            color: white;\n        }\n        .numeric-average {\n            width: 40px;\n            text-align: right;\n            font-weight: bold;\n            color: white;\n        }\n        .star-rating {\n            display: flex;\n            font-size: 24px;\n        }\n        .star {\n            width: 1em;\n            height: 1em;\n            background: lightgray;\n            clip-path: polygon(\n                50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%,\n                50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%\n            );\n            margin-right: 5px;\n            position: relative;\n        }\n        .star.filled {\n            background: gold;\n        }\n        .star.half::before {\n            content: '';\n            position: absolute;\n            width: 50%;\n            height: 100%;\n            background: gold;\n            left: 0;\n        }\n        .published-review {\n            margin-bottom: 20px;\n            background: #f9f9f9;\n            padding: 10px;\n            border-radius: 5px;\n            border-left: 4px solid #ccc;\n        }\n        .published-review .review-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 5px;\n        }\n        .published-review .review-nickname {\n            font-weight: bold;\n            color: #333;\n        }\n        .published-review .review-stars {\n            display: flex;\n        }\n        .published-review .review-text {\n            font-style: italic;\n            color: #333;\n            margin-top: 5px;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const adventureId = 1;\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/review-details?adventureId=${adventureId}&webLocale=`)\n                .then(res => res.json())\n                .then(data => {\n                    if (!data.success) return;\n\n                    const averages = [\n                        data.categoryAverages[0], \/\/ Overall Experience\n                        data.categoryAverages[1], \/\/ Puzzles\n                        data.categoryAverages[2], \/\/ Locality\n                        data.categoryAverages[3]  \/\/ Fun\n                    ];\n\n                    averages.forEach((avg, index) => {\n                        renderStars(\"cat-\" + index + \"-adventure-\" + adventureId, avg);\n                        const numeric = document.getElementById(\"avg-\" + index + \"-adventure-\" + adventureId);\n                        if (numeric && avg !== undefined && !isNaN(avg)) {\n                            numeric.textContent = avg.toFixed(1);\n                        }\n                    });\n\n                    const container = document.getElementById(\"published-reviews-\" + adventureId);\n                    data.publishedReviews.forEach(review => {\n                        const div = document.createElement(\"div\");\n                        div.classList.add(\"published-review\");\n\n                        const header = document.createElement(\"div\");\n                        header.classList.add(\"review-header\");\n\n                        const nick = document.createElement(\"div\");\n                        nick.classList.add(\"review-nickname\");\n                        nick.textContent = review.nickName;\n\n                        const stars = document.createElement(\"div\");\n                        stars.classList.add(\"review-stars\");\n                        renderStars(stars, review.average);\n\n                        header.appendChild(nick);\n                        header.appendChild(stars);\n\n                        const textDiv = document.createElement(\"div\");\n                        textDiv.classList.add(\"review-text\");\n                        textDiv.textContent = `\"${review.text}\"`;\n\n                        div.appendChild(header);\n                        div.appendChild(textDiv);\n                        container.appendChild(div);\n                    });\n                });\n\n            function renderStars(containerOrId, avg) {\n                const container = (typeof containerOrId === \"string\") ? document.getElementById(containerOrId) : containerOrId;\n                if (!container) return;\n                container.innerHTML = '';\n                for (let i = 1; i <= 5; i++) {\n                    const star = document.createElement(\"div\");\n                    star.classList.add(\"star\");\n                    if (i <= Math.floor(avg)) {\n                        star.classList.add(\"filled\");\n                    } else if (i - avg < 1) {\n                        star.classList.add(\"half\");\n                    }\n                    container.appendChild(star);\n                }\n            }\n        });\n    <\/script>\n    \n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Astronomer&#8217;s Legacy Story In the year 1608, in the dark corners of Prague\u2019s Old Town, one of the legendary artifacts of the Rudolfine era went &#8222;missing&#8220; \u2014 the Astrolabe of Truth, a device said to reveal the truth about human existence and the universe. Master Petr, a student of the renowned astronomer Tycho Brahe, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"class_list":["post-936","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/comments?post=936"}],"version-history":[{"count":29,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/936\/revisions"}],"predecessor-version":[{"id":2220,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/936\/revisions\/2220"}],"wp:attachment":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/media?parent=936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}