{"id":67,"date":"2026-03-08T11:33:59","date_gmt":"2026-03-08T11:33:59","guid":{"rendered":"https:\/\/frankjmmiller.com\/?page_id=67"},"modified":"2026-03-19T14:52:50","modified_gmt":"2026-03-19T14:52:50","slug":"portfolio","status":"publish","type":"page","link":"https:\/\/frankjmmiller.com\/index.php\/portfolio\/","title":{"rendered":"Portfolio"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"67\" class=\"elementor elementor-67\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56d3023 e-flex e-con-boxed e-con e-parent\" data-id=\"56d3023\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11c64a8 elementor-widget elementor-widget-portfolio_books_widget\" data-id=\"11c64a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"portfolio_books_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <style>\n            .portfolio-books-grid {\n                display: flex;\n                justify-content: center;\n                gap: 40px;\n                flex-wrap: wrap;\n                background: #3B2B1B;\n                padding: 40px 10px;\n                border-radius: 18px;\n                box-shadow: 0 2px 12px rgba(80,60,30,0.2);\n            }\n            .portfolio-book {\n                background: linear-gradient(140deg, #56381C 70%, #C2B280 100%);\n                border-radius: 12px;\n                padding: 24px 18px 16px 18px;\n                box-shadow: 0 4px 22px -3px #7a5a2b33;\n                max-width: 240px;\n                text-align: center;\n                transition: transform 0.14s;\n            }\n            .portfolio-book:hover {\n                transform: translateY(-8px) scale(1.03);\n                box-shadow: 0 16px 48px -16px #7a5a2b59;\n            }\n            .portfolio-book-title {\n                font-size: 1.35rem;\n                font-weight: bold;\n                color: #E7D3B4;\n                margin-bottom: 8px;\n                margin-top: 18px;\n            }\n            .portfolio-book-type {\n                font-size: 0.9rem;\n                font-style: italic;\n                color: #ddcea2;\n                margin-bottom: 12px;\n            }\n            .portfolio-book-cover {\n                background: #A28861;\n                border-radius: 7px;\n                max-width: 100%;\n                height: 240px;\n                object-fit: cover;\n                box-shadow: 0 2px 10px #6d4c254d;\n                cursor: pointer;\n                transition: box-shadow 0.18s;\n            }\n            .portfolio-book-cover:hover { box-shadow: 0 4px 32px #E7D3B4cc; }\n            \/* Modal Styles *\/\n            .portfolio-modal {\n                display: none;\n                position: fixed;\n                z-index: 99999;\n                left: 0; top: 0; width: 100%; height: 100%;\n                background: rgba(40,25,10, 0.85);\n                justify-content: center;\n                align-items: center;\n            }\n            .portfolio-modal.active { display: flex; }\n            .portfolio-modal-content {\n                background: #49321B;\n                color: #E7D3B4;\n                padding: 36px 32px 32px 32px;\n                border-radius: 14px;\n                box-shadow: 0 8px 40px #A2886177;\n                max-width: 430px;\n                width: 95vw;\n                max-height: 80vh;\n                overflow-y: auto;\n                text-align: left;\n                position: relative;\n                animation: popUp .23s;\n            }\n            @keyframes popUp {\n                0% { transform: scale(0.82);}\n                100% { transform: scale(1);}\n            }\n            .portfolio-modal-close {\n                position: absolute;\n                top: 16px;\n                right: 18px;\n                font-size: 1.7rem;\n                color: #E7D3B4;\n                background: none;\n                border: none;\n                cursor: pointer;\n                font-family: serif;\n            }\n            .portfolio-modal-title {\n                font-size: 1.25rem;\n                color: #F5E5C2;\n            }\n            .portfolio-modal-cover {\n                max-width: 120px;\n                display: block;\n                margin-bottom: 20px;\n                margin-top: 12px;\n                border-radius: 8px;\n                box-shadow: 0 2px 16px #A2886197;\n            }\n            .portfolio-modal-preview {\n                font-size: 1.08rem;\n                line-height: 1.55;\n                margin-bottom: 20px;\n            }\n            .portfolio-buy-btn {\n                display: inline-block;\n                background-color: #A28861;\n                color: #E7D3B4;\n                padding: 12px 24px;\n                border-radius: 6px;\n                text-decoration: none;\n                font-weight: bold;\n                border: none;\n                cursor: pointer;\n                transition: all 0.3s;\n                margin-top: 16px;\n            }\n            .portfolio-buy-btn:hover {\n                background-color: #8a6f52;\n                transform: scale(1.05);\n                box-shadow: 0 4px 12px rgba(162, 136, 97, 0.4);\n            }\n        <\/style>\n\n        <div class=\"portfolio-books-grid\">\n                            <div class=\"portfolio-book\">\n                    <img decoding=\"async\" class=\"portfolio-book-cover\" \n                         src=\"http:\/\/frankjmmiller.com\/wp-content\/uploads\/2026\/03\/Little-Hill.jpg\" \n                         alt=\"Little Hill\" \n                         data-book=\"0\" \/>\n                    <div class=\"portfolio-book-title\">Little Hill<\/div>\n                    <div class=\"portfolio-book-type\">Children&#039;s Book (2010)<\/div>\n                <\/div>\n                            <div class=\"portfolio-book\">\n                    <img decoding=\"async\" class=\"portfolio-book-cover\" \n                         src=\"http:\/\/frankjmmiller.com\/wp-content\/uploads\/2026\/03\/The-Mindscape-Experiment-Engels-Top-1.png\" \n                         alt=\"The Mindscape Experiment\" \n                         data-book=\"1\" \/>\n                    <div class=\"portfolio-book-title\">The Mindscape Experiment<\/div>\n                    <div class=\"portfolio-book-type\">Thriller (Coming Soon!)<\/div>\n                <\/div>\n                            <div class=\"portfolio-book\">\n                    <img decoding=\"async\" class=\"portfolio-book-cover\" \n                         src=\"http:\/\/frankjmmiller.com\/wp-content\/uploads\/2026\/03\/Legacy4.png\" \n                         alt=\"The Forbidden Legacy\" \n                         data-book=\"2\" \/>\n                    <div class=\"portfolio-book-title\">The Forbidden Legacy<\/div>\n                    <div class=\"portfolio-book-type\">Thriller (Coming end of 2026)<\/div>\n                <\/div>\n                            <div class=\"portfolio-book\">\n                    <img decoding=\"async\" class=\"portfolio-book-cover\" \n                         src=\"http:\/\/frankjmmiller.com\/wp-content\/uploads\/2026\/03\/Vatican-2.png\" \n                         alt=\"The Vatican Account\" \n                         data-book=\"3\" \/>\n                    <div class=\"portfolio-book-title\">The Vatican Account<\/div>\n                    <div class=\"portfolio-book-type\">Thriller (Coming 2027 \/ 2028)<\/div>\n                <\/div>\n                    <\/div>\n\n        <div class=\"portfolio-modal\" id=\"portfolioBookModal\">\n            <div class=\"portfolio-modal-content\">\n                <button class=\"portfolio-modal-close\" title=\"Close\">&times;<\/button>\n                <div id=\"portfolio-modal-details\"><\/div>\n            <\/div>\n        <\/div>\n\n        <script>\n        document.addEventListener('DOMContentLoaded', function() {\n            const booksData = [{\"book_title\":\"Little Hill\",\"book_type\":\"Children&#039;s Book (2010)\",\"book_preview\":\"Sneak Peek.  \\nLittle Hill seems like a place where nothing ever happens. A quiet village where the days drift by, the forests whisper in the wind, and the biggest excitement is a car speeding down the road. But beneath these peaceful hills lies a secret that has waited centuries to be uncovered.\\nWhen Rick, Lizzy, and their younger brother Tommy head into the woods on a warm summer morning, their adventure turns into a nightmare. The ground begins to rumble. The trees shake. A thunderous roar tears through the forest as if something colossal beneath the earth has awakened. And then\\u2026\\nthe world splits open.\\nThe children plunge into the darkness and land in a hidden realm no human has ever seen: the Dome, a vast underground world filled with light, ancient symbols, and a civilization that has lived in silence for thousands of years. The Under\\u2011people, small, swift, and deeply secretive, have built their world on peace and harmony.\\nBut that world is collapsing.\\nThe tremors the children felt are no natural phenomenon. They are caused by something far more dangerous: Howard Dark, the ruthless industrialist who controls the village above. His massive machines are drilling deeper into the mountain every day, hunting for wealth and power, and in the process, threatening to destroy an entire hidden civilization.\\nForced into an uneasy alliance with the Under\\u2011people, the children are given one chance: return to the surface, and come back the next day to uncover what Howard Dark is truly planning. Because if the drilling continues, the Dome will fall, and with it, a secret that was never meant to reach the light of day.\\nAs Rick, Lizzy, and Tommy sneak through forests, spy on colossal machines, and race through labyrinthine tunnels, they discover that courage isn\\u2019t the absence of fear\\u2026\\nbut the decision to keep going, even when the world is literally breaking beneath your feet.\\nAnd in Little Hill, nothing is what it seems.\\n\",\"_id\":\"4fe87ad\",\"book_cover\":{\"url\":\"http:\\\/\\\/frankjmmiller.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Little-Hill.jpg\",\"id\":283,\"size\":\"\",\"alt\":\"Little Hill\",\"source\":\"library\"},\"book_buy_text\":\"Buy Now\",\"book_buy_link\":{\"url\":\"\",\"is_external\":\"\",\"nofollow\":\"\",\"custom_attributes\":\"\"}},{\"book_title\":\"The Mindscape Experiment\",\"book_type\":\"Thriller (Coming Soon!)\",\"book_preview\":\"Sneak Peek.\\n\\nA man is executed in broad daylight on the streets of Amsterdam.\\n\\nRonald Haaksma was more than a courier, his company quietly moved sensitive cargo for embassies and intelligence networks around the world. When he dies, the data he carried vanishes with him.\\n\\nInvestigative journalist Eva Janssen begins digging and uncovers a web that stretches from Amsterdam to Washington and Moscow. Cartels, spies, and powerful governments are all chasing the same thing: a secret project known as Mindscape.\\n\\nIf the rumors are true, Mindscape isn\\u2019t just a weapon.\\n\\nIt\\u2019s a way to control the human mind.\\n\\nAnd now that Eva has found the first thread, she\\u2019s no longer just investigating the story.\\n\\nShe\\u2019s become part of it.\\n\\n\",\"_id\":\"c7ebdb3\",\"book_cover\":{\"url\":\"http:\\\/\\\/frankjmmiller.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/The-Mindscape-Experiment-Engels-Top-1.png\",\"id\":347,\"size\":\"\",\"alt\":\"The Mindscape Experiment\",\"source\":\"library\"},\"book_buy_text\":\"Buy Now\",\"book_buy_link\":{\"url\":\"\",\"is_external\":\"\",\"nofollow\":\"\",\"custom_attributes\":\"\"}},{\"book_title\":\"The Forbidden Legacy\",\"book_type\":\"Thriller (Coming end of 2026)\",\"book_preview\":\"Sneak Peek.\\n\\nIn the misty shadows of Tianjin, a secret Chinese-North Korean project activates a deadly cargo destined for the United States via Amsterdam. When integrity analyst Liang Xun films the explosion and sends the footage to investigative journalist Eva Janssen, he sets in motion a deadly hunt that will change her life forever.\\nArmed with a mysterious datapad containing names, routes, and an ancient pact known as The Forbidden Legacy (or the Legacy Pact), Eva is relentlessly pursued by professional killers, diplomatic phantoms, and a shadowy organization that has operated in the dark for decades. Together with police inspector John Meijer, Chief Commissioner Erik van der Linden, and an unexpected ally, North Korean Colonel Han Soo-jin, she unravels a conspiracy far older and larger than Project Long Meridian.\\nWhat begins as a desperate race against chemical terror soon evolves into a battle against a hidden network that connects governments, intelligence agencies, and even former enemies. A pact forged in 1976, a concealed AI legacy, an \\u201cSuccessor\\u201d designed to \\u201cimprove\\u201d humanity\\u2026 and an inheritance that should never have been uncovered.\\nThe Forbidden Legacy is a fast-paced, international thriller packed with betrayal, ancient secrets, and impossible choices. Because sometimes the greatest threat is not the enemy you can see\\u2026 but the legacy you were never meant to discover.\\n\",\"_id\":\"98d14ec\",\"book_cover\":{\"url\":\"http:\\\/\\\/frankjmmiller.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Legacy4.png\",\"id\":314,\"size\":\"\",\"alt\":\"\",\"source\":\"library\"},\"book_buy_text\":\"Buy Now\",\"book_buy_link\":{\"url\":\"\",\"is_external\":\"\",\"nofollow\":\"\",\"custom_attributes\":\"\"}},{\"_id\":\"55bf1c4\",\"book_title\":\"The Vatican Account\",\"book_type\":\"Thriller (Coming 2027 \\\/ 2028)\",\"book_cover\":{\"url\":\"http:\\\/\\\/frankjmmiller.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Vatican-2.png\",\"id\":345,\"size\":\"\",\"alt\":\"The Vatican Account\",\"source\":\"library\"},\"book_preview\":\"Sneak Peek. \\nWhen a young accountant from the Vatican Bank (IOR) is found dead in the Tiber River, thirty silver coins jammed down his throat, the official cause of death is swiftly ruled as suicide. But for former intelligence officer Gabriel Vance, something doesn\\u2019t add up. The accountant was on the verge of exposing a network of secret accounts that stretched far beyond the Church.\\n\\nVance uncovers the existence of the \\u2018Vatican Account\\u2019, an ancient, underground financial system controlled by a shadowy alliance between the Vatican and the world\\u2019s most powerful leaders. This isn\\u2019t ordinary corruption; it\\u2019s a war algorithm. Every time a major conflict erupts in the Middle East or Eastern Europe, the alliance\\u2019s stocks surge. Peace is a liability they cannot afford.\\n\\nAs a new world war looms, triggered by a meticulously orchestrated incident, Vance must secure the digital \\u2018Keys of Peter\\u2019, the only access codes to the capital that fuels entire armies. From the gilded halls of the Vatican to the fortified bunkers of Washington, Vance is hunted by mercenaries paid with the blood money of a system that has endured for two thousand years.t.\",\"book_buy_text\":\"Buy Now\",\"book_buy_link\":{\"url\":\"\",\"is_external\":\"\",\"nofollow\":\"\",\"custom_attributes\":\"\"}}];\n            const modal = document.getElementById('portfolioBookModal');\n            const closeBtn = document.querySelector('.portfolio-modal-close');\n            \n            document.querySelectorAll('.portfolio-book-cover').forEach(cover => {\n                cover.addEventListener('click', function() {\n                    const idx = this.getAttribute('data-book');\n                    const book = booksData[idx];\n                    let buyButtonHtml = '';\n                    \n                    if (book.book_buy_link && book.book_buy_link.url) {\n                        const target = book.book_buy_link.is_external ? '_blank' : '_self';\n                        const rel = book.book_buy_link.is_external ? 'noopener noreferrer' : '';\n                        buyButtonHtml = `<a href=\"${book.book_buy_link.url}\" target=\"${target}\" rel=\"${rel}\" class=\"portfolio-buy-btn\">${book.book_buy_text || 'Buy Now'}<\/a>`;\n                    }\n                    \n                    let html = `\n                        <img decoding=\"async\" src=\"${book.book_cover.url}\" class=\"portfolio-modal-cover\" alt=\"${book.book_title}\" \/>\n                        <div class=\"portfolio-modal-title\"><b>${book.book_title}<\/b> <br><span style=\"font-style:italic; font-size:0.97em;\">${book.book_type}<\/span><\/div>\n                        <div class=\"portfolio-modal-preview\">${book.book_preview}<\/div>\n                        ${buyButtonHtml}\n                    `;\n                    document.getElementById('portfolio-modal-details').innerHTML = html;\n                    modal.classList.add('active');\n                    document.body.style.overflow = 'hidden';\n                });\n            });\n            \n            closeBtn.addEventListener('click', function() {\n                modal.classList.remove('active');\n                document.body.style.overflow = 'auto';\n            });\n            \n            modal.addEventListener('click', function(e) {\n                if (e.target === this) {\n                    this.classList.remove('active');\n                    document.body.style.overflow = 'auto';\n                }\n            });\n            \n            window.addEventListener('keydown', function(e) {\n                if (e.key === 'Escape' && modal.classList.contains('active')) {\n                    modal.classList.remove('active');\n                    document.body.style.overflow = 'auto';\n                }\n            });\n        });\n        <\/script>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Little Hill Children&#039;s Book (2010) The Mindscape Experiment Thriller (Coming Soon!) The Forbidden Legacy Thriller (Coming end of 2026) The Vatican Account Thriller (Coming 2027 \/ 2028) &times;<\/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-67","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/pages\/67","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/comments?post=67"}],"version-history":[{"count":115,"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/pages\/67\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/pages\/67\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/frankjmmiller.com\/index.php\/wp-json\/wp\/v2\/media?parent=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}