{"id":1097,"date":"2025-03-29T20:52:21","date_gmt":"2025-03-29T19:52:21","guid":{"rendered":"https:\/\/enigma.swallnet.com\/?page_id=1097"},"modified":"2025-11-29T10:02:31","modified_gmt":"2025-11-29T09:02:31","slug":"po-stopach-astrolabu-en","status":"publish","type":"page","link":"https:\/\/enigma.swallnet.com\/index.php\/po-stopach-astrolabu-en\/","title":{"rendered":"Po Stopach Astrolabu EN"},"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\">I<strong>n Pursuit of the Astrolabe<\/strong><\/h2>\n\n\n    <div class=\"review-summary\">\n        <div class=\"star-rating-row\">\n            <div id=\"star-container-5\" class=\"star-rating\"><\/div>\n        <\/div>\n        <div class=\"review-meta-row\">\n            <div class=\"review-summary-text\" id=\"review-summary-text-5\"><\/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 = 5;\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-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:66.66%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-regular-font-size wp-block-paragraph\"><strong><strong>Story<\/strong><\/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)\">The Astrolabe of Truth, a legendary device created by Master Petr, a student of Tycho Brahe, has been hidden from the world for centuries. But now, it has fallen into the hands of the wrong people, who have secretly taken it from the Klementinum to an unknown location. Although they do not know the password to activate it, time is running out \u2014 their attempts may cause irreparable damage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Astrolabe not only reveals truth, but its power can disrupt the very balance of the world. The shockwaves caused by its use have triggered strange interconnections between realms and opened the way for an unexpected alliance \u2014 joining you on your detective quest is a virtual guide inspired by the master of deduction: Sherlock Holmes.<\/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)\">Together, you will track the enemies, uncover false information, and face unexpected challenges. Can you recover the Astrolabe and ensure it remains safe, or will its truth be lost forever?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">  Or perhaps it\u2019s all even more complicated \u2013 and your decisions will carry even greater consequences?<\/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=\"78624c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv1_small.webp\" alt=\"\" class=\"wp-image-1396 not-transparent\" style=\"--dominant-color: #78624c; object-fit:cover\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv1_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv1_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv1_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-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:33.33%\">\n<figure class=\"wp-block-image size-full is-resized is-style-rounded is-style-rounded--3\" style=\"margin-top:var(--wp--preset--spacing--70);margin-bottom:var(--wp--preset--spacing--70)\"><img data-dominant-color=\"574e3a\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv3_small.webp\" alt=\"\" class=\"wp-image-1394 not-transparent\" style=\"--dominant-color: #574e3a; object-fit:cover;width:400px;height:350px\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv3_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv3_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/detektiv3_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=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Detective Investigation:<\/strong>&nbsp;Follow enemy trails, analyze clues, and uncover the truth. Sherlock Holmes will offer valuable insights, but the key decisions will be yours to make.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>AI-Powered Virtual Guide:<\/strong>&nbsp;Sherlock is not just a guide, but your trusted ally. His brilliant deductive abilities will bring the story to life and help you uncover secrets hidden across Prague\u2019s historical landmarks.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Team Dynamics:<\/strong>&nbsp;Assign roles and work as a team. At certain moments, you&#8217;ll need to split up and complete different tasks to piece together the final truth.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);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 uncover clues that bring you closer to your goal. Sherlock will guide you, but the truth depends on you.<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\"><strong>Tension and Twists:<\/strong>&nbsp;Your enemies are always one step ahead. Can you beat them to the Astrolabe before its power is misused?<\/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<figure class=\"wp-block-table aligncenter is-style-regular has-small-font-size\" 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\"><strong>TEAM COUNT<\/strong><\/th><th><strong>DESCRIPTION<\/strong><\/th><th class=\"has-text-align-center\" data-align=\"center\"><strong>DESCRIPTION<\/strong><\/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><strong><strong>1 team<\/strong><\/strong><\/strong><\/td><td>Play as one team (any number of players). Ideal for families, friends, or colleagues.<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><strong><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><s>1190 K\u010d<\/s><\/mark><\/strong>  -&gt; <strong><strong><strong>     <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"5\"\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><\/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=\"5\"\n          data-game-name=\"I&lt;strong&gt;n Pursuit of the Astrolabe&lt;\/strong&gt;\"\n          data-multiplayer=\"0\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"5\">\n        <input type=\"hidden\" name=\"game_name\" value=\"I&lt;strong&gt;n Pursuit of the Astrolabe&lt;\/strong&gt;\">\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><strong>1 team<\/strong><\/strong><\/td><td>Play as two cooperating teams. The teams will split for a portion of the game, gather different clues, and then reunite to solve the final mission together.<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><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=\"5\"\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><\/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=\"5\"\n          data-game-name=\"I&lt;strong&gt;n Pursuit of the Astrolabe&lt;\/strong&gt;\"\n          data-multiplayer=\"1\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"5\">\n        <input type=\"hidden\" name=\"game_name\" value=\"I&lt;strong&gt;n Pursuit of the Astrolabe&lt;\/strong&gt;\">\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<p class=\"wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><\/p>\n\n\n\n<p class=\"has-regular-font-size wp-block-paragraph\"><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)\">Any number of players is allowed in one team \u2014 we recommend 2 to 6 people so that everyone enjoys the experience.<\/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 split up temporarily.<\/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 solves specific tasks and gathers information the other does not 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 a few tasks, the teams reunite, share knowledge, 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 <strong>Full access to the &#8222;I<strong>n Pursuit of the Astrolabe<\/strong>&#8220; game<\/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 JA 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 who not only leads you but also shares historical insights about the places you visit<\/p>\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 = 5;\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=\"5\">\n        <h3>Hodnocen\u00ed u\u017eivatel\u016f<\/h3>\n\n        <div id=\"category-ratings-5\" class=\"category-ratings\">\n            <div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-0-adventure-5\"><\/div><div class=\"numeric-average\" id=\"avg-0-adventure-5\"><\/div><span class=\"category-label\">Celkov\u00fd z\u00e1\u017eitek<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-1-adventure-5\"><\/div><div class=\"numeric-average\" id=\"avg-1-adventure-5\"><\/div><span class=\"category-label\">H\u00e1danky<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-2-adventure-5\"><\/div><div class=\"numeric-average\" id=\"avg-2-adventure-5\"><\/div><span class=\"category-label\">Lokalita<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-3-adventure-5\"><\/div><div class=\"numeric-average\" id=\"avg-3-adventure-5\"><\/div><span class=\"category-label\">Z\u00e1bava<\/span><\/div>        <\/div>\n\n        <h4>Vybran\u00e9 recenze<\/h4>\n        <div id=\"published-reviews-5\" 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 = 5;\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","protected":false},"excerpt":{"rendered":"<p>In Pursuit of the Astrolabe Story The Astrolabe of Truth, a legendary device created by Master Petr, a student of Tycho Brahe, has been hidden from the world for centuries. But now, it has fallen into the hands of the wrong people, who have secretly taken it from the Klementinum to an unknown location. Although [&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-1097","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/1097","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=1097"}],"version-history":[{"count":22,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/1097\/revisions"}],"predecessor-version":[{"id":2222,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/1097\/revisions\/2222"}],"wp:attachment":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/media?parent=1097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}