{"id":22,"date":"2026-01-04T17:44:12","date_gmt":"2026-01-04T14:44:12","guid":{"rendered":"https:\/\/numamatrix.space\/?page_id=22"},"modified":"2026-01-17T20:57:41","modified_gmt":"2026-01-17T17:57:41","slug":"about-us","status":"publish","type":"page","link":"https:\/\/numamatrix.space\/?page_id=22","title":{"rendered":"About Us"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u041f\u043e\u0440\u0442\u0430\u043b \u0421\u0443\u0434\u044c\u0431\u044b<\/title>\n    <style>\n        :root {\n            --gold: #ceac5d; --gold-bright: #f7e0a3; --black: #050505;\n            --card-bg: #0f0f0f; --border: #2a2415; --text: #d1d1d1;\n            --red: #e74c3c; --green: #2ecc71; --blue: #3498db;\n        }\n        body { background-color: var(--black); color: var(--text); font-family: 'Georgia', serif; margin: 0; padding: 15px; line-height: 1.6; }\n        .container { max-width: 1200px; margin: 0 auto; border: 1px solid var(--gold); padding: 25px; background: #000; box-shadow: 0 0 50px rgba(0,0,0,1); }\n        .header { text-align: center; border-bottom: 2px double var(--gold); padding-bottom: 20px; margin-bottom: 30px; }\n        .gold-text { color: var(--gold); text-transform: uppercase; letter-spacing: 3px; margin: 0; }\n        \n        \/* \u0421\u0435\u0442\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 *\/\n        .input-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; background: var(--card-bg); padding: 25px; border: 1px solid var(--border); margin-bottom: 30px; }\n        .input-box { display: flex; flex-direction: column; }\n        label { color: var(--gold); font-size: 11px; margin-bottom: 5px; text-transform: uppercase; font-weight: bold; }\n        input, select { background: #000; border: 1px solid var(--gold); color: #fff; padding: 12px; outline: none; font-size: 14px; }\n        \n        button { grid-column: 1 \/ -1; background: linear-gradient(to bottom, var(--gold-bright), var(--gold)); color: #000; font-weight: bold; padding: 20px; cursor: pointer; border: none; text-transform: uppercase; letter-spacing: 2px; margin-top: 10px; font-size: 16px; transition: 0.4s; }\n        button:hover { filter: brightness(1.2); box-shadow: 0 0 25px var(--gold); transform: translateY(-2px); }\n\n        \/* \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b *\/\n        #output { display: none; }\n        .section-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 20px; }\n        .card { background: var(--card-bg); border: 1px solid var(--border); padding: 25px; display: flex; flex-direction: column; }\n        .card h3 { color: var(--gold); border-bottom: 1px solid var(--border); padding-bottom: 12px; margin: 0 0 15px 0; font-size: 18px; text-transform: uppercase; }\n        \n        canvas { width: 100%; height: 200px; background: #000; margin-top: 15px; border: 1px solid #1a1a1a; }\n        \n        .time-slot { display: flex; justify-content: space-between; padding: 12px; border-bottom: 1px solid #1a1a1a; font-size: 13px; }\n        .active-hour { background: rgba(206, 172, 93, 0.2); color: #fff; border-left: 5px solid var(--gold); font-weight: bold; }\n        \n        .highlight { color: var(--gold-bright); font-weight: bold; }\n        .desc-text { font-size: 14px; margin-top: 12px; color: #bbb; text-align: justify; line-height: 1.7; }\n        \n        .verdict-box { border: 2px solid var(--gold); padding: 35px; margin-top: 35px; background: rgba(206, 172, 93, 0.07); }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"container\">\n    <div class=\"header\">\n        <h1 class=\"gold-text\">\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0434\u043d\u044f<\/h1>\n        <div id=\"liveClock\" style=\"color: var(--gold); font-size: 15px; margin-top: 10px; letter-spacing: 1px;\"><\/div>\n    <\/div>\n\n    <!-- \u0412\u0412\u041e\u0414 \u0414\u0410\u041d\u041d\u042b\u0425 -->\n    <div class=\"input-grid\">\n        <div class=\"input-box\"><label>\u0414\u0430\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430:<\/label><input type=\"date\" id=\"targetDate\"><\/div>\n        <div class=\"input-box\"><label>\u0424\u0430\u043c\u0438\u043b\u0438\u044f:<\/label><input type=\"text\" id=\"surname\" placeholder=\"\u0424\u0430\u043c\u0438\u043b\u0438\u044f\"><\/div>\n        <div class=\"input-box\"><label>\u0418\u043c\u044f:<\/label><input type=\"text\" id=\"firstname\" placeholder=\"\u0418\u043c\u044f\"><\/div>\n        <div class=\"input-box\"><label>\u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e:<\/label><input type=\"text\" id=\"patronymic\" placeholder=\"\u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e\"><\/div>\n        <div class=\"input-box\"><label>\u0414\u0430\u0442\u0430 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f:<\/label><input type=\"date\" id=\"birthDate\"><\/div>\n        <div class=\"input-box\"><label>\u0412\u0440\u0435\u043c\u044f \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f:<\/label><input type=\"time\" id=\"birthTime\" value=\"12:00\"><\/div>\n        <div class=\"input-box\">\n            <label>\u041f\u043e\u044f\u0441 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f (GMT):<\/label>\n            <select id=\"gmt\">\n                <script>\n                    for(let i=-12; i<=14; i++) document.write(`<option value=\"${i}\" ${i===3?'selected':''}>GMT ${i>=0?'+':''}${i}<\/option>`);\n                <\/script>\n            <\/select>\n        <\/div>\n        <div class=\"input-box\"><label>\u041f\u043e\u043b:<\/label><select id=\"gender\"><option value=\"m\">\u041c\u0443\u0436\u0441\u043a\u043e\u0439<\/option><option value=\"f\">\u0416\u0435\u043d\u0441\u043a\u0438\u0439<\/option><\/select><\/div>\n        <div class=\"input-box\"><label>\u0413\u043e\u0440\u043e\u0434 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f:<\/label><input type=\"text\" id=\"cityBirth\" placeholder=\"\u0413\u043e\u0440\u043e\u0434\"><\/div>\n        <div class=\"input-box\"><label>\u0413\u043e\u0440\u043e\u0434 \u043f\u0440\u0435\u0431\u044b\u0432\u0430\u043d\u0438\u044f:<\/label><input type=\"text\" id=\"cityStay\" placeholder=\"\u0413\u043e\u0440\u043e\u0434\"><\/div>\n        <button onclick=\"runMasterAnalysis()\">\u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442<\/button>\n    <\/div>\n\n    <!-- \u0412\u042b\u0412\u041e\u0414 \u0420\u0415\u0417\u0423\u041b\u042c\u0422\u0410\u0422\u041e\u0412 -->\n    <div id=\"output\">\n        <div class=\"section-grid\">\n            <div class=\"card\">\n                <h3>\ud83d\udcc8 1. \u041b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0413\u0440\u0430\u0444\u0438\u043a \u0411\u0438\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/h3>\n                <canvas id=\"bioCanvas\"><\/canvas>\n                <div id=\"bioDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83d\udd2e 2. \u041d\u0443\u043c\u0435\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0440\u043a\u0430\u043d \u0414\u043d\u044f<\/h3>\n                <div id=\"numDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83c\udf19 3. \u0410\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0424\u043e\u043d (\u041b\u0443\u043d\u0430)<\/h3>\n                <div id=\"astroDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\u23f3 4. \u041f\u043b\u0430\u043d\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0427\u0430\u0441\u044b<\/h3>\n                <div id=\"planetList\" style=\"max-height: 350px; overflow-y: auto;\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83c\udf0a 5. \u042d\u043d\u0435\u0440\u0433\u0438\u0438 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0445 \u0422\u0430\u0442\u0442\u0432<\/h3>\n                <div id=\"tattvaDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83d\udc09 6. \u0411\u0438\u043e\u0447\u0430\u0441\u044b \u041e\u0440\u0433\u0430\u043d\u043e\u0432 (\u0426\u0438)<\/h3>\n                <div id=\"baziDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83e\uddd8 7. \u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u041f\u0441\u0438\u0445\u043e\u0441\u043e\u043c\u0430\u0442\u0438\u043a\u0430<\/h3>\n                <div id=\"healthDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\u26a1 8. \u041a\u0430\u0440\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0417\u0430\u0434\u0430\u0447\u0430 \u0414\u043d\u044f<\/h3>\n                <div id=\"karmaDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n            \n            <div class=\"card\">\n                <h3>\ud83d\udcc5 9. \u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u042d\u043d\u0435\u0440\u0433\u0438\u0438 \u043d\u0430 \u043d\u0435\u0434\u0435\u043b\u044e<\/h3>\n                <canvas id=\"weekCanvas\"><\/canvas>\n                <div id=\"weekFullDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <h3>\ud83d\udccd 10. \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u041f\u0435\u0440\u0435\u0435\u0437\u0434\u0430<\/h3>\n                <div id=\"relocDesc\" class=\"desc-text\"><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"card verdict-box\">\n            <h3 style=\"text-align: center;\">\ud83d\udcdc 11. \u0418\u0422\u041e\u0413\u041e\u0412\u042b\u0419 \u0412\u0415\u0420\u0414\u0418\u041a\u0422 \u0418 \u041f\u0415\u0420\u0421\u041e\u041d\u0410\u041b\u042c\u041d\u042b\u0415 \u0420\u0415\u041a\u041e\u041c\u0415\u041d\u0414\u0410\u0426\u0418\u0418<\/h3>\n            <div id=\"finalVerdict\" class=\"desc-text\" style=\"color: #eee; font-size: 16px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    \/\/ \u0427\u0430\u0441\u044b\n    document.getElementById('targetDate').valueAsDate = new Date();\n    setInterval(() => { document.getElementById('liveClock').innerText = new Date().toLocaleString('ru-RU'); }, 1000);\n\n    const ARCAN_DATA = {\n        1: \"\u041c\u0410\u0413: \u0414\u0435\u043d\u044c \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u0447\u043d\u043e\u0439 \u0432\u043e\u043b\u0438. \u0412\u044b \u2014 \u0442\u0432\u043e\u0440\u0435\u0446 \u0441\u0432\u043e\u0435\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430\u043f\u043e\u0432, \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0432\u0430\u0436\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\",\n        2: \"\u0416\u0420\u0418\u0426\u0410: \u0414\u0435\u043d\u044c \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u0438 \u0438 \u0442\u0430\u0439\u043d. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435. \u0414\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0441\u0432\u043e\u0438\u043c \u043f\u0440\u0435\u0434\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u044f\u043c, \u043d\u0435 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u043b\u0430\u043d\u043e\u0432 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c.\",\n        3: \"\u0418\u041c\u041f\u0415\u0420\u0410\u0422\u0420\u0418\u0426\u0410: \u0414\u0435\u043d\u044c \u043f\u0440\u043e\u0446\u0432\u0435\u0442\u0430\u043d\u0438\u044f. \u0423\u0434\u0430\u0447\u043d\u043e \u0434\u043b\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0434\u0435\u043b, \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430, \u0437\u0430\u0431\u043e\u0442\u044b \u043e \u0441\u0435\u0431\u0435 \u0438 \u0441\u0435\u043c\u044c\u0435. \u0412\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0438\u0434\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.\",\n        4: \"\u0418\u041c\u041f\u0415\u0420\u0410\u0422\u041e\u0420: \u0414\u0435\u043d\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u0432\u043b\u0430\u0441\u0442\u0438. \u041d\u0430\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u0434\u0435\u043b\u0430\u0445. \u0425\u043e\u0440\u043e\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c \u0438 \u0443\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u0430.\",\n        5: \"\u0418\u0415\u0420\u041e\u0424\u0410\u041d\u0422: \u0414\u0435\u043d\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0439. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u0435\u0442\u043e\u0432, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0438 \u0434\u0443\u0445\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a. \u0418\u0449\u0438\u0442\u0435 \u0443\u0447\u0438\u0442\u0435\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f.\",\n        6: \"\u0412\u041b\u042e\u0411\u041b\u0415\u041d\u041d\u042b\u0415: \u0414\u0435\u043d\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439. \u0421\u043b\u0443\u0448\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0434\u0446\u0435 \u043f\u0440\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0423\u0434\u0430\u0447\u043d\u043e \u0434\u043b\u044f \u0441\u0432\u0438\u0434\u0430\u043d\u0438\u0439 \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043e\u0432 \u0432 \u0441\u043f\u043e\u0440\u0430\u0445.\",\n        7: \"\u041a\u041e\u041b\u0415\u0421\u041d\u0418\u0426\u0410: \u0414\u0435\u043d\u044c \u043f\u0440\u043e\u0440\u044b\u0432\u0430 \u0438 \u043f\u043e\u0435\u0437\u0434\u043e\u043a. \u0412\u0430\u0448\u0430 \u044d\u043d\u0435\u0440\u0433\u0438\u044f \u043d\u0430 \u0432\u044b\u0441\u043e\u0442\u0435, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u0440\u0435\u043c\u044f \u043f\u043e\u0431\u0435\u0434 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432\u043f\u0435\u0440\u0435\u0434.\",\n        8: \"\u0421\u0418\u041b\u0410: \u0414\u0435\u043d\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0438. \u0423\u043a\u0440\u043e\u0442\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0441\u0442\u0440\u0430\u0441\u0442\u0438 \u043c\u044f\u0433\u043a\u043e\u0441\u0442\u044c\u044e. \u0412\u0430\u0448\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u043e\u043a\u043e\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c.\",\n        9: \"\u041e\u0422\u0428\u0415\u041b\u042c\u041d\u0418\u041a: \u0414\u0435\u043d\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f. \u0412\u0440\u0435\u043c\u044f \u043e\u0442\u043e\u0439\u0442\u0438 \u043e\u0442 \u0441\u0443\u0435\u0442\u044b. \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u0435\u043d\u044c \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u0435\u0441\u0442\u0432\u0435, \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0438 \u043c\u0435\u0434\u0438\u0442\u0430\u0446\u0438\u0435\u0439.\",\n        10: \"\u041a\u041e\u041b\u0415\u0421\u041e \u0424\u041e\u0420\u0422\u0423\u041d\u042b: \u0414\u0435\u043d\u044c \u0441\u0443\u0434\u044c\u0431\u043e\u043d\u043e\u0441\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d. \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e. \u0411\u0443\u0434\u044c\u0442\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438, \u0443\u0434\u0430\u0447\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0442\u0435\u0445, \u043a\u0442\u043e \u0432 \u043f\u043e\u0442\u043e\u043a\u0435.\",\n        11: \"\u0421\u041f\u0420\u0410\u0412\u0415\u0414\u041b\u0418\u0412\u041e\u0421\u0422\u042c: \u0414\u0435\u043d\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0438 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0435\u043b. \u041f\u043e\u0441\u0442\u0443\u043f\u0430\u0439\u0442\u0435 \u043f\u043e \u0441\u043e\u0432\u0435\u0441\u0442\u0438. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0434\u044b.\",\n        12: \"\u041f\u041e\u0412\u0415\u0428\u0415\u041d\u041d\u042b\u0419: \u0414\u0435\u043d\u044c \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u043a\u0438 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u0440\u0435\u0442\u044c. \u042d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043c\u0438\u0440 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0433\u043b\u043e\u043c \u0438 \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c.\",\n        13: \"\u0421\u041c\u0415\u0420\u0422\u042c: \u0414\u0435\u043d\u044c \u043e\u0447\u0438\u0449\u0435\u043d\u0438\u044f. \u0412\u0440\u0435\u043c\u044f \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0433\u043e. \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0432\u0435\u0440\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u043b\u0438\u0441\u044c \u043d\u043e\u0432\u044b\u0435. \u0414\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.\",\n        14: \"\u0423\u041c\u0415\u0420\u0415\u041d\u041d\u041e\u0421\u0422\u042c: \u0414\u0435\u043d\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0430. \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u043a\u0440\u0430\u0439\u043d\u043e\u0441\u0442\u0435\u0439. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f, \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043e\u0432 \u0438 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.\",\n        15: \"\u0414\u042c\u042f\u0412\u041e\u041b: \u0414\u0435\u043d\u044c \u0438\u0441\u043a\u0443\u0448\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u043b\u044b. \u0411\u0443\u0434\u044c\u0442\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b \u0441 \u0430\u0437\u0430\u0440\u0442\u043e\u043c \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438. \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u0434\u043d\u044f \u043c\u043e\u0449\u043d\u0430\u044f, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u043c \u0436\u0435\u043b\u0430\u043d\u0438\u0439.\",\n        16: \"\u0411\u0410\u0428\u041d\u042f: \u0414\u0435\u043d\u044c \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0443\u0440\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0440\u0435\u0437\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u044b. \u0420\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u0435\u0448\u0430\u043b\u043e \u0432\u0430\u0448\u0435\u043c\u0443 \u0440\u043e\u0441\u0442\u0443. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u0441\u043f\u043e\u043a\u043e\u0439\u0441\u0442\u0432\u0438\u0435.\",\n        17: \"\u0417\u0412\u0415\u0417\u0414\u0410: \u0414\u0435\u043d\u044c \u043d\u0430\u0434\u0435\u0436\u0434\u044b. \u0412\u0430\u0448\u0438 \u043c\u0435\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439. \u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0437\u0430\u043d\u044f\u0442\u0438\u0439 \u043b\u044e\u0431\u044b\u043c \u0432\u0438\u0434\u043e\u043c \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0430.\",\n        18: \"\u041b\u0423\u041d\u0410: \u0414\u0435\u043d\u044c \u043f\u043e\u0434\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u0438\u043b\u043b\u044e\u0437\u0438\u0439. \u041d\u0435 \u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0441\u0435\u043c\u0443, \u0447\u0442\u043e \u0432\u0438\u0434\u0438\u0442\u0435. \u041e\u043f\u0430\u0441\u0430\u0439\u0442\u0435\u0441\u044c \u043e\u0431\u043c\u0430\u043d\u0430, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430.\",\n        19: \"\u0421\u041e\u041b\u041d\u0426\u0415: \u0414\u0435\u043d\u044c \u0442\u0440\u0438\u0443\u043c\u0444\u0430 \u0438 \u0440\u0430\u0434\u043e\u0441\u0442\u0438. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0441\u043f\u0435\u0445, \u044f\u0441\u043d\u043e\u0441\u0442\u044c \u0432 \u0434\u0435\u043b\u0430\u0445 \u0438 \u0442\u0435\u043f\u043b\u043e \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445. \u0412\u044b \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c.\",\n        20: \"\u0421\u0423\u0414: \u0414\u0435\u043d\u044c \u0432\u043e\u0437\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f. \u0420\u0435\u0448\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u0435 \u043a\u0430\u0440\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u044b\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0439 \u043e\u0442 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u043e\u0432.\",\n        21: \"\u041c\u0418\u0420: \u0414\u0435\u043d\u044c \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0438 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u0430\u043f\u0430. \u0413\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044b. \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439, \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c.\",\n        22: \"\u0428\u0423\u0422: \u0414\u0435\u043d\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430. \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0448\u0430\u0433 \u0432 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e. \u0416\u0438\u0437\u043d\u044c \u0434\u0430\u0435\u0442 \u0432\u0430\u043c \u043a\u0430\u0440\u0442-\u0431\u043b\u0430\u043d\u0448 \u2014 \u0431\u0443\u0434\u044c\u0442\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b \u0432\u0441\u0435\u043c\u0443 \u043d\u043e\u0432\u043e\u043c\u0443.\"\n    };\n\n    const alphabetMap = {\"\u0430\":1,\"\u0431\":2,\"\u0432\":3,\"\u0433\":4,\"\u0434\":5,\"\u0435\":6,\"\u0451\":7,\"\u0436\":8,\"\u0437\":9,\"\u0438\":10,\"\u0439\":11,\"\u043a\":12,\"\u043b\":13,\"\u043c\":14,\"\u043d\":15,\"\u043e\":16,\"\u043f\":17,\"\u0440\":18,\"\u0441\":19,\"\u0442\":20,\"\u0443\":21,\"\u0444\":22,\"\u0445\":23,\"\u0446\":24,\"\u0447\":25,\"\u0448\":26,\"\u0449\":27,\"\u044a\":28,\"\u044b\":29,\"\u044c\":30,\"\u044d\":31,\"\u044e\":32,\"\u044f\":33};\n\n    function getGematriaSum(str) {\n        return (str || \"\").toLowerCase().split('').reduce((acc, char) => acc + (alphabetMap[char] || 0), 0);\n    }\n\n    function runMasterAnalysis() {\n        const bVal = document.getElementById('birthDate').value;\n        const tVal = document.getElementById('targetDate').value;\n        if(!bVal || !tVal) return alert(\"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0434\u0430\u0442\u044b!\");\n\n        const birth = new Date(bVal);\n        const target = new Date(tVal);\n        const gmtOffset = parseInt(document.getElementById('gmt').value);\n        const diffDays = Math.floor((target - birth) \/ 86400000);\n\n        document.getElementById('output').style.display = 'block';\n\n        \/\/ 1. \u0411\u0438\u043e\u0440\u0438\u0442\u043c\u044b\n        calcBio(diffDays);\n        \/\/ 2. \u041d\u0443\u043c\u0435\u0440\u043e\u043b\u043e\u0433\u0438\u044f\n        calcNum(target);\n        \/\/ 3. \u0410\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0438\u044f\n        calcAstro(target, gmtOffset);\n        \/\/ 4. \u041f\u043b\u0430\u043d\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0447\u0430\u0441\u044b\n        calcPlanets(target, gmtOffset);\n        \/\/ 5. \u0422\u0430\u0442\u0442\u0432\u044b\n        calcTattvas();\n        \/\/ 6. \u0411\u0430-\u0426\u0437\u044b\n        calcBazi();\n        \/\/ 7. \u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435\n        calcHealth(diffDays);\n        \/\/ 8. \u041a\u0430\u0440\u043c\u0430\n        calcKarma(birth, target);\n        \/\/ 9. \u041d\u0435\u0434\u0435\u043b\u044f\n        drawWeek(birth, target);\n        \/\/ 10. \u0420\u0435\u043b\u043e\u043a\u0430\u0446\u0438\u044f\n        calcReloc();\n        \/\/ 11. \u0412\u0435\u0440\u0434\u0438\u043a\u0442\n        calcVerdict(diffDays, target);\n\n        window.scrollTo({ top: document.getElementById('output').offsetTop - 30, behavior: 'smooth' });\n    }\n\n    function calcBio(days) {\n        const p = Math.sin(2 * Math.PI * days \/ 23) * 100;\n        const e = Math.sin(2 * Math.PI * days \/ 28) * 100;\n        const i = Math.sin(2 * Math.PI * days \/ 33) * 100;\n\n        const getStatus = (val) => {\n            if (val > 50) return \"\u041f\u0438\u043a \u0441\u0438\u043b\";\n            if (val > 0) return \"\u041f\u043e\u0434\u044a\u0435\u043c\";\n            if (val > -50) return \"\u0421\u043f\u0430\u0434\";\n            return \"\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044f\u043c\u0430\";\n        };\n\n        document.getElementById('bioDesc').innerHTML = `\n            <p>\u2022 <span class=\"highlight\" style=\"color:var(--red)\">\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0446\u0438\u043a\u043b: ${p.toFixed(1)}%<\/span> \u2014 ${getStatus(p)}. \u0412\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0432\u044b\u043d\u043e\u0441\u043b\u0438\u0432\u043e\u0441\u0442\u044c \u0438 \u0438\u043c\u043c\u0443\u043d\u0438\u0442\u0435\u0442.<\/p>\n            <p>\u2022 <span class=\"highlight\" style=\"color:var(--green)\">\u042d\u043c\u043e\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b: ${e.toFixed(1)}%<\/span> \u2014 ${getStatus(e)}. \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438 \u0445\u0430\u0440\u0438\u0437\u043c\u0443.<\/p>\n            <p>\u2022 <span class=\"highlight\" style=\"color:var(--blue)\">\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b: ${i.toFixed(1)}%<\/span> \u2014 ${getStatus(i)}. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0438 \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c.<\/p>\n        `;\n        drawBioChart(days);\n    }\n\n    function calcNum(target) {\n        const fio = document.getElementById('firstname').value + document.getElementById('surname').value;\n        const nameCode = getGematriaSum(fio);\n        const dateSum = target.getDate() + target.getMonth() + 1 + target.getFullYear();\n        let arcan = (dateSum + (nameCode % 22)) % 22 || 22;\n        \n        document.getElementById('numDesc').innerHTML = `\n            <p class=\"highlight\">\u0410\u0440\u043a\u0430\u043d \u0412\u0430\u0448\u0435\u0433\u043e \u0414\u043d\u044f: \u2116${arcan}<\/p>\n            <p>${ARCAN_DATA[arcan]}<\/p>\n            <p><small>\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0434\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u0438\u043c\u0435\u043d\u0438 (${nameCode % 22}).<\/small><\/p>\n        `;\n    }\n\n    function calcAstro(date, gmt) {\n        const localGmt = -new Date().getTimezoneOffset() \/ 60;\n        const diff = gmt - localGmt;\n        const adjDate = new Date(date.getTime() + (diff * 3600000));\n        \n        const signs = [\"\u041e\u0432\u0435\u043d\", \"\u0422\u0435\u043b\u0435\u0446\", \"\u0411\u043b\u0438\u0437\u043d\u0435\u0446\u044b\", \"\u0420\u0430\u043a\", \"\u041b\u0435\u0432\", \"\u0414\u0435\u0432\u0430\", \"\u0412\u0435\u0441\u044b\", \"\u0421\u043a\u043e\u0440\u043f\u0438\u043e\u043d\", \"\u0421\u0442\u0440\u0435\u043b\u0435\u0446\", \"\u041a\u043e\u0437\u0435\u0440\u043e\u0433\", \"\u0412\u043e\u0434\u043e\u043b\u0435\u0439\", \"\u0420\u044b\u0431\u044b\"];\n        const moon = signs[(adjDate.getDate() + adjDate.getMonth() + 1) % 12];\n        \n        const moonDesc = {\n            \"\u041e\u0432\u0435\u043d\": \"\u041b\u0443\u043d\u0430 \u0432 \u041e\u0432\u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u041d\u0435 \u043a\u043e\u043f\u0438\u0442\u0435 \u0433\u043d\u0435\u0432, \u0437\u0430\u0439\u043c\u0438\u0442\u0435\u0441\u044c \u0441\u043f\u043e\u0440\u0442\u043e\u043c.\",\n            \"\u0422\u0435\u043b\u0435\u0446\": \"\u041b\u0443\u043d\u0430 \u0432 \u0422\u0435\u043b\u044c\u0446\u0435 \u0441\u043a\u043b\u043e\u043d\u044f\u0435\u0442 \u043a \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u0443. \u0425\u043e\u0440\u043e\u0448\u043e \u0434\u043b\u044f \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u0432\u043a\u0443\u0441\u043d\u043e\u0439 \u0435\u0434\u044b.\",\n            \"\u0411\u043b\u0438\u0437\u043d\u0435\u0446\u044b\": \"\u041b\u0443\u043d\u0430 \u0432 \u0411\u043b\u0438\u0437\u043d\u0435\u0446\u0430\u0445 \u2014 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0423\u0434\u0430\u0447\u043d\u044b \u0432\u0441\u0442\u0440\u0435\u0447\u0438, \u0437\u0432\u043e\u043d\u043a\u0438, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439.\",\n            \"\u0420\u0430\u043a\": \"\u041b\u0443\u043d\u0430 \u0432 \u0420\u0430\u043a\u0435 \u2014 \u0434\u0435\u043d\u044c \u0441\u0435\u043c\u044c\u0438. \u0411\u0443\u0434\u044c\u0442\u0435 \u0434\u043e\u043c\u0430, \u0443\u0434\u0435\u043b\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0431\u043b\u0438\u0437\u043a\u0438\u043c.\",\n            \"\u041b\u0435\u0432\": \"\u041b\u0443\u043d\u0430 \u0432\u043e \u041b\u044c\u0432\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u0438\u044f. \u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430, \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u044f\u0440\u043a\u0438\u0445 \u043d\u0430\u0440\u044f\u0434\u043e\u0432.\",\n            \"\u0414\u0435\u0432\u0430\": \"\u041b\u0443\u043d\u0430 \u0432 \u0414\u0435\u0432\u0435 \u2014 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430. \u0423\u0434\u0430\u0447\u043d\u043e \u0434\u043b\u044f \u0443\u0431\u043e\u0440\u043a\u0438, \u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432.\",\n            \"\u0412\u0435\u0441\u044b\": \"\u041b\u0443\u043d\u0430 \u0432 \u0412\u0435\u0441\u0430\u0445 \u2014 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u044f. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u0441\u0432\u0438\u0434\u0430\u043d\u0438\u0439 \u0438 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u043e\u0432.\",\n            \"\u0421\u043a\u043e\u0440\u043f\u0438\u043e\u043d\": \"\u041b\u0443\u043d\u0430 \u0432 \u0421\u043a\u043e\u0440\u043f\u0438\u043e\u043d\u0435 \u2014 \u044d\u043d\u0435\u0440\u0433\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0421\u043b\u0443\u0448\u0430\u0439\u0442\u0435 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u044e, \u0434\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0447\u0443\u0432\u0441\u0442\u0432.\",\n            \"\u0421\u0442\u0440\u0435\u043b\u0435\u0446\": \"\u041b\u0443\u043d\u0430 \u0432 \u0421\u0442\u0440\u0435\u043b\u044c\u0446\u0435 \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0439\u0442\u0435 \u043f\u043e\u0435\u0437\u0434\u043a\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435.\",\n            \"\u041a\u043e\u0437\u0435\u0440\u043e\u0433\": \"\u041b\u0443\u043d\u0430 \u0432 \u041a\u043e\u0437\u0435\u0440\u043e\u0433\u0435 \u2014 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0430. \u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043a\u0430\u0440\u044c\u0435\u0440\u044b \u0438 \u0441\u0442\u0440\u043e\u0433\u0438\u0445 \u043f\u043b\u0430\u043d\u043e\u0432.\",\n            \"\u0412\u043e\u0434\u043e\u043b\u0435\u0439\": \"\u041b\u0443\u043d\u0430 \u0432 \u0412\u043e\u0434\u043e\u043b\u0435\u0435 \u2014 \u0441\u0432\u043e\u0431\u043e\u0434\u0430. \u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0433\u0430\u0434\u0436\u0435\u0442\u043e\u0432, \u0434\u0440\u0443\u0437\u0435\u0439 \u0438 \u0441\u043c\u0435\u043b\u044b\u0445 \u0438\u0434\u0435\u0439.\",\n            \"\u0420\u044b\u0431\u044b\": \"\u041b\u0443\u043d\u0430 \u0432 \u0420\u044b\u0431\u0430\u0445 \u2014 \u0434\u0443\u0445\u043e\u0432\u043d\u043e\u0441\u0442\u044c. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u043c\u0443\u0437\u044b\u043a\u0438, \u043e\u0442\u0434\u044b\u0445\u0430 \u0438 \u043c\u0435\u0434\u0438\u0442\u0430\u0446\u0438\u0438.\"\n        };\n\n        document.getElementById('astroDesc').innerHTML = `\n            <p>\ud83c\udf19 <span class=\"highlight\">\u0422\u0440\u0430\u043d\u0437\u0438\u0442 \u041b\u0443\u043d\u044b: ${moon}<\/span><\/p>\n            <p>${moonDesc[moon]}<\/p>\n            <p><small>\u0420\u0430\u0441\u0447\u0435\u0442 \u041b\u0443\u043d\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e \u0432\u0430\u0448\u0435\u043c\u0443 GMT (${gmt}).<\/small><\/p>\n        `;\n    }\n\n    function calcPlanets(date, gmt) {\n        const pNames = [\"\u0421\u043e\u043b\u043d\u0446\u0435 (\u0421\u0438\u043b\u0430)\", \"\u0412\u0435\u043d\u0435\u0440\u0430 (\u041b\u044e\u0431\u043e\u0432\u044c)\", \"\u041c\u0435\u0440\u043a\u0443\u0440\u0438\u0439 (\u0414\u0435\u043b\u0430)\", \"\u041b\u0443\u043d\u0430 (\u0414\u043e\u043c)\", \"\u0421\u0430\u0442\u0443\u0440\u043d (\u0414\u043e\u043b\u0433)\", \"\u042e\u043f\u0438\u0442\u0435\u0440 (\u0423\u0434\u0430\u0447\u0430)\", \"\u041c\u0430\u0440\u0441 (\u041d\u0430\u043f\u043e\u0440)\"];\n        let html = \"\";\n        const localGmt = -new Date().getTimezoneOffset() \/ 60;\n        const gmtDiff = gmt - localGmt;\n        const nowH = new Date().getHours();\n\n        for(let h=0; h<24; h++) {\n            let adjH = (Math.floor(h + gmtDiff + 24)) % 24;\n            let idx = (adjH + date.getDay() + date.getDate()) % 7;\n            let active = (h === nowH) ? 'active-hour' : '';\n            html += `<div class=\"time-slot ${active}\"><span>${h}:00 - ${pNames[idx]}<\/span><\/div>`;\n        }\n        document.getElementById('planetList').innerHTML = html;\n    }\n\n    function calcTattvas() {\n        const t = [\"\u0410\u043a\u0430\u0448\u0430 (\u0414\u0443\u0445)\", \"\u0412\u0430\u044e (\u0412\u043e\u0437\u0434\u0443\u0445)\", \"\u0422\u0435\u0434\u0436\u0430\u0441 (\u041e\u0433\u043e\u043d\u044c)\", \"\u041f\u0440\u0438\u0442\u0445\u0438\u0432\u0438 (\u0417\u0435\u043c\u043b\u044f)\", \"\u0410\u043f\u0430\u0441 (\u0412\u043e\u0434\u0430)\"];\n        const descs = [\n            \"\u0410\u043a\u0430\u0448\u0430: \u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043c\u043e\u043b\u0438\u0442\u0432\u044b \u0438 \u0434\u0443\u0445\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430. \u041d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0439\u0442\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u043b \u0432 \u044d\u0442\u0438 12 \u043c\u0438\u043d\u0443\u0442.\",\n            \"\u0412\u0430\u044e: \u0412\u0440\u0435\u043c\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. \u0425\u043e\u0440\u043e\u0448\u043e \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438 \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043f\u043e\u0435\u0437\u0434\u043e\u043a.\",\n            \"\u0422\u0435\u0434\u0436\u0430\u0441: \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u043e\u0433\u043d\u044f. \u0411\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u043b \u0440\u044b\u0432\u043a\u043e\u043c.\",\n            \"\u041f\u0440\u0438\u0442\u0445\u0438\u0432\u0438: \u0421\u0430\u043c\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0442\u0442\u0432\u0430. \u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a \u0438 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432.\",\n            \"\u0410\u043f\u0430\u0441: \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u0432\u043e\u0434\u044b. \u041b\u0443\u0447\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043b\u044e\u0431\u0432\u0438, \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440.\"\n        ];\n        const mins = new Date().getMinutes();\n        const idx = Math.floor(mins \/ 12) % 5;\n        document.getElementById('tattvaDesc').innerHTML = `<p class=\"highlight\">\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0422\u0430\u0442\u0442\u0432\u0430: ${t[idx]}<\/p><p>${descs[idx]}<\/p>`;\n    }\n\n    function calcBazi() {\n        const h = new Date().getHours();\n        const organs = [\n            \"\u041f\u0435\u0447\u0435\u043d\u044c (\u0433\u043d\u0435\u0432 \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)\", \"\u041b\u0435\u0433\u043a\u0438\u0435 (\u0433\u0440\u0443\u0441\u0442\u044c \u0438 \u0434\u044b\u0445\u0430\u043d\u0438\u0435)\", \"\u041a\u0438\u0448\u0435\u0447\u043d\u0438\u043a (\u043e\u0447\u0438\u0449\u0435\u043d\u0438\u0435)\", \n            \"\u0416\u0435\u043b\u0443\u0434\u043e\u043a (\u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438)\", \"\u0421\u0435\u043b\u0435\u0437\u0435\u043d\u043a\u0430 (\u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u043f\u044b\u0442\u0430)\", \"\u0421\u0435\u0440\u0434\u0446\u0435 (\u0440\u0430\u0434\u043e\u0441\u0442\u044c \u0438 \u0434\u0443\u0445)\", \n            \"\u041f\u043e\u0447\u043a\u0438 (\u0441\u0442\u0440\u0430\u0445 \u0438 \u0432\u043e\u043b\u044f)\", \"\u041c\u043e\u0447\u0435\u0432\u043e\u0439 \u043f\u0443\u0437\u044b\u0440\u044c (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c)\"\n        ];\n        const organ = organs[Math.floor(h\/3)] || \"\u0421\u0435\u0440\u0434\u0446\u0435\";\n        document.getElementById('baziDesc').innerHTML = `\n            <p>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u0447\u0430\u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u043e\u0440\u0433\u0430\u043d: <span class=\"highlight\">${organ}<\/span>.<\/p>\n            <p>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f: \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0440\u0433\u0430\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438. \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u0426\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e.<\/p>\n        `;\n    }\n\n    function calcHealth(days) {\n        const p = Math.sin(2 * Math.PI * days \/ 23);\n        const e = Math.sin(2 * Math.PI * days \/ 28);\n        document.getElementById('healthDesc').innerHTML = `\n            <p>\ud83e\uddd8 <b>\u041f\u0441\u0438\u0445\u043e\u0441\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u043e\u043d:<\/b> ${e < 0 ? '\u0421\u043a\u043b\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u043a \u0441\u0430\u043c\u043e\u043a\u0440\u0438\u0442\u0438\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432 \u0448\u0435\u0439\u043d\u043e\u043c \u043e\u0442\u0434\u0435\u043b\u0435.' : '\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u044d\u043c\u043e\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043d \u0443\u043a\u0440\u0435\u043f\u043b\u044f\u0435\u0442 \u0438\u043c\u043c\u0443\u043d\u0438\u0442\u0435\u0442.'}<\/p>\n            <p>\ud83c\udf4e <b>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0438\u0441\u043a\u0438:<\/b> ${p < 0 ? '\u0420\u0438\u0441\u043a \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0443\u0442\u043e\u043c\u043b\u044f\u0435\u043c\u043e\u0441\u0442\u0438. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0435\u043c \u0432\u0438\u0442\u0430\u043c\u0438\u043d\u043e\u0432 \u0438 \u0449\u0430\u0434\u044f\u0449\u0438\u0439 \u0440\u0435\u0436\u0438\u043c.' : '\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043c \u0432 \u0442\u043e\u043d\u0443\u0441\u0435, \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.'}<\/p>\n        `;\n    }\n\n    function calcKarma(birth, target) {\n        const lesson = Math.abs(birth.getDate() - target.getDate()) % 9 || 9;\n        const texts = [\n            \"\u0423\u0440\u043e\u043a \u041f\u0440\u043e\u0449\u0435\u043d\u0438\u044f: \u041e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043e\u0431\u0438\u0434\u044b, \u0447\u0442\u043e\u0431\u044b \u044d\u043d\u0435\u0440\u0433\u0438\u044f \u0442\u0435\u043a\u043b\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e.\",\n            \"\u0423\u0440\u043e\u043a \u0422\u0435\u0440\u043f\u0435\u043d\u0438\u044f: \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0435 \u0442\u043e\u0440\u043e\u043f\u0438\u0442\u0435 \u0438\u0445.\",\n            \"\u0423\u0440\u043e\u043a \u0421\u043c\u0435\u043b\u043e\u0441\u0442\u0438: \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0442\u043e, \u0447\u0435\u0433\u043e \u0434\u0430\u0432\u043d\u043e \u0431\u043e\u044f\u043b\u0438\u0441\u044c.\",\n            \"\u0423\u0440\u043e\u043a \u0414\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u044b: \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0448\u0430\u0433\u0438 \u0432\u0435\u0434\u0443\u0442 \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0446\u0435\u043b\u0438.\",\n            \"\u0423\u0440\u043e\u043a \u0429\u0435\u0434\u0440\u043e\u0441\u0442\u0438: \u041f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0438\u043b\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438.\",\n            \"\u0423\u0440\u043e\u043a \u0427\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438: \u0411\u0443\u0434\u044c\u0442\u0435 \u0438\u0441\u043a\u0440\u0435\u043d\u043d\u0438 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043c\u043e\u0442\u0438\u0432\u0430\u0445.\",\n            \"\u0423\u0440\u043e\u043a \u0421\u043a\u0440\u043e\u043c\u043d\u043e\u0441\u0442\u0438: \u0423\u043c\u0435\u0440\u044c\u0442\u0435 \u044d\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c.\",\n            \"\u0423\u0440\u043e\u043a \u0420\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: \u041f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u044c\u0442\u0435 \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0431\u043e\u0440\u0435.\",\n            \"\u0423\u0440\u043e\u043a \u041e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f: \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0442\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0440\u0430\u0434\u0443\u0435\u0442.\"\n        ];\n        document.getElementById('karmaDesc').innerHTML = `<p class=\"highlight\">${texts[lesson-1]}<\/p><p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0438\u0437\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0412\u0430\u0441 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u0435.<\/p>`;\n    }\n\n    function calcReloc() {\n        const c1 = document.getElementById('cityBirth').value || \"\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\";\n        const c2 = document.getElementById('cityStay').value || \"\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\";\n        document.getElementById('relocDesc').innerHTML = `\n            <p>\u0421\u0432\u044f\u0437\u044c \u0433\u043e\u0440\u043e\u0434\u043e\u0432: ${c1} \u2794 ${c2}.<\/p>\n            <p>${c1.toLowerCase() === c2.toLowerCase() ? '\u042d\u043d\u0435\u0440\u0433\u0438\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435. \u041a\u043e\u0440\u043d\u0438 \u0434\u0430\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443.' : '\u0420\u0435\u043b\u043e\u043a\u0430\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u044d\u043d\u0435\u0440\u0433\u0438\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439.'}<\/p>\n        `;\n    }\n\n    function calcVerdict(days, target) {\n        const p = Math.sin(2 * Math.PI * days \/ 23);\n        const e = Math.sin(2 * Math.PI * days \/ 28);\n        const surname = document.getElementById('surname').value;\n        const firstname = document.getElementById('firstname').value;\n        \n        let score = (p + e) \/ 2;\n        let mood = score > 0 ? \"\u041f\u0435\u0440\u0438\u043e\u0434 \u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0420\u043e\u0441\u0442\u0430\" : \"\u041f\u0435\u0440\u0438\u043e\u0434 \u0421\u043e\u0437\u0435\u0440\u0446\u0430\u043d\u0438\u044f \u0438 \u041d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0421\u0438\u043b\u044b\";\n        \n        document.getElementById('finalVerdict').innerHTML = `\n            <p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0439(\u0430\u044f) <b>${firstname} ${surname}<\/b>!<\/p>\n            <p>\u041d\u0430 \u0434\u0430\u0442\u0443 <b>${target.toLocaleDateString('ru-RU')}<\/b> \u0432\u0430\u0448 \u0441\u0442\u0430\u0442\u0443\u0441: <span class=\"highlight\">${mood}<\/span>.<\/p>\n            <p>\ud83d\udc8e <b>\u041a\u0430\u043c\u0435\u043d\u044c-\u043e\u0431\u0435\u0440\u0435\u0433 \u0434\u043d\u044f:<\/b> ${p > 0 ? '\u0426\u0438\u0442\u0440\u0438\u043d (\u0443\u0441\u043f\u0435\u0445)' : '\u0410\u043c\u0435\u0442\u0438\u0441\u0442 (\u043c\u0443\u0434\u0440\u043e\u0441\u0442\u044c)'}.<\/p>\n            <p>\ud83c\udfa8 <b>\u0426\u0432\u0435\u0442 \u0443\u0434\u0430\u0447\u0438:<\/b> ${e > 0 ? '\u0417\u043e\u043b\u043e\u0442\u0438\u0441\u0442\u043e-\u0436\u0435\u043b\u0442\u044b\u0439' : '\u0422\u0435\u043c\u043d\u043e-\u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439'}.<\/p>\n            <p>\ud83e\udd57 <b>\u0421\u043e\u0432\u0435\u0442 \u043f\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u044e:<\/b> \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0412\u0430\u0448 \u0440\u0430\u0437\u0443\u043c \u043e\u0447\u0438\u0441\u0442\u0438\u0442 \u043b\u0435\u0433\u043a\u0430\u044f \u0440\u0430\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0435\u0442\u0430 \u0438 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043a\u043e\u0444\u0435\u0438\u043d\u0430.<\/p>\n        `;\n    }\n\n    function drawBioChart(days) {\n        const ctx = document.getElementById('bioCanvas').getContext('2d'), w = 400, h = 200;\n        ctx.clearRect(0,0,w,h);\n        ctx.strokeStyle = \"#333\"; ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(0, h\/2); ctx.lineTo(w, h\/2); ctx.stroke();\n        \n        const drawLine = (period, color) => {\n            ctx.strokeStyle = color; ctx.lineWidth = 2; ctx.beginPath();\n            for(let x=0; x<=w; x++) {\n                let offset = (x - w\/2) \/ (w\/14); \/\/ \u041e\u043a\u043d\u043e 14 \u0434\u043d\u0435\u0439\n                let val = Math.sin(2 * Math.PI * (days + offset) \/ period);\n                let y = h\/2 - val * (h\/2.5);\n                x === 0 ? ctx.moveTo(x,y) : ctx.lineTo(x,y);\n            }\n            ctx.stroke();\n            \/\/ \u0422\u043e\u0447\u043a\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\n            ctx.fillStyle = color; ctx.beginPath();\n            ctx.arc(w\/2, h\/2 - Math.sin(2 * Math.PI * days \/ period) * (h\/2.5), 5, 0, 7); ctx.fill();\n        };\n\n        drawLine(23, \"#e74c3c\"); \/\/ \u0424\u0438\u0437\n        drawLine(28, \"#2ecc71\"); \/\/ \u042d\u043c\u043e\n        drawLine(33, \"#3498db\"); \/\/ \u0418\u043d\u0442\n        \n        ctx.fillStyle = \"#fff\"; ctx.font = \"10px Arial\";\n        ctx.fillText(\"\u041f\u0440\u043e\u0448\u043b\u043e\u0435 (7\u0434)\", 10, h-10); ctx.fillText(\"\u0411\u0443\u0434\u0443\u0449\u0435\u0435 (7\u0434)\", w-70, h-10);\n        ctx.strokeStyle = \"white\"; ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(w\/2, 0); ctx.lineTo(w\/2, h); ctx.stroke(); ctx.setLineDash([]);\n    }\n\n    function drawWeek(birth, target) {\n        const ctx = document.getElementById('weekCanvas').getContext('2d'), w = 400, h = 200;\n        ctx.clearRect(0,0,w,h); ctx.strokeStyle = \"#ceac5d\"; ctx.lineWidth = 2; ctx.beginPath();\n        let s = 0, e = 0;\n        for(let d=0; d<7; d++) {\n            let t = new Date(target); t.setDate(target.getDate() + d);\n            let d_diff = Math.floor((t - birth)\/86400000);\n            let v = (Math.sin(2*Math.PI*d_diff\/23) + Math.sin(2*Math.PI*d_diff\/28)) \/ 2;\n            let x = (d\/6) * w, y = h\/2 - v * 70;\n            if(d===0) { ctx.moveTo(x,y); s = v; } else ctx.lineTo(x,y);\n            if(d===6) e = v;\n        }\n        ctx.stroke();\n        let trend = e > s ? \"\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f <span class='highlight'>\u041f\u041e\u041b\u041e\u0416\u0418\u0422\u0415\u041b\u042c\u041d\u0410\u042f<\/span> \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0430. \u042d\u043d\u0435\u0440\u0433\u0438\u044f \u0440\u0430\u0441\u0442\u0435\u0442.\" : \"\u044d\u043d\u0435\u0440\u0433\u0438\u044f \u0438\u0434\u0435\u0442 \u043d\u0430 <span class='highlight'>\u0421\u041f\u0410\u0414<\/span>. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0434\u044b\u0445\u0430\u0442\u044c \u043a \u043a\u043e\u043d\u0446\u0443 \u043d\u0435\u0434\u0435\u043b\u0438.\";\n        document.getElementById('weekFullDesc').innerHTML = `<p>\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 \u044d\u043c\u043e\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b\u044b. \u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 7 \u0434\u043d\u0435\u0439 ${trend}<\/p>`;\n    }\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u041f\u043e\u0440\u0442\u0430\u043b \u0421\u0443\u0434\u044c\u0431\u044b \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0434\u043d\u044f \u0414\u0430\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430: \u0424\u0430\u043c\u0438\u043b\u0438\u044f: \u0418\u043c\u044f: \u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e: \u0414\u0430\u0442\u0430 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f: \u0412\u0440\u0435\u043c\u044f \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f: \u041f\u043e\u044f\u0441 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f (GMT): \u041f\u043e\u043b:\u041c\u0443\u0436\u0441\u043a\u043e\u0439\u0416\u0435\u043d\u0441\u043a\u0438\u0439 \u0413\u043e\u0440\u043e\u0434 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f: \u0413\u043e\u0440\u043e\u0434 \u043f\u0440\u0435\u0431\u044b\u0432\u0430\u043d\u0438\u044f: \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \ud83d\udcc8 1. \u041b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0413\u0440\u0430\u0444\u0438\u043a \u0411\u0438\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \ud83d\udd2e 2. \u041d\u0443\u043c\u0435\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0440\u043a\u0430\u043d \u0414\u043d\u044f \ud83c\udf19 3. \u0410\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0424\u043e\u043d (\u041b\u0443\u043d\u0430) \u23f3 4. \u041f\u043b\u0430\u043d\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0427\u0430\u0441\u044b \ud83c\udf0a 5. \u042d\u043d\u0435\u0440\u0433\u0438\u0438 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0445 \u0422\u0430\u0442\u0442\u0432 \ud83d\udc09 6. \u0411\u0438\u043e\u0447\u0430\u0441\u044b \u041e\u0440\u0433\u0430\u043d\u043e\u0432 (\u0426\u0438) \ud83e\uddd8 7. &#8230; <a title=\"About Us\" class=\"read-more\" href=\"https:\/\/numamatrix.space\/?page_id=22\" aria-label=\"\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e About Us\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-22","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/pages\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/numamatrix.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22"}],"version-history":[{"count":2,"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/pages\/22\/revisions"}],"predecessor-version":[{"id":256,"href":"https:\/\/numamatrix.space\/index.php?rest_route=\/wp\/v2\/pages\/22\/revisions\/256"}],"wp:attachment":[{"href":"https:\/\/numamatrix.space\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}