{"id":218,"date":"2026-06-19T08:26:19","date_gmt":"2026-06-19T08:26:19","guid":{"rendered":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/?page_id=218"},"modified":"2026-06-19T08:55:00","modified_gmt":"2026-06-19T08:55:00","slug":"calendario-lunar","status":"publish","type":"page","link":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/calendario-lunar\/","title":{"rendered":"Calendario lunar"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Astroly | Grimorio y Calendario Lunar Perpetuo<\/title>\n    <style>\n        :root {\n            --deep-black: #020205;\n            --mystic-purple: #12081d;\n            --lunar-white: #f0f0f5;\n            --gold: #d4af37;\n            --silver: #a8a8a8;\n            --glass: rgba(255, 255, 255, 0.05);\n            --transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n        }\n\n        * { box-sizing: border-box; margin: 0; padding: 0; }\n        body {\n            background-color: var(--deep-black);\n            color: var(--lunar-white);\n            font-family: 'Cinzel', serif, system-ui;\n            min-height: 100vh;\n            background: radial-gradient(circle at top, var(--mystic-purple) 0%, var(--deep-black) 100%);\n            overflow-x: hidden;\n        }\n\n        .app-container { max-width: 600px; margin: 0 auto; padding: 15px; }\n        \n        \/* Estilos del Icono M\u00e1gico *\/\n        .app-header { text-align: center; padding: 40px 0 20px 0; }\n        .magic-icon-box {\n            width: 80px; height: 80px; margin: 0 auto 15px auto;\n            border: 2px solid var(--gold); border-radius: 15px;\n            padding: 5px; background: #000;\n            box-shadow: 0 0 20px rgba(212, 175, 55, 0.3), inset 0 0 10px rgba(212, 175, 55, 0.2);\n            animation: aura-glow 3s infinite ease-in-out;\n        }\n        .magic-icon-box img { width: 100%; height: 100%; border-radius: 10px; object-fit: cover; }\n        @keyframes aura-glow { \n            0%, 100% { box-shadow: 0 0 15px rgba(212, 175, 55, 0.3); transform: scale(1); }\n            50% { box-shadow: 0 0 25px rgba(212, 175, 55, 0.6); transform: scale(1.02); }\n        }\n\n        h1 { font-size: 2.2rem; letter-spacing: 6px; color: var(--gold); text-shadow: 0 0 20px rgba(212, 175, 55, 0.5); }\n        .sub-header { font-size: 0.75rem; color: var(--silver); letter-spacing: 2px; text-transform: uppercase; margin-top: 5px; opacity: 0.8; }\n\n        .calendar-nav {\n            display: flex; justify-content: space-between; align-items: center;\n            background: var(--glass); padding: 15px; border-radius: 20px;\n            border: 1px solid rgba(212, 175, 55, 0.2); margin-bottom: 20px;\n        }\n        .nav-btn { background: none; border: none; color: var(--gold); font-size: 1.5rem; cursor: pointer; transition: 0.3s; }\n        #monthDisplay { font-weight: bold; text-transform: uppercase; letter-spacing: 2px; }\n\n        .weekdays {\n            display: grid; grid-template-columns: repeat(7, 1fr);\n            text-align: center; color: var(--gold); font-size: 0.7rem; margin-bottom: 10px;\n        }\n        .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }\n        .day-card {\n            aspect-ratio: 1\/1.3; background: var(--glass); border: 1px solid rgba(255,255,255,0.05);\n            display: flex; flex-direction: column; align-items: center; justify-content: center;\n            cursor: pointer; transition: var(--transition); border-radius: 12px;\n        }\n        .day-card:hover { border-color: var(--gold); background: rgba(212, 175, 55, 0.15); transform: translateY(-3px); }\n        .day-card.today { border: 2px solid var(--gold); box-shadow: 0 0 15px rgba(212, 175, 55, 0.4); }\n        .lunar-icon { font-size: 1.4rem; margin-top: 5px; }\n\n        .detail-panel, .full-journal-panel {\n            position: fixed; top: 0; left: 0; width: 100%; height: 100%;\n            background: rgba(2, 2, 5, 0.98); z-index: 100; padding: 20px;\n            overflow-y: auto; transform: translateY(100%); transition: var(--transition);\n        }\n        .detail-panel.active, .full-journal-panel.active { transform: translateY(0); }\n        .close-btn { position: absolute; top: 20px; right: 20px; background: none; border: none; color: var(--gold); font-size: 2.5rem; cursor: pointer; }\n\n        .sigil-box { \n            background: #000; padding: 20px; border-radius: 15px; \n            border: 1px solid var(--gold); margin: 20px auto; width: fit-content;\n            position: relative;\n        }\n        #sigilSvg { width: 160px; height: 160px; filter: drop-shadow(0 0 8px var(--gold)); }\n        .info-trigger {\n            position: absolute; bottom: 10px; right: 10px; background: var(--gold);\n            color: #000; border-radius: 50%; width: 22px; height: 22px; font-size: 0.8rem;\n            display: flex; align-items: center; justify-content: center; cursor: pointer;\n            border: none; font-weight: bold;\n        }\n\n        .click-hint { font-size: 0.65rem; color: var(--gold); opacity: 0.8; margin-bottom: 10px; letter-spacing: 1px; animation: pulse 2s infinite; }\n        @keyframes pulse { 0% {opacity: 0.4;} 50% {opacity: 1;} 100% {opacity: 0.4;} }\n\n        .correspondence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 10px 0 20px 0; }\n        .corr-item { \n            background: rgba(255,255,255,0.05); padding: 10px; border-radius: 8px; \n            border-left: 3px solid var(--gold); cursor: pointer; transition: 0.2s;\n            position: relative; overflow: hidden;\n        }\n        .corr-item:hover { background: rgba(212, 175, 55, 0.15); transform: scale(1.02); }\n        .corr-item span { display: block; color: var(--gold); font-size: 0.65rem; text-transform: uppercase; }\n        .corr-item b { font-size: 0.85rem; padding-right: 15px; display: block; }\n        \n        .expand-icon {\n            position: absolute; top: 8px; right: 8px; font-size: 0.8rem; color: var(--gold);\n            opacity: 0.6;\n        }\n\n        .ritual-journal { margin-top: 30px; border-top: 1px solid rgba(212, 175, 55, 0.3); padding-top: 20px; display: none; }\n        .journal-entry {\n            background: rgba(255,255,255,0.03); padding: 15px; border-radius: 10px; margin-bottom: 15px;\n            border: 1px solid rgba(255,255,255,0.1); position: relative; cursor: pointer;\n        }\n        .delete-entry { position: absolute; top: 10px; right: 10px; color: #ff4d4d; cursor: pointer; font-size: 0.7rem; z-index: 5; }\n\n        .input-container { position: relative; width: 100%; }\n        .help-trigger {\n            position: absolute; top: 25px; right: 10px; background: rgba(212, 175, 55, 0.2);\n            color: var(--gold); border: 1px solid var(--gold); border-radius: 50%;\n            width: 18px; height: 18px; font-size: 0.6rem; display: flex; align-items: center;\n            justify-content: center; cursor: pointer;\n        }\n        textarea { width: 100%; height: 100px; background: #000; border: 1px solid var(--gold); color: #fff; padding: 12px; border-radius: 8px; margin: 15px 0; font-family: sans-serif; }\n        \n        .action-btn { \n            width: 100%; padding: 15px; background: var(--gold); border: none; color: #000; \n            font-weight: bold; cursor: pointer; border-radius: 8px; margin-bottom: 10px; \n            letter-spacing: 1px;\n        }\n        .action-btn.secondary { background: transparent; border: 1px solid var(--gold); color: var(--gold); }\n        .action-btn.link { background: #1a0b2e; color: var(--gold); border: 1px dashed var(--gold); font-size: 0.7rem; padding: 8px; }\n\n        #magicModal {\n            position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);\n            background: #1a0b2e; border: 2px solid var(--gold); padding: 30px; border-radius: 20px;\n            z-index: 1000; visibility: hidden; opacity: 0; transition: 0.3s; text-align: center; width: 90%; max-width: 450px;\n            max-height: 85vh; overflow-y: auto;\n        }\n        #magicModal.active { visibility: visible; opacity: 1; }\n        .modal-btns { display: flex; gap: 10px; margin-top: 20px; flex-direction: column; }\n\n        .warning-box, .success-box { position: relative; padding: 12px; border-radius: 8px; font-size: 0.8rem; margin-top: 10px; cursor: pointer; }\n        .warning-box { background: rgba(255, 77, 77, 0.1); border: 1px solid #ff4d4d; }\n        .success-box { background: rgba(212, 175, 55, 0.1); border: 1px solid var(--gold); }\n        \n        .book-btn { background: var(--gold); color: #000; border: none; padding: 10px 20px; border-radius: 5px; font-weight: bold; text-decoration: none; display: inline-block; margin-top: 15px; font-size: 0.75rem; cursor: pointer; }\n    <\/style>\n\n\n\n    <div class=\"app-container\">\n        <header class=\"app-header\">\n            <div class=\"magic-icon-box\">\n                <img decoding=\"async\" src=\"https:\/\/marcosnahuel.com\/wp-content\/uploads\/2026\/02\/grok_image_1771306918829.jpg\" alt=\"Icono M\u00e1gico\">\n            <\/div>\n            <h1>ASTROLY<\/h1>\n            <div class=\"sub-header\">Calendario lunar m\u00e1gico perpetuo<\/div>\n        <\/header>\n\n        <div class=\"calendar-nav\">\n            <button class=\"nav-btn\" onclick=\"changeMonth(-1)\">\u25c0<\/button>\n            <div id=\"monthDisplay\"><\/div>\n            <button class=\"nav-btn\" onclick=\"changeMonth(1)\">\u25b6<\/button>\n        <\/div>\n        <div class=\"weekdays\"><div>DOM<\/div><div>LUN<\/div><div>MAR<\/div><div>MI\u00c9<\/div><div>JUE<\/div><div>VIE<\/div><div>S\u00c1B<\/div><\/div>\n        <div id=\"calendarGrid\" class=\"calendar-grid\"><\/div>\n\n        <section id=\"journalSection\" class=\"ritual-journal\">\n            <h2 style=\"color: var(--gold); text-align: center; margin-bottom: 20px;\">Agenda Ritual Lunar<\/h2>\n            <div id=\"journalContainer\"><\/div>\n            <button id=\"readMoreBtn\" class=\"action-btn secondary\" style=\"display:none;\" onclick=\"openFullJournal()\">LEER M\u00c1S ENTRADAS<\/button>\n        <\/section>\n    <\/div>\n\n    <aside id=\"detailPanel\" class=\"detail-panel\">\n        <button class=\"close-btn\" onclick=\"closeDetail()\">\u00d7<\/button>\n        \n        <div style=\"text-align: center;\">\n            <div class=\"sigil-box\">\n                <svg id=\"sigilSvg\" viewBox=\"0 0 100 100\">\n                    <circle cx=\"50\" cy=\"50\" r=\"48\" fill=\"none\" stroke=\"rgba(212,175,55,0.4)\" stroke-width=\"0.5\"><\/circle>\n                    <path id=\"sigilPath\" d=\"\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"1.8\" stroke-linecap=\"round\"><\/path>\n                <\/svg>\n                <button class=\"info-trigger\" onclick=\"showSigilInfo()\">?<\/button>\n            <\/div>\n            <p style=\"font-size: 0.7rem; color: var(--gold); margin-bottom: 10px;\">SIGILO PARA SELLAR INTENCI\u00d3N DEL D\u00cdA<\/p>\n            <h2 id=\"detDate\" style=\"font-family:serif;\"><\/h2>\n            <p id=\"detPhase\" style=\"color:var(--gold); letter-spacing: 2px;\"><\/p>\n        <\/div>\n\n        <p class=\"click-hint\" style=\"text-align:center;\">\u2728 Toca las tarjetas para expandir sabidur\u00eda<\/p>\n        <div class=\"correspondence-grid\" id=\"corrGrid\"><\/div>\n\n        <div class=\"success-box\" onclick=\"showRitualDetail('fav')\">\n            <span class=\"expand-icon\">\u2295<\/span>\n            <b>\u2728 RITUALES FAVORECIDOS:<\/b> <span id=\"ritFav\"><\/span>\n        <\/div>\n        <div class=\"warning-box\" onclick=\"showRitualDetail('no')\">\n            <span class=\"expand-icon\">\u2295<\/span>\n            <b>\u26a0\ufe0f NO RECOMENDADO:<\/b> <span id=\"ritNo\"><\/span>\n        <\/div>\n\n        <div style=\"margin-top:25px; text-align:center;\">\n            <button class=\"action-btn link\" onclick=\"window.open('https:\/\/www.amazon.com\/dp\/B0CFZ88979', '_blank', 'noopener,noreferrer')\">\ud83d\udcda GRIMORIO RECOMENDADO<\/button>\n            <h4 style=\"color:var(--gold); font-size:0.8rem; margin-top:15px;\">OR\u00c1CULO COMBINADO<\/h4>\n            <p id=\"oracleMsg\" style=\"font-style:italic; font-size:0.9rem; padding: 10px;\"><\/p>\n        <\/div>\n\n        <div class=\"input-container\">\n            <button class=\"help-trigger\" onclick=\"showIntentHelp()\">?<\/button>\n            <textarea id=\"noteArea\" placeholder=\"Escribe tu intenci\u00f3n...\"><\/textarea>\n        <\/div>\n        <button class=\"action-btn\" onclick=\"saveRitual()\">SELLAR INTENCI\u00d3N<\/button>\n    <\/aside>\n\n    <aside id=\"fullJournalPanel\" class=\"full-journal-panel\">\n        <button class=\"close-btn\" onclick=\"closeFullJournal()\">\u00d7<\/button>\n        <h2 style=\"color: var(--gold); text-align: center; margin: 40px 0;\">Grimorio Completo<\/h2>\n        <div id=\"fullJournalContainer\"><\/div>\n    <\/aside>\n\n    <div id=\"magicModal\">\n        <h3 id=\"modalTitle\"><\/h3>\n        <p id=\"modalMsg\" style=\"white-space: pre-line;\"><\/p>\n        <div id=\"modalFooter\" class=\"modal-btns\"><\/div>\n    <\/div>\n\n    <script>\n        const GRIMORIO = {\n            phases: {\n                \"new\": { \n                    name: \"Luna Nueva\", icon: \"\ud83c\udf11\", vela: \"Negra\", piedra: \"Obsidiana\", tarot: \"La Muerte\", magia: \"Corte de da\u00f1os\", planta: \"Artemisa\", esencia: \"Pachul\u00ed\", ritual: \"Siembra de intenciones\", noRitual: \"Exposici\u00f3n p\u00fablica\",\n                    details: {\n                        planta: \"La Artemisa abre el tercer ojo y protege el viaje astral. Se usa en ba\u00f1os de descarga o quemada para limpiar espejos m\u00e1gicos.\",\n                        piedra: \"La Obsidiana es un espejo del alma. Corta lazos negativos y absorbe sombras. Limpiarla bajo agua corriente despu\u00e9s de usar.\",\n                        aceite: \"El Pachul\u00ed conecta con la tierra y el dinero. Atrae la prosperidad desde la oscuridad de la tierra.\",\n                        vela: \"La vela negra no es maldad, es absorci\u00f3n. Atrapa la negatividad y la transmuta en nada. Ideal para limpiezas profundas.\",\n                        tarot: \"La Muerte indica un final necesario para que nazca lo nuevo. La influencia de hoy pide soltar para crecer.\"\n                    }\n                },\n                \"waxing-c\": { \n                    name: \"Creciente\", icon: \"\ud83c\udf19\", vela: \"Verde\", piedra: \"Jade\", tarot: \"El Mago\", magia: \"Atracci\u00f3n\", planta: \"Menta\", esencia: \"Canela\", ritual: \"Magnetismo personal\", noRitual: \"Cerrar etapas\",\n                    details: {\n                        planta: \"La Menta acelera los procesos y refresca la mente. \u00dasala en infusiones para visualizar tus metas con claridad.\",\n                        piedra: \"El Jade atrae abundancia y salud. Se debe llevar en contacto con la piel para sintonizar con la suerte.\",\n                        aceite: \"La Canela es fuego y \u00e9xito. Aumenta la vibraci\u00f3n de cualquier amuleto y atrae la pasi\u00f3n.\",\n                        vela: \"La vela verde potencia el crecimiento, la fertilidad de los proyectos y la salud f\u00edsica.\",\n                        tarot: \"El Mago nos da todas las herramientas. Hoy tienes el poder de manifestar si pasas a la acci\u00f3n.\"\n                    }\n                },\n                \"full\": { \n                    name: \"Luna Llena\", icon: \"\ud83c\udf15\", vela: \"Blanca\", piedra: \"Piedra Luna\", tarot: \"Sacerdotisa\", magia: \"Manifestaci\u00f3n\", planta: \"Rosa\", esencia: \"Jazm\u00edn\", ritual: \"Consagraci\u00f3n\", noRitual: \"Cirug\u00edas\",\n                    details: {\n                        planta: \"La Rosa eleva la frecuencia al amor universal. Se usa en ba\u00f1os para atraer ternura y autoaceptaci\u00f3n.\",\n                        piedra: \"La Piedra Luna equilibra las emociones y potencia la videncia. D\u00e9jala cargando bajo la luz lunar.\",\n                        aceite: \"El Jazm\u00edn es la flor de la noche; atrae sue\u00f1os prof\u00e9ticos y despierta la sensualidad sagrada.\",\n                        vela: \"La vela blanca contiene todos los colores. Es pureza, paz y la m\u00e1xima luz espiritual para cualquier pedido.\",\n                        tarot: \"La Sacerdotisa invita al silencio y la escucha interior. La verdad no est\u00e1 afuera, est\u00e1 en tu intuici\u00f3n.\"\n                    }\n                },\n                \"waning-c\": { \n                    name: \"Luna Menguante\", icon: \"\ud83c\udf18\", vela: \"Gris\", piedra: \"Amatista\", tarot: \"La Torre\", magia: \"Destierro\", planta: \"Salvia\", esencia: \"Eucalipto\", ritual: \"Limpieza profunda\", noRitual: \"Nuevos contratos\",\n                    details: {\n                        planta: \"La Salvia expulsa larvas astrales y energ\u00edas estancadas. Sahumar de adentro hacia afuera de la casa.\",\n                        piedra: \"La Amatista transmuta el dolor en sabidur\u00eda. \u00dasala cerca de la cama para evitar pesadillas.\",\n                        aceite: \"El Eucalipto purifica el aire y los pensamientos. Ideal para soltar obsesiones mentales.\",\n                        vela: \"La vela gris ayuda a neutralizar conflictos y a ver las zonas grises antes de tomar decisiones de corte.\",\n                        tarot: \"La Torre destruye lo que no tiene bases s\u00f3lidas. Hoy es un d\u00eda para aceptar el cambio inevitable.\"\n                    }\n                }\n            },\n            zodiacInfo: {\n                Aries: \"D\u00eda de coraje por la alineaci\u00f3n de fuego.\", Tauro: \"D\u00eda de estabilidad y conexi\u00f3n sensorial.\",\n                G\u00e9minis: \"La comunicaci\u00f3n fluye por la brisa lunar.\", C\u00e1ncer: \"M\u00e1xima sensibilidad por regencia natural.\",\n                Leo: \"D\u00eda para brillar y ser el centro del ritual.\", Virgo: \"D\u00eda de precisi\u00f3n en la magia de hierbas.\",\n                Libra: \"D\u00eda de equilibrio y amarres de armon\u00eda.\", Escorpio: \"D\u00eda de transmutaci\u00f3n y magia sexual.\",\n                Sagitario: \"D\u00eda de expansi\u00f3n y rituales de viaje.\", Capricornio: \"D\u00eda de magia de tierra y ambici\u00f3n.\",\n                Acuario: \"D\u00eda de romper moldes y magia colectiva.\", Piscis: \"D\u00eda de disoluci\u00f3n del ego y videncia.\"\n            },\n            planets: [\"Sol \u2600\ufe0f\", \"Luna \ud83c\udf19\", \"Marte \u2642\", \"Mercurio \u263f\", \"J\u00fapiter \u2643\", \"Venus \u2640\", \"Saturno \u2644\"],\n            zodiac: [\"Aries\", \"Tauro\", \"G\u00e9minis\", \"C\u00e1ncer\", \"Leo\", \"Virgo\", \"Libra\", \"Escorpio\", \"Sagitario\", \"Capricornio\", \"Acuario\", \"Piscis\"]\n        };\n\n        let viewDate = new Date();\n        let selectedDate = null;\n\n        function getNumerology(date) {\n            let n = date.getDate() + (date.getMonth() + 1) + date.getFullYear();\n            while (n > 9) n = String(n).split('').reduce((a, b) => Number(a) + Number(b), 0);\n            return n;\n        }\n\n        function getLunarPhaseData(date) {\n            const age = (( (date - new Date(2000,0,6))\/(1000*60*60*24) ) \/ 29.53059 % 1) * 29.53059;\n            if (age < 1.8) return GRIMORIO.phases[\"new\"];\n            if (age < 14.5) return GRIMORIO.phases[\"waxing-c\"];\n            if (age < 17.5) return GRIMORIO.phases[\"full\"];\n            return GRIMORIO.phases[\"waning-c\"];\n        }\n\n        function renderCalendar() {\n            const grid = document.getElementById('calendarGrid');\n            grid.innerHTML = \"\";\n            document.getElementById('monthDisplay').innerText = new Intl.DateTimeFormat('es-ES', {month:'long', year:'numeric'}).format(viewDate);\n            const firstDay = new Date(viewDate.getFullYear(), viewDate.getMonth(), 1).getDay();\n            for(let i=0; i<firstDay; i++) grid.innerHTML += `<div><\/div>`;\n            for(let d=1; d<=new Date(viewDate.getFullYear(), viewDate.getMonth()+1, 0).getDate(); d++) {\n                const date = new Date(viewDate.getFullYear(), viewDate.getMonth(), d);\n                const phase = getLunarPhaseData(date);\n                const isToday = date.toDateString() === new Date().toDateString() ? 'today' : '';\n                const card = document.createElement('div');\n                card.className = `day-card ${isToday}`;\n                card.innerHTML = `<span style=\"font-size:0.7rem\">${d}<\/span><span class=\"lunar-icon\">${phase.icon}<\/span>`;\n                card.onclick = () => openDetail(date);\n                grid.appendChild(card);\n            }\n            renderJournal();\n        }\n\n        function openDetail(date) {\n            selectedDate = new Date(date);\n            const phase = getLunarPhaseData(date);\n            const num = getNumerology(date);\n            const planet = GRIMORIO.planets[date.getDay()];\n            const zod = GRIMORIO.zodiac[date.getDate() % 12];\n            \n            document.getElementById('detDate').innerText = date.toLocaleDateString('es-ES', {day:'numeric', month:'long', year:'numeric'});\n            document.getElementById('detPhase').innerText = phase.name.toUpperCase();\n            \n            const items = [\n                {l:\"Vela\", v:phase.vela, id:'vela'}, {l:\"Piedra\", v:phase.piedra, id:'piedra'},\n                {l:\"Planta\", v:phase.planta, id:'planta'}, {l:\"Aceite\", v:phase.esencia, id:'aceite'},\n                {l:\"Tarot\", v:phase.tarot, id:'tarot'}, {l:\"Zodiaco Fav.\", v:zod, id:'zod'},\n                {l:\"N\u00famero M\u00e1gico\", v:num, id:'num'}, {l:\"Planeta\", v:planet, id:'planet'}\n            ];\n            \n            document.getElementById('corrGrid').innerHTML = items.map(i => `\n                <div class=\"corr-item\" onclick=\"showCorrDetail('${i.id}')\">\n                    <span class=\"expand-icon\">\u2295<\/span>\n                    <span>${i.l}<\/span><b>${i.v}<\/b>\n                <\/div>\n            `).join('');\n\n            document.getElementById('ritFav').innerText = phase.ritual;\n            document.getElementById('ritNo').innerText = phase.noRitual;\n            document.getElementById('oracleMsg').innerText = `\"${phase.tarot}\" junto a \"${planet}\" bajo la vibraci\u00f3n \"${num}\": La energ\u00eda pide transmutar la intenci\u00f3n en acci\u00f3n consciente. No esperes, el cosmos ya te ha dado la se\u00f1al.`;\n            \n            generateSigil(date);\n            document.getElementById('noteArea').value = \"\";\n            document.getElementById('detailPanel').classList.add('active');\n        }\n\n        function showCorrDetail(id) {\n            const phase = getLunarPhaseData(selectedDate);\n            const zod = GRIMORIO.zodiac[selectedDate.getDate() % 12];\n            const num = getNumerology(selectedDate);\n            let title = \"\", msg = \"\", link = \"\";\n\n            switch(id) {\n                case 'planta': title = \"Sabidur\u00eda de \" + phase.planta; msg = phase.details.planta; link = \"https:\/\/www.amazon.com\/dp\/B0CFZ8BJ54\"; break;\n                case 'piedra': title = \"Propiedades de la \" + phase.piedra; msg = phase.details.piedra; break;\n                case 'aceite': title = \"Beneficios del Aceite de \" + phase.esencia; msg = phase.details.aceite; break;\n                case 'vela': title = \"Vela Color \" + phase.vela; msg = phase.details.vela; link = \"https:\/\/www.amazon.com\/dp\/B0CH26QLVS\"; break;\n                case 'tarot': title = \"Arcano: \" + phase.tarot; msg = phase.details.tarot; break;\n                case 'zod': title = \"Zodiaco: \" + zod; msg = GRIMORIO.zodiacInfo[zod]; break;\n                case 'num': title = \"N\u00famero M\u00e1gico: \" + num; msg = \"La vibraci\u00f3n del \" + num + \" rige este d\u00eda. \u00dasalo para repetir afirmaciones o encender velas esa cantidad de veces.\"; link = \"https:\/\/www.amazon.com\/dp\/B0CFZ9DGNR\"; break;\n                case 'planet': title = \"Influencia de \" + GRIMORIO.planets[selectedDate.getDay()]; msg = \"Este planeta rige las horas del d\u00eda, influyendo en el \u00e9xito de las peticiones relacionadas con su esfera de poder.\"; break;\n            }\n\n            const footerBtn = link ? `<button class=\"book-btn\" onclick=\"window.open('${link}', '_blank', 'noopener,noreferrer')\">\ud83d\udcd6 PROFUNDIZA EN EL TEMA<\/button>` : \"\";\n            showMagicModal(title, msg, [{t:\"ENTENDIDO\", c:closeModal}], footerBtn);\n        }\n\n        function showRitualDetail(type) {\n            const phase = getLunarPhaseData(selectedDate);\n            let title, msg;\n            if(type === 'fav') {\n                title = \"Rituales Favorecidos\";\n                msg = `Aprovecha esta energ\u00eda para:\\n1. ${phase.magia}\\n2. Consagraci\u00f3n de amuletos\\n3. Meditaci\u00f3n de visualizaci\u00f3n\\n4. Ba\u00f1os de hierbas con ${phase.planta}\\n5. Peticiones de apertura\\n6. Conexi\u00f3n con gu\u00edas espirituales\\n7. Encendido de vela ${phase.vela}.`;\n            } else {\n                title = \"No Recomendado\";\n                msg = `Evita estas acciones hoy:\\n1. ${phase.noRitual}\\n2. Discusiones importantes\\n3. Firmas de contratos\\n4. Cambios de look dr\u00e1sticos\\n5. Iniciar ayunos severos\\n6. Confrontar a enemigos\\n7. Dejar rituales a medias.\\n\\nLa marea energ\u00e9tica actual pide precauci\u00f3n para no dispersar tu voluntad.`;\n            }\n            showMagicModal(title, msg, [{t:\"ENTENDIDO\", c:closeModal}]);\n        }\n\n        function showIntentHelp() {\n            showMagicModal(\"C\u00f3mo Intencionar\", \"Escribe tu deseo en presente, como si ya fuera real. Ejemplo: 'Agradezco la abundancia que fluye hacia m\u00ed'. Evita la palabra 'No'. Al terminar, visualiza el sigilo dorado entrando en tu pecho.\", [{t:\"LO HAR\u00c9\", c:closeModal}]);\n        }\n\n        function showSigilInfo() {\n            showMagicModal(\"Sello de Intenci\u00f3n\", \"Este sigilo es una firma energ\u00e9tica \u00fanica del d\u00eda. Funciona como un c\u00f3digo que 'ancla' tu voluntad al tejido del tiempo. Al guardar tu nota, el sigilo sella el pacto con tu subconsciente.\", [{t:\"ENTENDIDO\", c:closeModal}]);\n        }\n\n        function saveRitual() {\n            const txt = document.getElementById('noteArea').value;\n            if(!txt) return showMagicModal(\"Error\", \"Escribe tu intenci\u00f3n.\", [{t:\"OK\", c:closeModal}]);\n            const journal = JSON.parse(localStorage.getItem('astroly_journal') || \"[]\");\n            journal.push({ id: Date.now(), date: selectedDate.getTime(), text: txt });\n            localStorage.setItem('astroly_journal', JSON.stringify(journal));\n            closeDetail(); renderJournal();\n            showMagicModal(\"Grimorio\", \"Intenci\u00f3n sellada con \u00e9xito.\", [{t:\"Cerrar\", c:closeModal}]);\n        }\n\n        function renderJournal() {\n            const journal = JSON.parse(localStorage.getItem('astroly_journal') || \"[]\");\n            const container = document.getElementById('journalContainer');\n            document.getElementById('journalSection').style.display = journal.length > 0 ? 'block' : 'none';\n            container.innerHTML = journal.reverse().slice(0, 10).map(e => journalTemplate(e)).join('');\n            document.getElementById('readMoreBtn').style.display = journal.length > 10 ? 'block' : 'none';\n        }\n\n        function journalTemplate(e) {\n            const d = new Date(e.date);\n            const p = getLunarPhaseData(d);\n            return `<div class=\"journal-entry\" onclick=\"openDetail(new Date(${e.date}))\">\n                <span class=\"delete-entry\" onclick=\"confirmDelete(event, ${e.id})\">BORRAR<\/span>\n                <div style=\"color:var(--gold); font-size:0.7rem;\">${p.icon} ${d.toLocaleDateString()}<\/div>\n                <div style=\"font-size:0.9rem;\">${e.text}<\/div>\n            <\/div>`;\n        }\n\n        function openFullJournal() {\n            const journal = JSON.parse(localStorage.getItem('astroly_journal') || \"[]\");\n            document.getElementById('fullJournalContainer').innerHTML = journal.reverse().map(e => journalTemplate(e)).join('');\n            document.getElementById('fullJournalPanel').classList.add('active');\n        }\n\n        function confirmDelete(e, id) {\n            e.stopPropagation();\n            showMagicModal(\"Confirmar\", \"\u00bfDeseas borrar esta entrada del grimorio?\", [\n                {t:\"S\u00cd, BORRAR\", c:() => { deleteEntry(id); closeModal(); }},\n                {t:\"CANCELAR\", c:closeModal}\n            ]);\n        }\n\n        function deleteEntry(id) {\n            let j = JSON.parse(localStorage.getItem('astroly_journal') || \"[]\");\n            localStorage.setItem('astroly_journal', JSON.stringify(j.filter(e => e.id !== id)));\n            renderJournal();\n            if(document.getElementById('fullJournalPanel').classList.contains('active')) openFullJournal();\n        }\n\n        function generateSigil(date) {\n            const seed = date.getDate() + date.getFullYear();\n            let d = `M 50 25`;\n            for(let i=0; i<7; i++) {\n                const x = 50 + 30 * Math.cos(seed * i);\n                const y = 50 + 30 * Math.sin(seed * i);\n                d += ` L ${x} ${y}`;\n            }\n            document.getElementById('sigilPath').setAttribute('d', d + ' Z');\n        }\n\n        function showMagicModal(title, msg, btns, extraHtml = \"\") {\n            document.getElementById('modalTitle').innerText = title;\n            document.getElementById('modalMsg').innerText = msg;\n            const footer = document.getElementById('modalFooter');\n            footer.innerHTML = extraHtml;\n            btns.forEach(b => {\n                const btn = document.createElement('button');\n                btn.className = \"action-btn\"; btn.innerText = b.t; btn.onclick = b.c;\n                footer.appendChild(btn);\n            });\n            document.getElementById('magicModal').classList.add('active');\n        }\n\n        function closeModal() { document.getElementById('magicModal').classList.remove('active'); }\n        function closeDetail() { document.getElementById('detailPanel').classList.remove('active'); }\n        function closeFullJournal() { document.getElementById('fullJournalPanel').classList.remove('active'); }\n        function changeMonth(s) { viewDate.setMonth(viewDate.getMonth() + s); renderCalendar(); }\n\n        renderCalendar();\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Astroly | Grimorio y Calendario Lunar Perpetuo ASTROLY Calendario lunar m\u00e1gico perpetuo \u25c0 \u25b6 DOM LUN MAR MI\u00c9 JUE VIE S\u00c1B Agenda Ritual Lunar LEER M\u00c1S ENTRADAS \u00d7 ? SIGILO PARA SELLAR INTENCI\u00d3N DEL D\u00cdA \u2728 Toca las tarjetas para expandir sabidur\u00eda \u2295 \u2728 RITUALES FAVORECIDOS: \u2295 \u26a0\ufe0f NO RECOMENDADO: \ud83d\udcda GRIMORIO RECOMENDADO OR\u00c1CULO COMBINADO &hellip; <a href=\"https:\/\/brujaverso.marcosnahuel.com\/inicio\/calendario-lunar\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abCalendario lunar\u00bb<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-218","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/pages\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":3,"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/pages\/218\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/pages\/218\/revisions\/239"}],"wp:attachment":[{"href":"https:\/\/brujaverso.marcosnahuel.com\/inicio\/wp-json\/wp\/v2\/media?parent=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}