{"id":3608,"date":"2025-10-01T22:32:53","date_gmt":"2025-10-01T22:32:53","guid":{"rendered":"https:\/\/www.hellyeaplots.com\/shop\/?page_id=3608"},"modified":"2026-02-04T17:32:33","modified_gmt":"2026-02-04T17:32:33","slug":"infernal-ledger-new","status":"publish","type":"page","link":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/","title":{"rendered":"Infernal Ledger New"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3608\" class=\"elementor elementor-3608\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53d00b7 e-con-full e-flex e-con e-parent\" data-id=\"53d00b7\" data-element_type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-5fa7bcc e-flex e-con-boxed e-con e-child\" data-id=\"5fa7bcc\" data-element_type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df0fa87 elementor-icon-list--layout-inline elementor-align-right elementor-mobile-align-center elementor-widget__width-auto elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"df0fa87\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.hellyeaplots.com\/impact\/impact_ledger.php\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">\u300bImpact Ledger<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\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 class=\"elementor-element elementor-element-b3da70c elementor-widget elementor-widget-html\" data-id=\"b3da70c\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n  <style>\r\n   body {\r\n    margin: 0;\r\n    padding: 40px;\r\n    background: #d9b573;\r\n    font-family: Georgia, serif;\r\n    color: #000;\r\n    line-height: 1.5;\r\n    box-shadow: inset 0px 0px 50px 10px #a36d0b, inset 0px 0px 100px 10px #a36d0b;\r\n}\r\n\r\n    h1 {\r\n      text-align: center;\r\n      font-size: 40px;\r\n      font-weight: bold;\r\n      margin: 0;\r\n    }\r\n\r\n    h2 {\r\n      text-align: center;\r\n      font-size: 18px;\r\n      margin: 5px 0 20px 0;\r\n      letter-spacing: 2px;\r\n    }\r\n\r\n    .stats {\r\n      display: flex;\r\n      justify-content: center;\r\n      border: 2px solid #000;\r\n      margin: 20px auto;\r\n      max-width: 700px;\r\n    }\r\n\r\n    .stat {\r\n      flex: 1;\r\n      text-align: center;\r\n      padding: 20px;\r\n      border-right: 2px solid #000;\r\n    }\r\n\r\n    .stat:last-child {\r\n      border-right: none;\r\n    }\r\n\r\n    .stat p {\r\n      margin: 5px 0;\r\n      font-weight: bold;\r\n    }\r\n\r\n    .highlight {\r\n      text-align: center;\r\n      font-size: 20px;\r\n      font-weight: bold;\r\n      margin: 25px 0 10px 0;\r\n    }\r\n\r\n    .description {\r\n      text-align: center;\r\n      max-width: 650px;\r\n      margin: 0 auto 30px auto;\r\n    }\r\n\r\n    table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin: 20px 0;\r\n      border: 1px solid #000;\r\n      font-size: 15px;\r\n    }\r\n\r\n    table thead {\r\n      background: none;\r\n      border-bottom: 2px solid #000;\r\n    }\r\n\r\n    th, td {\r\n      padding: 10px;\r\n      border-bottom: 1px solid #000;\r\n      text-align: left;\r\n    }\r\n\r\n    .footer-ads {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      gap: 20px;\r\n      margin: 20px 0px;\r\n    }\r\n\r\n    .ad-box {\r\n      flex: 1;\r\n          padding: 0px;\r\n    display: flex;\r\n    align-items: center;\r\n    flex-direction: column;\r\n    gap: 0px;\r\n    justify-content: center;\r\n    border: none;\r\n    border-right: 2px solid #000;\r\n      text-align: center;\r\n      font-weight: bold;\r\n    }\r\n\r\n    .ad-box p {\r\n    margin: 0px;\r\n    font-weight: 500;\r\n    }\r\n    \r\n    .ad-box h2 {\r\n    margin: 10px 0px;\r\n    font-size: 30px;\r\n    line-height: 40px;\r\n    }\r\n\r\n    .black-box {\r\n      flex: 1;\r\n     background-color: transparent;\r\n    border: 2px solid #000;\r\n    box-sizing: border-box;\r\n    padding: 0px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: space-between;\r\n      text-align: center;\r\n      font-weight: bold;\r\n      font-size: 18px;\r\n    }\r\n    \r\n    .black-box p {\r\n    color: #000;\r\n}\r\n\r\n.black-box a {\r\n    background-color: #000;\r\n    padding: 10px;\r\n    color: #d9b573;\r\n    font-size: 25px;\r\n}\r\n.black-box h1 {\r\n    background-color: #000;\r\n    padding: 10px;\r\n    color: #d9b573;\r\n    font-size: 45px;\r\n    line-height: 50px;\r\n}\r\n\r\n    .black-box p {\r\n      margin: 10px 0;\r\n    }\r\n\r\n\r\ntable.scr-summary-table tr {\r\n    background-color: transparent !important;\r\n    border: none !important;\r\n    outline: none !important;\r\n}\r\n\r\ntable.scr-summary-table tr th {\r\n    border: none !important;\r\n    outline: none !important;\r\n    color: #000;\r\n}\r\n\r\ntable.scr-summary-table tr td {\r\n    border: none !important;\r\n    outline: none !important;\r\n    border-bottom: 1px solid #000 !important;\r\n    border-top: 1px solid #000 !important;\r\n}\r\n\r\ntable.scr-summary-table {\r\n    border: none;\r\n}\r\n\r\ntable.scr-summary-table thead {\r\n    border: none;\r\n}\r\ntable.scr-plots-table {\r\n    border: none;\r\n}\r\n\r\ntable.scr-plots-table thead {\r\n    border: none;\r\n}\r\n\r\ntable.scr-plots-table tr {\r\n    border: none !important;\r\n    background-color: transparent !important;\r\n}\r\n\r\ntable.scr-plots-table th {color: #000;border: none;border-top: 1px solid #000 !important;border-bottom: 1px solid #000 !important;}\r\n\r\ntable.scr-plots-table td {\r\n    border: none;\r\n    border-bottom: 1px solid #000;\r\n}\r\n\r\n.my-tabz {\r\n    overflow-x: auto;\r\n}\r\n\r\n@media (max-width: 360px){\r\n.ad-box {\r\n    border: none;\r\n    border-bottom: 2px solid #000;\r\n}\r\n.scr-summary-wrapper {\r\n    overflow-x: auto;\r\n}\r\n\r\n\r\n\r\nbody {\r\n    padding: 10px;\r\n}\r\n\r\n.footer-ads {\r\n    flex-direction: column;\r\n}\r\n}\r\n@media (min-width: 360px) and (max-width: 767px){\r\n.ad-box {\r\n    border: none;\r\n    border-bottom: 2px solid #000;\r\n}\r\n.scr-summary-wrapper {\r\n    overflow-x: auto;\r\n}\r\n\r\n\r\n\r\nbody {\r\n    padding: 10px;\r\n}\r\n\r\n.footer-ads {\r\n    flex-direction: column;\r\n}\r\n}\r\n@media (min-width: 768px) and (max-width: 1024px){\r\n.ad-box {\r\n    border: none;\r\n    border-bottom: 2px solid #000;\r\n}\r\n.scr-summary-wrapper {\r\n    overflow-x: auto;\r\n}\r\n\r\n\r\n\r\nbody {\r\n    padding: 10px;\r\n}\r\n\r\n.footer-ads {\r\n    flex-direction: column;\r\n}\r\n}\r\n\r\n\r\n  <\/style>\r\n\r\n<body>\r\n\r\n  <h1>Infernal Ledger\u2122<\/h1>\r\n  <h2>\u2014 STATS PAGE \u2014<\/h2>\r\n  <p style=\"text-align:center; max-width:100%; margin:0 auto;\">\r\n    Real-time numbers showing the impact of HellYea\u2122 Plots donations and Hell\u2019s expansion.\r\n  <\/p>\r\n\r\n<div class=\"hellyea-stats\">\r\n    <div class=\"scr-summary-wrapper\">\n        <table class=\"scr-summary-table\" style=\"width:100%;border-collapse:collapse;text-align:center;\">\n            <thead>\n                <tr style=\"background:#111;color:#fff\">\n                    <th>Total Donations<\/th>\n                    <th>Plots Claimed<\/th>\n                    <th>Damns<\/th>\n                    <th>Realms Expanded<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody>\n                <tr>\n                    <td>$936.23<\/td>\n                    <td>18<\/td>\n                    <td>122<\/td>\n                    <td>1<\/td>\n                <\/tr>\n            <\/tbody>\n        <\/table>\n    <\/div>\n    \r\n<\/div>\r\n\r\n  <p class=\"highlight\">\u2192 HELL\u2019S ONLY GETTING HOTTER<\/p>\r\n  <p class=\"description\">\r\n    The Infernal Ledger\u2122 is our live tracker of pettiness for a cause. Every damnation counts towards charitable rebellion.\r\n  <\/p>\r\n\r\n  <!--<h2 style=\"margin-top:30px;\">INFERNAL LEDGER<\/h2>-->\r\n  \r\n  <div class=\"auto-custom-table\">\r\n      <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?render=6Ldbu6ssAAAAAEDqHc-IQC14Epm8M5-45hta2xnY\"><\/script>\n<script>\nwindow.HY_WP_RECAPTCHA_SITE_KEY = \"6Ldbu6ssAAAAAEDqHc-IQC14Epm8M5-45hta2xnY\";\n<\/script>\n    <style>\n        .scr-ledger-wrap{ margin-bottom:30px; position:relative; }\n\n        \/* Outside reset button *\/\n        .scr-reset-out{\n            position:absolute;\n            top:-44px;\n            right:0;\n            display:none;\n        }\n        .scr-reset-btn{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            padding:6px 10px;\n            border-radius:10px;\n            border:1px solid rgba(0,0,0,.25);\n            background:#111;\n            color:#fff;\n            font-size:12px;\n            cursor:pointer;\n            white-space:nowrap;\n            user-select:none;\n        }\n        .scr-reset-btn:hover{\n            background:#c70204;\n            border-color:#c70204;\n        }\n\n        \/* scroll wrapper *\/\n        .scr-ledger-block{ margin-bottom:30px; }\n        .scr-ledger-scroll{ overflow-x:auto; width:100%; }\n        .scr-plots-table{ width:100%; border-collapse:collapse; }\n        .scr-plots-table th,\n        .scr-plots-table td{\n            padding:15px 8px;\n            text-align:left;\n            vertical-align:middle;\n        }\n\n        .scr-bod-btn{\n            display:inline-block;\n            padding:5px 10px;\n            border-radius:4px;\n            border:1px solid #444;\n            font-size:12px;\n            text-decoration:none;\n            background:#111;\n            color:#fff;\n            white-space:nowrap;\n        }\n        .scr-bod-btn:hover{ background:#fff; color:#000; }\n\n        .scr-th-sort{\n            position:relative;\n            display:inline-flex;\n            align-items:center;\n            gap:8px;\n            white-space:nowrap;\n        }\n        .scr-sort-icon{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            width:18px;\n            height:18px;\n            border-radius:6px;\n            border:1px solid rgba(255,255,255,.25);\n            font-size:12px;\n            cursor:pointer;\n            user-select:none;\n            background-color: #000;\n            color: #fff;\n        }\n        .scr-sort-icon:hover{\n            background:#fff;\n            color:#000;\n        }\n\n        .scr-sort-menu{\n            position:absolute;\n            top:calc(100% + 8px);\n            left:0;\n            min-width:190px;\n            background:#0b0b0b;\n            border:1px solid #333;\n            border-radius:12px;\n            overflow:hidden;\n            box-shadow:0 10px 30px rgba(0,0,0,.5);\n            z-index:9999;\n            display:none;\n            flex-direction: column;\n        }\n        .scr-sort-menu button{\n            width:100%;\n            text-align:left;\n            padding:10px 12px;\n            background:transparent;\n            border:0;\n            color:#fff;\n            cursor:pointer;\n            font-size:13px;\n        }\n        .scr-sort-menu button:hover{ background:#fff; color:#000; }\n\n        .scr-sort-menu .scr-sort-active{\n            background:#c70204 !important;\n            color:#fff !important;\n        }\n\n        \/* \u2705 Simple highlight (no blink) *\/\n        tr.scr-row-highlight td{\n            background-color: #ffffff42 !important;\n            transition: background-color 0.6s ease;\n        }\n        tr.scr-row-highlight{\n            box-shadow: 0px 0px 15px 0px red;\n            transition: box-shadow 0.6s ease;\n        }\n\n        \/* =========================\n           \u2705 NEW ADS LAYOUT (Static left + Rotating right)\n        ========================= *\/\n        .scr-ledger-ads{\n            display:flex;\n            gap:18px;\n            align-items:stretch;\n            margin:18px 0 26px;\n            width:100%;\n            box-sizing:border-box;\n        }\n        .scr-ledger-ads .scr-ad-col{ flex:1; min-width:0; }\n\n        .scr-ad-card{\n            border-radius:14px;\n            padding:18px 18px;\n            border:1px solid rgba(0,0,0,.25);\n            box-shadow:0 10px 26px rgba(0,0,0,.18);\n            height:100%;\n            box-sizing:border-box;\n        }\n\n        \/* left static *\/\n        .scr-ad-static{\n            background:rgba(255,255,255,.55);\n            color:#000;\n        }\n        .scr-ad-static .scr-ad-h{\n            font-size:18px;\n            margin:0 0 10px;\n            letter-spacing:.6px;\n            font-weight:800;\n            text-transform:uppercase;\n        }\n        .scr-ad-static .scr-ad-p{\n            margin:0 0 6px;\n            font-size:14px;\n            line-height:1.35;\n        }\n\n        \/* right rotating *\/\n        .scr-ad-rotating{\n            background:#0b0b0b;\n            color:#f5c16c;\n            position:relative;\n            overflow:hidden;\n        }\n        .scr-ad-rotating .scr-ad-h{\n            font-size:18px;\n            margin:0 0 10px;\n            letter-spacing:.8px;\n            font-weight:900;\n            text-transform:uppercase;\n        }\n        .scr-ad-rotating .scr-ad-p{\n            margin:0 0 6px;\n            font-size:14px;\n            line-height:1.35;\n        }\n\n        .scr-ad-btn{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            margin-top:12px;\n            padding:10px 14px;\n            border-radius:12px;\n            background:#111;\n            color:#fff;\n            text-decoration:none;\n            border:1px solid rgba(255,255,255,.2);\n            font-size:14px;\n            cursor:pointer;\n            user-select:none;\n        }\n        .scr-ad-btn:hover{\n            background:#c70204;\n            border-color:#c70204;\n            color:#fff;\n        }\n        .scr-ad-small{\n            margin-top:8px;\n            font-size:12px;\n            opacity:.85;\n            line-height:1.3;\n        }\n\n        \/* fade animation target *\/\n        .scr-rot-inner{\n            transition:opacity .45s ease;\n            opacity:1;\n        }\n        .scr-rot-inner.scr-fade{\n            opacity:0;\n        }\n\/* =========================\n   GRAND OPENING STATIC AD\n========================= *\/\n.scr-ad-grand{\n  min-height:270px;\n  padding:0;\n  border:1px solid rgba(255,255,255,.10);\n  border-radius:16px;\n  overflow:hidden;\n  background-color:#000;\n  background-size:cover;\n  background-position:center;\n  background-repeat:no-repeat;\n  position:relative;\n  box-shadow:0 14px 35px rgba(0,0,0,.28);\n}\n\n.scr-ad-card.scr-ad-grand {\n    background-size: cover;\n    background-position: bottom center;\n    background-repeat: no-repeat;\n}\n\n.scr-ad-grand:before{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  border: 1px solid rgb(203 203 203 \/ 41%) !important;\n  pointer-events:none;\n}\n\n.scr-grand-overlay{\n  position:relative;\n  z-index:1;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n}\n\n.scr-grand-btn {\n    background: linear-gradient(180deg, #895a05, #fbcf77) !important;\n    color: #000 !important;\nalign-self: center !important;\n}\n\n.scr-grand-ring\n {\n    width: 100%;\n    max-width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    padding: initial;\n    border-radius: 999px;\n}\n\n.scr-grand-script {\n    font-family: Georgia, \"Times New Roman\", serif;\n    font-size: 25px;\n    line-height: .95;\n    font-weight: 700;\n    color: #fff;\n    margin: 0 0 6px;\n}\n\n.scr-grand-ring {\n    align-items: start;\n    position: relative;\n    padding-right: 40%;\n    text-align: left;\n}\n\n.scr-grand-ring::after {\n    content: \"\";\n    background-image: url(\"https:\/\/www.hellyeaplots.com\/shop\/wp-content\/uploads\/2026\/03\/AlterEgo-Supplements-wide-scaled-1.webp\");\n    background-size: contain;\n    background-position: center;\n    background-repeat: no-repeat;\n    width: 40%;\n    height: 60px;\n    position: absolute;\n    right: 5px;\n    border: 2px solid #d0a34c;\n    background-color: #fff;\n    border-radius: 10px;\n    transform: translate(0px, -50%);\n    top: 50%;\n}\n\t\t\t\t\t\t\t\t\n.grand_desc {\n    color: #fff;\n}\n\n.scr-grand-caps{\n  font-family:Georgia, \"Times New Roman\", serif;\n  font-size:26px;\n  line-height:1;\n  font-weight:800;\n  letter-spacing:1px;\n  color:#efc16b;\n  text-transform:uppercase;\n  margin:0 0 8px;\n}\n\n.scr-grand-date{\n  font-family:Georgia, \"Times New Roman\", serif;\n  font-size:26px;\n  line-height:1.05;\n  font-weight:700;\n  color:#ffffff;\n  margin:0 0 6px;\n}\n\n.scr-grand-time{\n  font-family:Georgia, \"Times New Roman\", serif;\n  font-size:18px;\n  line-height:1;\n  font-weight:700;\n  color:#ffffff;\n  margin:0;\n}\n\n.scr-grand-btn{\n  margin-top:16px;\n  align-self:center;\n}\n\n@media (max-width:768px){\na.scr-ad-btn.scr-grand-btn {\n    align-self: center;\n}\n  .scr-grand-script{ font-size:20px; }\n  .scr-grand-caps{ font-size:22px; }\n  .scr-grand-date{ font-size:22px; }\n  .scr-grand-time{ font-size:16px; }\n}\n        @media (max-width: 768px){\n            .scr-plots-table th,\n            .scr-plots-table td{\n                font-size:12px;\n                padding:4px 6px;\n            }\n            .scr-sort-menu{\n                min-width:unset;\n                width:220px;\n                max-width:70vw;\n            }\n            .scr-reset-out{\n                position:static;\n                display:none;\n                margin:0 0 10px auto;\n                width:max-content;\n            }\n            .scr-reset-btn{ width:100%; justify-content:center; }\n\n            \/* \u2705 stack ads on mobile *\/\n            .scr-ledger-ads{\n                flex-direction:column;\n                gap:12px;\n            }\n\n        }\n\n\/* =========================\n   \u2705 Ledger-style Parchment Ads UI (Static + Rotating)\n   Keeps both columns same height (responsive-safe)\n========================= *\/\n\n\/* wrapper already flex; keep stretch *\/\n.scr-ledger-ads{\n  align-items: stretch;\n}\n\n\/* make both columns equal height always *\/\n.scr-ledger-ads .scr-ad-col{\n  display:flex;\n  min-width:0;\n}\n\n\/* both cards fill same height *\/\n.scr-ad-card{\n  width:100%;\n  height:100%;\n  display:flex;\n  flex-direction:column;\n  justify-content:space-between;\n  border-radius: 16px;\n  padding: 22px 24px;\n  box-sizing:border-box;\n\n  \/* parchment feel *\/\n  background: linear-gradient(135deg, rgb(251 226 180), rgba(238, 216, 166, .88));\n  border: 1px solid rgba(0,0,0,.18);\n  box-shadow: 0 14px 35px rgba(0,0,0,.18);\n  position:relative;\n  overflow:hidden;\n}\n\n\/* subtle inner frame like your example *\/\n.scr-ad-card:before{\n  content:\"\";\n  position:absolute;\n  inset:10px;\n  border:1px solid rgba(0,0,0,.18);\n  border-radius: 12px;\n  pointer-events:none;\n}\n\n\n\/* keep content away from vertical line *\/\n.scr-ad-static,\n.scr-ad-rotating{\n  padding-left: 38px;\n}\n\n\/* remove old dark styling from rotating *\/\n.scr-ad-rotating{\n  color:#1a1a1a;\n  background: linear-gradient(135deg, rgb(251 226 180), rgba(238, 216, 166, .88));\n}\n\n\/* typography close to your example *\/\n.scr-ad-static .scr-ad-h,\n.scr-ad-rotating .scr-ad-h{\n  font-family: Georgia, \"Times New Roman\", serif;\n  font-size: 25px;\n  line-height: 1.05;\n  font-weight: 800;\n  letter-spacing: .2px;\n  margin: 0 0 12px;\n  color:#141414;\n  text-transform:none; \/* sample is not \u201call caps\u201d vibe *\/\n}\n\n.scr-ad-static .scr-ad-p,\n.scr-ad-rotating .scr-ad-p{\n  font-family: Georgia, \"Times New Roman\", serif;\n    font-size: 17px;\n    line-height: 20px;\n  margin: 0 0 10px;\n  color:#1f1f1f;\n}\n\n\/* small helper line *\/\n.scr-ad-small{\n  font-family: Georgia, \"Times New Roman\", serif;\n  font-size: 14px;\n  margin-top: 10px;\n  opacity: .9;\n  color:#1f1f1f;\n}\n\n\/* button like your sample (rust\/red with depth) *\/\n.scr-ad-btn{\n  margin-top: 16px;\n  align-self:flex-end;\n  font-family: Georgia, \"Times New Roman\", serif;\n  font-size: 16px;\n  padding: 10px 16px;\n  border-radius: 10px;\n  border: 1px solid rgba(0,0,0,.35);\n  background: linear-gradient(180deg, #b24a34, #7f2f22);\n  color:#f3e7cf;\n  text-decoration:none;\n  box-shadow: 0 6px 14px rgba(0,0,0,.28);\n  transition: transform .12s ease, filter .2s ease;\n}\n\n.scr-ad-btn:hover{\n  filter: brightness(1.06);\n  transform: translateY(-1px);\n  background: linear-gradient(180deg, #c1563d, #8a3324);\n  color:#fff;\n}\n\n\/* rotating inner should fill card height to keep button pinned *\/\n.scr-rot-inner{\n  display:flex;\n  flex-direction:column;\n  height:100%;\n}\n\n\/* fade still works *\/\n.scr-rot-inner{ transition: opacity .45s ease; }\n.scr-rot-inner.scr-fade{ opacity:0; }\n\n\/* Force equal visible height even if content short\/long *\/\n.scr-ad-card{\n  min-height: 210px;   \/* you can bump this if you want taller cards *\/\n}\n\n\/* =========================\n   HELL10 Coupon Ad\n========================= *\/\n.scr-ad-coupon{\n  background: linear-gradient(180deg, #f4dfb4 0%, #e9d1a2 100%);\n  color:#17130f;\n  border:2px dashed rgba(0,0,0,.55);\n  border-radius:16px;\n  box-shadow:0 10px 24px rgba(0,0,0,.16);\n  padding:14px 16px;\n  position:relative;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  box-sizing:border-box;\n}\n\n.scr-ad-coupon:before{\n  display:none;\n  content:none;\n}\n\n.scr-ad-coupon .scr-coupon-code{\n  font-family:\"Arial Black\", Arial, sans-serif;\n  font-size:20px;\n  font-weight:900;\n  line-height:1;\n  text-align:center;\n  margin:0 0 8px;\n  color:#141414;\n  letter-spacing:.8px;\n  text-transform:uppercase;\n}\n\n.scr-ad-coupon .scr-coupon-rule{\n  height:2px;\n  background:rgba(0,0,0,.72);\n  margin:0 0 12px;\n}\n\n.scr-ad-coupon .scr-coupon-main{\n  display:flex;\n  align-items:flex-end;\n  justify-content:center;\n  gap:10px;\n  flex-wrap:wrap;\n  margin:0 0 8px;\n}\n\n.scr-ad-coupon .scr-coupon-amt{\n  font-family:\"Arial Black\", Arial, sans-serif;\n  font-size:64px;\n  line-height:.92;\n  font-weight:900;\n  color:#151515;\n  letter-spacing:-2px;\n}\n\n.scr-ad-coupon .scr-coupon-offwrap{\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n  justify-content:flex-end;\n}\n\n.scr-ad-coupon .scr-coupon-off{\n  font-family:\"Arial Black\", Arial, sans-serif;\n  font-size:36px;\n  line-height:.92;\n  font-weight:900;\n  color:#151515;\n  text-transform:uppercase;\n}\n\n.scr-ad-coupon .scr-coupon-any{\n  font-family:\"Arial Black\", Arial, sans-serif;\n  font-size:24px;\n  line-height:1;\n  font-weight:900;\n  color:#151515;\n  text-transform:uppercase;\n  margin-top:6px;\n}\n\n.scr-ad-coupon .scr-coupon-sub{\n  font-family:Georgia, \"Times New Roman\", serif;\n  font-size:13px;\n  line-height:1.35;\n  text-align:center;\n  color:#211b15;\n  margin:8px 0 0;\n}\n\n.scr-ad-coupon .scr-ad-btn{\n  margin-top:14px;\n}\n\n@media (max-width:768px){\n  .scr-ad-coupon{\n    padding:16px 14px;\n  }\n\n  .scr-ad-coupon .scr-coupon-amt{ font-size:54px; }\n  .scr-ad-coupon .scr-coupon-off{ font-size:30px; }\n  .scr-ad-coupon .scr-coupon-any{ font-size:22px; }\n}\n\n\/* =========================\n   \u2705 CUSTOM POPUP (replaces Elementor popup)\n   Screenshot-style: white box, black text, X top-right\n========================= *\/\n.hy-modal{\n  position:fixed;\n  inset:0;\n  background: rgba(0,0,0,.55);\n  display:none;\n  align-items:center;\n  justify-content:center;\n  z-index:999999;\n  padding:18px;\n}\n\n.hy-modal.is-open{ display:flex; }\n\n.hy-modal-box{\n  width:min(860px, 92vw);\n  background:#fff;\n  color:#111;\n  border-radius:10px;\n  padding:22px 24px;\n  position:relative;\n  box-shadow:0 16px 55px rgba(0,0,0,.35);\n}\n\n.hy-modal-title{\n  font-size:28px;\n  font-weight:800;\n  margin:0 0 14px;\n  font-family: Georgia, \"Times New Roman\", serif;\n}\n\n.hy-modal-close{\n  position:absolute;\n  top:16px;\n  right:18px;\n  font-size:22px;\n  line-height:1;\n  cursor:pointer;\n  color:#111;\n  opacity:.8;\n  user-select:none;\n}\n.hy-modal-close:hover{ opacity:1; }\n\n.hy-modal-input{\n  width:100%;\n  border:1px solid #111;\n  border-radius:6px;\n  padding:12px 14px;\n  font-size:16px;\n  outline:none;\n  box-sizing:border-box;\n}\n\n.hy-modal-btn{\n  margin-top:12px;\n  width:100%;\n  padding:12px 14px;\n  border-radius:6px;\n  border:0;\n  background:#000;\n  color:#fff;\n  font-size:16px;\n  font-weight:700;\n  cursor:pointer;\n}\n.hy-modal-btn:hover{ filter:brightness(1.05); }\n\n.hy-modal-msg{\n  margin-top:10px;\n  font-size:14px;\n  color:#111;\n  opacity:.9;\n}\n\n\n\n\/* Responsive: stack cards but keep same vibe *\/\n@media (max-width: 768px){\n  .scr-ad-card{\n        padding: 18px 10px 18px 18px;\n        min-height: 270px;\n        justify-content: center;\n  }\n  .scr-ad-card:before{ inset:8px; }\n  .scr-ad-card:after{ left:14px; top:14px; bottom:14px; }\n  .scr-ad-static .scr-ad-h,\n  .scr-ad-rotating .scr-ad-h{\n    font-size: 21px;\n  }\n  .scr-ad-static .scr-ad-p,\n  .scr-ad-rotating .scr-ad-p{\n    font-size: 16px;\n  }\n  .scr-ad-btn{\n    align-self:flex-start; \/* nicer on mobile *\/\n  }\n\n    .scr-ad-rotating.scr-rot-is-coupon{\n        padding: 0 !important;\n        min-height: auto !important;\n    }\n\n}\n\n.scr-ad-static-rotating .scr-rot-inner{\n  display:flex;\n  flex-direction:column;\n  height:100%;\n  transition:opacity .45s ease;\n  opacity:1;\n}\n.scr-ad-static-rotating .scr-rot-inner.scr-fade{\n  opacity:0;\n}\n.scr-ad-static-rotating {\n    padding: 0px;\n    min-height: auto !important;\n}\n\n.scr-ad-rotating.scr-rot-is-coupon{\n    padding: 0 !important;\n    min-height: auto !important;\n    background: transparent !important;\n    border: 0 !important;\n    box-shadow: none !important;\n}\n\n.scr-ad-rotating.scr-rot-is-coupon:before{\n    display: none !important;\n    content: none !important;\n}\n\n.scr-ad-rotating.scr-rot-is-coupon .scr-rot-inner{\n    height: 100%;\n}\n\n.scr-ad-rotating.scr-rot-is-coupon .scr-ad-coupon{\n    width: 100%;\n    min-height: 210px;\n    margin: 0;\n}\n\n    <\/style>\n\n    <div id=\"scr-ledger-8c851d94-1a0f-4609-8161-c3c196d9670b\" class=\"scr-ledger-wrap\">\n        <!-- \u2705 reset outside top-right -->\n        <div class=\"scr-reset-out\">\n            <button type=\"button\" class=\"scr-reset-btn\" data-ledger-reset=\"1\">Reset<\/button>\n        <\/div>\n\n        <div class=\"scr-ledger-render\"><\/div>\n    <\/div>\n\n    <script>\n    (function(){\n        const root = document.getElementById(\"scr-ledger-8c851d94-1a0f-4609-8161-c3c196d9670b\");\n        if(!root) return;\n\n        const initialData = [{\"order_id\":5120,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.009\",\"dom_id\":\"ped1a60d5674a\",\"display_id\":\"FND.009\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Dewy, The Witch of Times Square and The Radio Demon\",\"donation\":83.3,\"reason_condemned\":\"Oh, this is for me. Do your worst. ;)\",\"created_at\":\"2026-03-03 00:51:38\",\"date_display\":\"March 3, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5120&plot=\\u26b0\\ufe0f STR.FND.009\"},{\"order_id\":5120,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.008\",\"dom_id\":\"pd5eb51d7e681\",\"display_id\":\"FND.008\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Dewy, The Witch of Times Square and The Radio Demon\",\"donation\":83.3,\"reason_condemned\":\"Oh, this is for me. Do your worst. ;)\",\"created_at\":\"2026-03-03 00:51:38\",\"date_display\":\"March 3, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5120&plot=\\u26b0\\ufe0f STR.FND.008\"},{\"order_id\":5119,\"plot_id_raw\":\"\\ud83d\\udd25 DD STR.SUB.40604\",\"dom_id\":\"pc9f1b3f2e52a\",\"display_id\":\"SUB.40604\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 DD\",\"deed_holder\":\"Eli Sanchez\",\"donation\":6.66,\"reason_condemned\":\"Blaze of Glory\",\"created_at\":\"2026-02-28 21:26:47\",\"date_display\":\"February 28, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5119&plot=\\ud83d\\udd25 DD STR.SUB.40604\"},{\"order_id\":5115,\"plot_id_raw\":\"\\ud83d\\udd25 PH STR.SUB.12345\",\"dom_id\":\"p7d3d2812debd\",\"display_id\":\"SUB.12345\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 PH\",\"deed_holder\":\"Just Me (and Caroline, Penny, Em, Charlotte, and the rest of the gang!)\",\"donation\":6.66,\"reason_condemned\":\"Loser Ladies of \\\"Liberty\\\"\",\"created_at\":\"2026-02-27 11:22:44\",\"date_display\":\"February 27, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5115&plot=\\ud83d\\udd25 PH STR.SUB.12345\"},{\"order_id\":5113,\"plot_id_raw\":\"\\ud83d\\udd25\\ud83d\\udd25 PH STR.INF.76543\",\"dom_id\":\"p7085af011951\",\"display_id\":\"INF.76543\",\"addons_selected\":\"\\ud83d\\udcc5 \\u2620\\ufe0f\",\"display_tier\":\"\\ud83d\\udd25\\ud83d\\udd25 PH\",\"deed_holder\":\"KaniStates\",\"donation\":19.98,\"reason_condemned\":\"MHC\",\"created_at\":\"2026-02-25 12:30:00\",\"date_display\":\"February 25, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5113&plot=\\ud83d\\udd25\\ud83d\\udd25 PH STR.INF.76543\"},{\"order_id\":5106,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.007\",\"dom_id\":\"p73983c015924\",\"display_id\":\"FND.007\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Victoria\",\"donation\":83.3,\"reason_condemned\":\"Victoria's Ex\",\"created_at\":\"2026-02-21 00:29:19\",\"date_display\":\"February 21, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5106&plot=\\u26b0\\ufe0f STR.FND.007\"},{\"order_id\":5075,\"plot_id_raw\":\"\\ud83d\\udd25 RD STR.SUB.32056\",\"dom_id\":\"p008f77b4cbe5\",\"display_id\":\"SUB.32056\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 RD\",\"deed_holder\":\"The civilized world\",\"donation\":6.66,\"reason_condemned\":\"Dale\",\"created_at\":\"2026-02-12 03:46:48\",\"date_display\":\"February 12, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5075&plot=\\ud83d\\udd25 RD STR.SUB.32056\"},{\"order_id\":5020,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.006\",\"dom_id\":\"pe4341daaa6ab\",\"display_id\":\"FND.006\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Oscar\",\"donation\":83.3,\"reason_condemned\":\"The Man Who Carried It Quietly\",\"created_at\":\"2026-01-26 23:38:39\",\"date_display\":\"January 26, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=5020&plot=\\u26b0\\ufe0f STR.FND.006\"},{\"order_id\":4973,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.001\",\"dom_id\":\"p9aadc31156b5\",\"display_id\":\"FND.001\",\"addons_selected\":\"\\ud83d\\udd25\\ud83d\\udd25 \\ud83d\\udcc5 \",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Dominick\",\"donation\":169.93,\"reason_condemned\":\"Kaneki, the ex\",\"created_at\":\"2025-12-05 14:19:42\",\"date_display\":\"December 5, 2025 A.R.\",\"bod_link\":\"\"},{\"order_id\":4939,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.005\",\"dom_id\":\"p747908bc7919\",\"display_id\":\"FND.005\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Jordan\",\"donation\":83.3,\"reason_condemned\":\"People Pleasing & Childhood Trauma\",\"created_at\":\"2026-01-07 13:31:45\",\"date_display\":\"January 7, 2026 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4939&plot=\\u26b0\\ufe0f STR.FND.005\"},{\"order_id\":4899,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.004\",\"dom_id\":\"pbd06dfbe67ec\",\"display_id\":\"FND.004\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"Ella\",\"donation\":83.3,\"reason_condemned\":\"Growing Up Too Fast\",\"created_at\":\"2025-12-26 08:08:06\",\"date_display\":\"December 26, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4899&plot=\\u26b0\\ufe0f STR.FND.004\"},{\"order_id\":4844,\"plot_id_raw\":\"\\ud83d\\udd25 RD STR.SUB.13408\",\"dom_id\":\"p3fe68585317a\",\"display_id\":\"SUB.13408\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 RD\",\"deed_holder\":\"Gay AF\",\"donation\":6.66,\"reason_condemned\":\"MAGA\",\"created_at\":\"2025-12-20 01:09:07\",\"date_display\":\"December 20, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4844&plot=\\ud83d\\udd25 RD STR.SUB.13408\"},{\"order_id\":4793,\"plot_id_raw\":\"\\ud83d\\udd25 DD STR.SUB.44444\",\"dom_id\":\"pa689c7b30cba\",\"display_id\":\"SUB.44444\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 DD\",\"deed_holder\":\"Tricia\",\"donation\":6.66,\"reason_condemned\":\"Sabrina, the Suspected Witch\",\"created_at\":\"2025-12-16 16:04:26\",\"date_display\":\"December 16, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4793&plot=\\ud83d\\udd25 DD STR.SUB.44444\"},{\"order_id\":4791,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.003\",\"dom_id\":\"pbc9f95e2c1d9\",\"display_id\":\"FND.003\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"CHRISTOPHER\",\"donation\":83.3,\"reason_condemned\":\"Addiction, the Endless Appetite\",\"created_at\":\"2025-11-01 15:54:48\",\"date_display\":\"November 1, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4791&plot=\\u26b0\\ufe0f STR.FND.003\"},{\"order_id\":4788,\"plot_id_raw\":\"\\ud83d\\udd25 DD STR.SUB.12221\",\"dom_id\":\"p00fb4ec75ba0\",\"display_id\":\"SUB.12221\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 DD\",\"deed_holder\":\"CASSI\",\"donation\":6.66,\"reason_condemned\":\"My Inner Saboteur\",\"created_at\":\"2025-11-12 15:45:39\",\"date_display\":\"November 12, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4788&plot=\\ud83d\\udd25 DD STR.SUB.12221\"},{\"order_id\":4787,\"plot_id_raw\":\"\\ud83d\\udd25 DD STR.SUB.00111\",\"dom_id\":\"p34729481ccf4\",\"display_id\":\"SUB.00111\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 DD\",\"deed_holder\":\"LAMONT\",\"donation\":6.66,\"reason_condemned\":\"His Uncle, the Eternal Borrower\",\"created_at\":\"2025-11-14 15:40:47\",\"date_display\":\"November 14, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4787&plot=\\ud83d\\udd25 DD STR.SUB.00111\"},{\"order_id\":4786,\"plot_id_raw\":\"\\ud83d\\udd25 DD STR.SUB.06660\",\"dom_id\":\"p8bb20e128f6b\",\"display_id\":\"SUB.06660\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\ud83d\\udd25 DD\",\"deed_holder\":\"ASHLEY\",\"donation\":6.66,\"reason_condemned\":\"Tequila Ashley, the Midnight Menace\",\"created_at\":\"2025-11-17 15:35:01\",\"date_display\":\"November 17, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4786&plot=\\ud83d\\udd25 DD STR.SUB.06660\"},{\"order_id\":4785,\"plot_id_raw\":\"\\u26b0\\ufe0f STR.FND.002\",\"dom_id\":\"p57da3e515b00\",\"display_id\":\"FND.002\",\"addons_selected\":\"\\u2014\",\"display_tier\":\"\\u26b0\\ufe0f\",\"deed_holder\":\"KACEY\",\"donation\":83.3,\"reason_condemned\":\"Glass Ceilings & Gate Keepers.\",\"created_at\":\"2025-11-26 15:30:52\",\"date_display\":\"November 26, 2025 A.R.\",\"bod_link\":\"https:\\\/\\\/www.hellyeaplots.com\\\/shop\\\/book-of-the-damned\\\/?order_id=4785&plot=\\u26b0\\ufe0f STR.FND.002\"}];\n        let currentData = initialData.slice();\n\n        let sortDonation = ''; \/\/ 'min' | 'max' | ''\n        let sortDate     = ''; \/\/ 'oldest' | 'newest' | ''\n\n        const renderEl  = root.querySelector('.scr-ledger-render');\n        const resetWrap = root.querySelector('.scr-reset-out');\n        const resetBtn  = root.querySelector('[data-ledger-reset=\"1\"]');\n\n        \/\/ \u2705 NEW: keep rotating timers clean across re-renders\n        let adTimers = [];\n        function clearAdTimers(){\n            adTimers.forEach(id => { try{ clearInterval(id); }catch(e){} });\n            adTimers = [];\n        }\n\n        function updateResetVisibility(){\n            if(!resetWrap) return;\n            resetWrap.style.display = (sortDonation || sortDate) ? 'block' : 'none';\n        }\n\n        function escapeHTML(str){\n            return String(str)\n                .replaceAll('&','&amp;')\n                .replaceAll('<','&lt;')\n                .replaceAll('>','&gt;')\n                .replaceAll('\"','&quot;')\n                .replaceAll(\"'\",\"&#039;\");\n        }\n        function escapeAttr(str){\n            return escapeHTML(str).replaceAll('`','&#096;');\n        }\n\n        function parseDateToTS(mysql){\n            if(!mysql) return 0;\n            const iso = String(mysql).replace(' ', 'T');\n            const ts = Date.parse(iso);\n            return isNaN(ts) ? 0 : ts;\n        }\n\n        function rowHTML(r){\n            const donation = isFinite(r.donation) ? Number(r.donation).toFixed(2) : '0.00';\n            const bodCell = (r.bod_link && r.bod_link.length)\n                ? `<a href=\"${escapeAttr(r.bod_link)}\" class=\"scr-bod-btn\" target=\"_blank\" rel=\"noopener\">View<\/a>`\n                : '\u2014';\n\n            return `\n                <tr id=\"scr-plot-${escapeAttr(r.dom_id || '')}\"\n                    data-dom-id=\"${escapeAttr(r.dom_id || '')}\"\n                    data-plot-raw=\"${escapeAttr(r.plot_id_raw || '')}\"\n                    data-donation=\"${escapeAttr(String(r.donation))}\"\n                    data-created=\"${escapeAttr(String(r.created_at))}\">\n                    <td>STR<\/td>\n                    <td>${escapeHTML(r.display_id || '')}<\/td>\n                    <td>${escapeHTML(r.addons_selected || '')}<\/td>\n                    <td>${escapeHTML(r.display_tier || '')}<\/td>\n                    <td>${escapeHTML(r.deed_holder || '')}<\/td>\n                    <td>$${escapeHTML(donation)}<\/td>\n                    <td>${escapeHTML(r.reason_condemned || '')}<\/td>\n                    <td>${escapeHTML(r.date_display || '')}<\/td>\n                    <td>${bodCell}<\/td>\n                <\/tr>\n            `;\n        }\n\n        \/\/ \u2705 header only once\n        function tableBlockHTML(rows, includeHeader){\n            const thead = includeHeader ? `\n                <thead>\n                    <tr style=\"background:#111;color:#fff\">\n                        <th>Realm Code<\/th>\n                        <th>Plot ID<\/th>\n                        <th>Addons<\/th>\n                        <th>Plot Tier<\/th>\n                        <th>Deed Holder<\/th>\n\n                        <th>\n                            <span class=\"scr-th-sort\" data-sort-col=\"donation\">\n                                Donation\n                                <span class=\"scr-sort-icon\" role=\"button\" tabindex=\"0\" aria-label=\"Sort Donation\">\u25be<\/span>\n                                <div class=\"scr-sort-menu\" role=\"menu\" aria-label=\"Donation Sorting\">\n                                    <button type=\"button\" data-sort=\"donation_min\">Minimum<\/button>\n                                    <button type=\"button\" data-sort=\"donation_max\">Maximum<\/button>\n                                <\/div>\n                            <\/span>\n                        <\/th>\n\n                        <th>Reason Condemned<\/th>\n\n                        <th>\n                            <span class=\"scr-th-sort\" data-sort-col=\"date\">\n                                Date Claimed\n                                <span class=\"scr-sort-icon\" role=\"button\" tabindex=\"0\" aria-label=\"Sort Date Claimed\">\u25be<\/span>\n                                <div class=\"scr-sort-menu\" role=\"menu\" aria-label=\"Date Sorting\">\n                                    <button type=\"button\" data-sort=\"date_oldest\">Oldest<\/button>\n                                    <button type=\"button\" data-sort=\"date_newest\">Newest<\/button>\n                                <\/div>\n                            <\/span>\n                        <\/th>\n\n                        <th>BOD Entry<\/th>\n                    <\/tr>\n                <\/thead>\n            ` : '';\n\n            return `\n                <div class=\"scr-ledger-block\">\n                    <div class=\"scr-ledger-scroll\">\n                        <table class=\"scr-plots-table\">\n                            ${thead}\n                            <tbody>\n                                ${rows.map(rowHTML).join('')}\n                            <\/tbody>\n                        <\/table>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function closeAllMenus(){\n            root.querySelectorAll('.scr-sort-menu').forEach(m => m.style.display = 'none');\n        }\n\n        function setActiveButtons(){\n            root.querySelectorAll('[data-sort=\"donation_min\"], [data-sort=\"donation_max\"]').forEach(b=>{\n                b.classList.remove('scr-sort-active');\n            });\n            if(sortDonation === 'min'){\n                const b = root.querySelector('[data-sort=\"donation_min\"]');\n                if(b) b.classList.add('scr-sort-active');\n            }\n            if(sortDonation === 'max'){\n                const b = root.querySelector('[data-sort=\"donation_max\"]');\n                if(b) b.classList.add('scr-sort-active');\n            }\n\n            root.querySelectorAll('[data-sort=\"date_oldest\"], [data-sort=\"date_newest\"]').forEach(b=>{\n                b.classList.remove('scr-sort-active');\n            });\n            if(sortDate === 'oldest'){\n                const b = root.querySelector('[data-sort=\"date_oldest\"]');\n                if(b) b.classList.add('scr-sort-active');\n            }\n            if(sortDate === 'newest'){\n                const b = root.querySelector('[data-sort=\"date_newest\"]');\n                if(b) b.classList.add('scr-sort-active');\n            }\n        }\n\n        function applyMultiSort(){\n            const base = initialData.slice();\n            const indexed = base.map((r, idx)=>({r, idx}));\n\n            indexed.sort((a,b)=>{\n                if(sortDonation){\n                    const da = (typeof a.r.donation === 'number') ? a.r.donation : parseFloat(a.r.donation)||0;\n                    const db = (typeof b.r.donation === 'number') ? b.r.donation : parseFloat(b.r.donation)||0;\n                    if(da !== db){\n                        return sortDonation === 'min' ? (da - db) : (db - da);\n                    }\n                }\n\n                if(sortDate){\n                    const ta = parseDateToTS(a.r.created_at);\n                    const tb = parseDateToTS(b.r.created_at);\n                    if(ta !== tb){\n                        return sortDate === 'oldest' ? (ta - tb) : (tb - ta);\n                    }\n                }\n\n                return a.idx - b.idx;\n            });\n\n            currentData = indexed.map(x=>x.r);\n        }\n\n        function wireSortingUI(){\n            setActiveButtons();\n            updateResetVisibility();\n\n            \/\/ Reset outside button\n            if(resetBtn){\n                resetBtn.addEventListener('click', (e)=>{\n                    e.preventDefault();\n                    sortDonation = '';\n                    sortDate = '';\n                    closeAllMenus();\n                    applyMultiSort();\n                    renderAll();\n                }, { once:false });\n            }\n\n            \/\/ Sorting menus (only top header exists)\n            root.querySelectorAll('.scr-th-sort').forEach(wrapper=>{\n                const icon = wrapper.querySelector('.scr-sort-icon');\n                const menu = wrapper.querySelector('.scr-sort-menu');\n                if(!icon || !menu) return;\n\n                function toggle(){\n                    const isOpen = menu.style.display === 'flex';\n                    closeAllMenus();\n                    menu.style.display = isOpen ? 'none' : 'flex';\n                }\n\n                icon.addEventListener('click', (e)=>{\n                    e.stopPropagation();\n                    toggle();\n                });\n\n                icon.addEventListener('keydown', (e)=>{\n                    if(e.key === 'Enter' || e.key === ' '){\n                        e.preventDefault();\n                        e.stopPropagation();\n                        toggle();\n                    }\n                });\n\n                menu.addEventListener('click', (e)=>{\n                    const btn = e.target.closest('button[data-sort]');\n                    if(!btn) return;\n                    e.stopPropagation();\n\n                    const key = btn.getAttribute('data-sort');\n\n                    \/\/ toggle-to-deselect\n                    if(key === 'donation_min') sortDonation = (sortDonation === 'min') ? '' : 'min';\n                    if(key === 'donation_max') sortDonation = (sortDonation === 'max') ? '' : 'max';\n\n                    if(key === 'date_oldest') sortDate = (sortDate === 'oldest') ? '' : 'oldest';\n                    if(key === 'date_newest') sortDate = (sortDate === 'newest') ? '' : 'newest';\n\n                    closeAllMenus();\n                    applyMultiSort();\n                    renderAll();\n                });\n            });\n        }\n\n        \/\/ \u2705 deep link scroll to plot row\n        function normalizePlot(s){\n            return String(s || '').trim().replace(\/\\s+\/g,' ');\n        }\n\n        function getRequestedPlot(){\n            const sp = new URLSearchParams(window.location.search);\n            let p = sp.get('plot') || '';\n            if(p) {\n                try { p = decodeURIComponent(p); } catch(e){}\n                p = p.replace(\/\\+\/g,' ');\n                return normalizePlot(p);\n            }\n\n            \/\/ allow hash based\n            if(window.location.hash){\n                const h = window.location.hash;\n                if(h.indexOf('#scr-plot-') === 0) return h; \/\/ direct id\n                if(h.indexOf('#plot=') === 0) return normalizePlot(h.slice(6));\n            }\n            return '';\n        }\n\n        function animateRow(found){\n            if(!found) return;\n\n            found.classList.add('scr-row-highlight');\n\n            \/\/ \u2705 2 sec baad normal\n            setTimeout(function(){\n                found.classList.remove('scr-row-highlight');\n            }, 2000);\n        }\n\n        function scrollToPlotIfAny(){\n            const req = getRequestedPlot();\n            if(!req) return;\n\n            \/\/ direct hash id\n            if(req.indexOf('#scr-plot-') === 0){\n                const el = document.getElementById(req.substring(1));\n                if(el){\n                    el.scrollIntoView({behavior:'smooth', block:'center'});\n                    animateRow(el);\n                }\n                return;\n            }\n\n            const rows = root.querySelectorAll('tr[data-plot-raw]');\n            let found = null;\n\n            rows.forEach(r=>{\n                if(found) return;\n                const raw = normalizePlot(r.getAttribute('data-plot-raw') || '');\n                if(raw === req) found = r;\n            });\n\n            if(!found){\n                rows.forEach(r=>{\n                    if(found) return;\n                    const raw = normalizePlot(r.getAttribute('data-plot-raw') || '');\n                    if(raw.includes(req) || req.includes(raw)) found = r;\n                });\n            }\n\n            if(found){\n                found.scrollIntoView({behavior:'smooth', block:'center'});\n                animateRow(found);\n            }\n        }\n\n        \/* =========================\n           \u2705 NEW ADS DATA (Static + Rotating)\n        ========================= *\/\n        const STATIC_ADS = [\n{\n    heading: 'INFERNAL PLOT\u2122 \u2014 BEST VALUE',\n    paras: [\n        '$10 discount already applied for the smartest way to send someone straight to Hell.',\n        'Perfect breakup gift, revenge gift, or petty gift with purpose.',\n        'Bigger damnation. Better value. Real donation included.'\n    ],\n    btnText: 'Claim Infernal Plot\u2122',\n    href: 'https:\/\/www.hellyeaplots.com\/shop\/product\/infernal-plot\/',\n    newTab: false\n},\n{\n    heading: 'GIFT IDEAS FOR EVERY GRUDGE',\n    paras: [\n        'Need something for a breakup, birthday, gag gift, or funny revenge moment?',\n        'Browse darkly funny gift ideas built for chaos, comedy, and perfect timing.',\n        'Find the right petty gift before someone else buys the joke first.'\n    ],\n    btnText: 'Explore Gift Ideas',\n    href: 'https:\/\/www.hellyeaplots.com\/gift-ideas.php',\n    newTab: false\n},\n\t\t{\n\t\t\ttype: 'grand_opening',\n\t\t\theadingScript: 'Join Us for the',\n\t\t\theadingCaps: 'AlterEgo Grand Opening',\n\t\t\tdateText: 'April 25th',\n\t\t\ttimeText: '11am-3pm',\n\t\t\tbgImage: 'https:\/\/via.placeholder.com\/900x600\/000000\/000000?text=Grand+Opening+BG',\n\t\t\thref: 'https:\/\/alteregosupplements.com\/join-us-for-the-alterego-grand-opening\/',\n\t\t\tbtnText: 'Join Us',\n\t\t\tnewTab: true\n\t\t},\n\t\t\t{\n\t\t\t\ttype: 'coupon',\n\t\t\t\theading: 'HELL10',\n\t\t\t\tamount: '$10',\n\t\t\t\toffText: 'OFF',\n\t\t\t\tanyText: 'ANY PLOT',\n\t\t\t\tsubText: 'Use code at checkout. Limited time.',\n\t\t\t\thref: 'https:\/\/www.hellyeaplots.com\/shop.php',\n\t\t\t\tbtnText: 'Claim a Plot',\n\t\t\t\tnewTab: false\n\t\t\t},\n            {\n                heading: 'STEAL-A-DAMN\u2122 (FREE)',\n                paras: [\n                    'A free way to symbolically damn something that\u2019s bothering you.',\n                    'Write what\u2019s weighing on you.',\n                    'No account. No posting.'\n                ],\n                btnText: 'View Steal-A-Damn\u2122',\n                href: 'https:\/\/www.hellyeaplots.com\/Steal-A-Damn.php',\n                newTab: false\n            },\n            {\n                heading: 'HELLYEA PROFILE',\n                paras: [\n                    'Create a profile to connect your plots and manage visibility.',\n                    'If you\u2019ve been tagged or purchased a plot, this keeps everything in one place.'\n                ],\n                btnText: 'Set Up Your Profile',\n                href: 'https:\/\/hellyeaplots.com\/shop\/customer-portal',\n                newTab: false\n            },\n            {\n                heading: 'CREATE A RECORD',\n                paras: [\n                    'Symbolically damn something and have it recorded in the Infernal Ledger.',\n                    'Each plot includes a real donation.'\n                ],\n                btnText: 'Proceed to Claim a Plot',\n                href: 'https:\/\/www.hellyeaplots.com\/shop.php',\n                newTab: false\n            }\n        ];\n\n        const ROTATING_ADS = [\n            {\n                heading: 'HELLFEED\u2122',\n                paras: [\n                    'A public feed for thoughts, confessions, and emotional check-ins.',\n                    'No likes. No followers.',\n                    'Just honesty.'\n                ],\n                btnText: 'Open HellFeed\u2122',\n                href: 'https:\/\/www.hellyeaplots.com\/hellfeed\/',\n                newTab: true,\n                small: ''\n            },\n            {\n                heading: 'OFFICIAL RECORDS',\n                paras: [\n                    'Learn how the Infernal Ledger and HellYea actually work.',\n                    'Maps, lore, and public documents.'\n                ],\n                btnText: 'View Official Records',\n                href: 'https:\/\/drive.google.com\/drive\/folders\/1BP_tqho3fE54oqBdYvFaCCabSurVU5TD?usp=drive_link',\n                newTab: true,\n                small: 'HellYea Public Google Drive of Lore.'\n            },\n{\n  type: 'coupon',\n  heading: 'Save $10',\n  amount: '$10',\n  offText: 'OFF',\n  anyText: 'ANY PLOT',\n  subText: 'Save $10 on any plot when you subscribe',\n  btnText: 'Subscribe',\n  action: 'custom_popup',\n  popupId: 'updates',\n  newTab: false,\n  small: ''\n}\n\n        ];\n\nfunction staticCardHTML(ad){\n    if(ad.type === 'grand_opening'){\n        const target = ad.newTab ? ` target=\"_blank\" rel=\"noopener\"` : '';\n        const btn = ad.btnText\n            ? `<a class=\"scr-ad-btn scr-grand-btn\" href=\"${escapeAttr(ad.href || '#')}\"${target}>${escapeHTML(ad.btnText)}<\/a>`\n            : '';\n\n        const bg = escapeAttr(ad.bgImage || '');\n\n        return `\n            <div class=\"scr-ad-card scr-ad-grand\" style=\"background-image:url('https:\/\/www.hellyeaplots.com\/shop\/wp-content\/uploads\/2026\/03\/bg_gold-scaled.png')\">\n                <div class=\"scr-grand-overlay\">\n                    <div class=\"scr-grand-ring\">\n                        <div class=\"scr-grand-script\">${escapeHTML(ad.headingScript || 'Join Us for the')}<\/div>\n                        <div class=\"scr-grand-caps\">${escapeHTML(ad.headingCaps || 'AlterEgo Grand Opening')}<\/div>\n<div class=\"grand_desc\">Premium Health & Fitness Supplements<\/div>\n                        <div class=\"scr-grand-date\">${escapeHTML(ad.dateText || 'April 25th')}<\/div>\n                        <div class=\"scr-grand-time\">${escapeHTML(ad.timeText || '11am-3pm')}<\/div>\n                    <\/div>\n                    ${btn}\n                <\/div>\n            <\/div>\n        `;\n    }\n\n    if(ad.type === 'coupon'){\n        const target = ad.newTab ? ` target=\"_blank\" rel=\"noopener\"` : '';\n        const btn = ad.btnText\n            ? `<a class=\"scr-ad-btn\" href=\"${escapeAttr(ad.href || '#')}\"${target}>${escapeHTML(ad.btnText)}<\/a>`\n            : '';\n\n        return `\n            <div class=\"scr-ad-card scr-ad-coupon\">\n                <div class=\"scr-coupon-code\">${escapeHTML(ad.heading || 'HELL10')}<\/div>\n                <div class=\"scr-coupon-rule\"><\/div>\n\n                <div class=\"scr-coupon-main\">\n                    <div class=\"scr-coupon-amt\">${escapeHTML(ad.amount || '$10')}<\/div>\n                    <div class=\"scr-coupon-offwrap\">\n                        <div class=\"scr-coupon-off\">${escapeHTML(ad.offText || 'OFF')}<\/div>\n                        <div class=\"scr-coupon-any\">${escapeHTML(ad.anyText || 'ANY PLOT')}<\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"scr-coupon-sub\">${escapeHTML(ad.subText || 'Use code at checkout. Limited time.')}<\/div>\n                ${btn}\n            <\/div>\n        `;\n    }\n\n    const paras = (ad.paras || []).map(p => `<p class=\"scr-ad-p\">${escapeHTML(p)}<\/p>`).join('');\n    const target = ad.newTab ? ` target=\"_blank\" rel=\"noopener\"` : '';\n    const btn = `<a class=\"scr-ad-btn\" href=\"${escapeAttr(ad.href)}\"${target}>${escapeHTML(ad.btnText)}<\/a>`;\n\n    return `\n      <div class=\"scr-ad-card scr-ad-static\">\n        <div class=\"scr-ad-h\">${escapeHTML(ad.heading)}<\/div>\n        ${paras}\n        ${btn}\n      <\/div>\n    `;\n}\n\nfunction rotatingInnerHTML(ad){\n    if(ad.type === 'coupon'){\n        let btn = '';\n\n        if(ad.action === 'custom_popup'){\n            btn = ad.btnText\n                ? `<a class=\"scr-ad-btn scr-custom-popup-btn\" href=\"#\" data-popup-id=\"${escapeAttr(String(ad.popupId || ''))}\">${escapeHTML(ad.btnText)}<\/a>`\n                : '';\n        } else {\n            const target = ad.newTab ? ` target=\"_blank\" rel=\"noopener\"` : '';\n            btn = ad.btnText\n                ? `<a class=\"scr-ad-btn\" href=\"${escapeAttr(ad.href || '#')}\"${target}>${escapeHTML(ad.btnText)}<\/a>`\n                : '';\n        }\n\n        return `\n            <div class=\"scr-ad-card scr-ad-coupon\">\n                <div class=\"scr-coupon-code\">${escapeHTML(ad.heading || 'HELL10')}<\/div>\n                <div class=\"scr-coupon-rule\"><\/div>\n\n                <div class=\"scr-coupon-main\">\n                    <div class=\"scr-coupon-amt\">${escapeHTML(ad.amount || '$10')}<\/div>\n                    <div class=\"scr-coupon-offwrap\">\n                        <div class=\"scr-coupon-off\">${escapeHTML(ad.offText || 'OFF')}<\/div>\n                        <div class=\"scr-coupon-any\">${escapeHTML(ad.anyText || 'ANY PLOT')}<\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"scr-coupon-sub\">${escapeHTML(ad.subText || 'Use code at checkout. Limited time.')}<\/div>\n                ${btn}\n            <\/div>\n        `;\n    }\n\n    const paras = (ad.paras || []).map(p => `<p class=\"scr-ad-p\">${escapeHTML(p)}<\/p>`).join('');\n    let btn = '';\n\n    if(ad.action === 'custom_popup'){\n        btn = `<a class=\"scr-ad-btn scr-custom-popup-btn\" href=\"#\" data-popup-id=\"${escapeAttr(String(ad.popupId||''))}\">${escapeHTML(ad.btnText)}<\/a>`;\n    } else {\n        const target = ad.newTab ? ` target=\"_blank\" rel=\"noopener\"` : '';\n        btn = `<a class=\"scr-ad-btn\" href=\"${escapeAttr(ad.href)}\"${target}>${escapeHTML(ad.btnText)}<\/a>`;\n    }\n\n    const small = ad.small ? `<div class=\"scr-ad-small\">${escapeHTML(ad.small)}<\/div>` : '';\n\n    return `\n        <div class=\"scr-ad-h\">${escapeHTML(ad.heading)}<\/div>\n        ${paras}\n        ${btn}\n        ${small}\n    `;\n}\n\nfunction getStaticAdsForBlock(blockIdx, totalBlocks){\n    const totalAds = STATIC_ADS.length;\n    if (!totalAds || !totalBlocks) return [];\n\n    const baseSize  = Math.floor(totalAds \/ totalBlocks);\n    const remainder = totalAds % totalBlocks;\n\n    let start = 0;\n    for (let i = 0; i < blockIdx; i++) {\n        start += baseSize + (i < remainder ? 1 : 0);\n    }\n\n    const size = baseSize + (blockIdx < remainder ? 1 : 0);\n    return STATIC_ADS.slice(start, start + size);\n}\n\n        \/\/ \u2705 NEW: ads block HTML (Static left + Rotating right)\nfunction adsHTML(blockIdx, totalBlocks){\n    const staticAdsForThisBlock = getStaticAdsForBlock(blockIdx, totalBlocks);\n    const startRot = blockIdx % ROTATING_ADS.length;\n\n    let staticHtml = '';\n\n    if (staticAdsForThisBlock.length > 1) {\n        staticHtml = `\n            <div class=\"scr-ad-card scr-ad-static-rotating\"\n                 data-static-rot-items='${escapeAttr(JSON.stringify(staticAdsForThisBlock))}'>\n                <div class=\"scr-rot-inner\"><\/div>\n            <\/div>\n        `;\n    } else if (staticAdsForThisBlock.length === 1) {\n        staticHtml = staticCardHTML(staticAdsForThisBlock[0]);\n    } else {\n        staticHtml = staticCardHTML(STATIC_ADS[0]);\n    }\n\n    return `\n        <div class=\"scr-ledger-ads\" data-ads-block=\"${blockIdx}\">\n            <div class=\"scr-ad-col\">\n                ${staticHtml}\n            <\/div>\n\n            <div class=\"scr-ad-col\">\n                <div class=\"scr-ad-card scr-ad-rotating\" data-rot-start=\"${startRot}\">\n                    <div class=\"scr-rot-inner\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    `;\n}\n\n        \/\/ \u2705 NEW: init rotators after render (10s fade)\nfunction initRotators(){\n    \/\/ RIGHT rotating ads\n    const rotators = root.querySelectorAll('.scr-ad-rotating[data-rot-start]');\n    rotators.forEach(card=>{\n        const inner = card.querySelector('.scr-rot-inner');\n        if(!inner) return;\n\n        let idx = parseInt(card.getAttribute('data-rot-start'), 10);\n        if(!isFinite(idx)) idx = 0;\n        idx = ((idx % ROTATING_ADS.length) + ROTATING_ADS.length) % ROTATING_ADS.length;\n\n        inner.classList.remove('scr-fade');\ninner.innerHTML = rotatingInnerHTML(ROTATING_ADS[idx]);\ncard.classList.toggle('scr-rot-is-coupon', !!(ROTATING_ADS[idx] && ROTATING_ADS[idx].type === 'coupon'));\n\n        const timer = setInterval(()=>{\n            inner.classList.add('scr-fade');\n\n            setTimeout(()=>{\n                idx = (idx + 1) % ROTATING_ADS.length;\ninner.innerHTML = rotatingInnerHTML(ROTATING_ADS[idx]);\ncard.classList.toggle('scr-rot-is-coupon', !!(ROTATING_ADS[idx] && ROTATING_ADS[idx].type === 'coupon'));\ninner.classList.remove('scr-fade');\n            }, 450);\n\n        }, 5000); \/\/ \u2705 5s\n\n        adTimers.push(timer);\n    });\n\n    \/\/ LEFT static rotating ads\n    const staticRotators = root.querySelectorAll('.scr-ad-static-rotating[data-static-rot-items]');\n    staticRotators.forEach(card=>{\n        const inner = card.querySelector('.scr-rot-inner');\n        if(!inner) return;\n\n        let items = [];\n        try{\n            items = JSON.parse(card.getAttribute('data-static-rot-items') || '[]');\n        }catch(e){\n            items = [];\n        }\n\n        if(!Array.isArray(items) || !items.length) return;\n\n        let idx = 0;\n        inner.classList.remove('scr-fade');\n        inner.innerHTML = staticCardHTML(items[idx]);\n\n        if(items.length > 1){\n            const timer = setInterval(()=>{\n                inner.classList.add('scr-fade');\n\n                setTimeout(()=>{\n                    idx = (idx + 1) % items.length;\n                    inner.innerHTML = staticCardHTML(items[idx]);\n                    inner.classList.remove('scr-fade');\n                }, 450);\n\n            }, 5000); \/\/ \u2705 5s\n\n            adTimers.push(timer);\n        }\n    });\n}\n\n        \/\/ \u2705 NEW: Elementor popup trigger for rotating Ad 3\n        function showElementorPopup(popupId){\n    const id = parseInt(popupId, 10);\n    if(!id) return false;\n\n    \/\/ 1) Best: Elementor Pro popup API\n    try{\n        if (window.elementorProFrontend &&\n            elementorProFrontend.modules &&\n            elementorProFrontend.modules.popup &&\n            typeof elementorProFrontend.modules.popup.showPopup === 'function') {\n            elementorProFrontend.modules.popup.showPopup({ id: id });\n            return true;\n        }\n    }catch(e){}\n\n    \/\/ 2) Fallback: try Elementor\u2019s URL-based trigger (common)\n    try{\n        const url = new URL(window.location.href);\n        url.searchParams.set('elementor-popup', String(id));\n        window.location.href = url.toString();\n        return true;\n    }catch(e){}\n\n    \/\/ 3) Last fallback: hash trigger\n    try{\n        window.location.hash = 'elementor-popup:' + id;\n        return true;\n    }catch(e){}\n\n    return false;\n}\n\n\n        \/\/ bind once (event delegation)\n        if(!root.__scrPopupBind){\n            root.__scrPopupBind = true;\n            root.addEventListener('click', function(e){\n    const btn = e.target.closest('.scr-custom-popup-btn');\n    if(!btn || !root.contains(btn)) return;\n    e.preventDefault();\n    openCustomPopup();\n});\n\n        }\n\n\/\/ =========================\n\/\/ \u2705 Custom popup (Subscribe) - injected once\n\/\/ =========================\nfunction ensureCustomPopup(){\n    if(document.getElementById('hy-updates-modal')) return;\n\n    const modal = document.createElement('div');\n    modal.id = 'hy-updates-modal';\n    modal.className = 'hy-modal';\n    modal.innerHTML = `\n      <div class=\"hy-modal-box\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Subscribe Now\">\n        <div class=\"hy-modal-close\" data-hy-close=\"1\">\u00d7<\/div>\n        <div class=\"hy-modal-title\">Subscribe Now<\/div>\n\n        <form id=\"hy-updates-form\">\n          <input class=\"hy-modal-input\" type=\"email\" name=\"email\" placeholder=\"Email\" required \/>\n          <button class=\"hy-modal-btn\" type=\"submit\">Subscribe<\/button>\n          <div class=\"hy-modal-msg\" id=\"hy-updates-msg\" style=\"display:none;\"><\/div>\n        <\/form>\n      <\/div>\n    `;\n    document.body.appendChild(modal);\n\n    \/\/ close on outside click\n    modal.addEventListener('click', (e)=>{\n        const box = modal.querySelector('.hy-modal-box');\n        if(!box) return;\n        if(!box.contains(e.target)){\n            closeCustomPopup();\n        }\n    });\n\n    \/\/ close on X\n    modal.querySelectorAll('[data-hy-close=\"1\"]').forEach(x=>{\n        x.addEventListener('click', (e)=>{\n            e.preventDefault();\n            closeCustomPopup();\n        });\n    });\n\n    \/\/ submit handling (simple + safe)\nconst form = modal.querySelector('#hy-updates-form');\nform.addEventListener('submit', async (e)=>{\n  e.preventDefault();\n\n  const msg = modal.querySelector('#hy-updates-msg');\n  const input = form.querySelector('input[name=\"email\"]');\n  const email = (input?.value || '').trim();\n\n  if(!email){\n    msg.style.display = 'block';\n    msg.textContent = 'Enter a valid email.';\n    return;\n  }\n\n  msg.style.display = 'block';\n  msg.textContent = 'Processing...';\n\n  try{\n    if(typeof grecaptcha === 'undefined' || !window.HY_WP_RECAPTCHA_SITE_KEY){\n      msg.textContent = 'reCAPTCHA failed to load.';\n      return;\n    }\n\n    const token = await grecaptcha.execute(window.HY_WP_RECAPTCHA_SITE_KEY, {\n      action: 'ledger_subscribe'\n    });\n\n    const res = await fetch('https:\/\/www.hellyeaplots.com\/shop\/wp-admin\/admin-ajax.php', {\n      method:'POST',\n      headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:new URLSearchParams({\n        action:'hy_subscribe_email',\n        email:email,\n        g_recaptcha_response: token,\n        recaptcha_action: 'ledger_subscribe'\n      })\n    });\n\n    const data = await res.json();\n\n    if(data.success){\n      msg.textContent = '\ud83d\udd25 You\u2019re in. Check your email.';\n      setTimeout(()=> closeCustomPopup(), 1200);\n    } else {\n      msg.textContent = (data && data.data && data.data.msg)\n        ? data.data.msg\n        : 'Something went wrong.';\n    }\n\n  }catch(e){\n    msg.textContent = 'Network error.';\n  }\n});\n}\n\nfunction openCustomPopup(){\n    ensureCustomPopup();\n    const modal = document.getElementById('hy-updates-modal');\n    if(modal) modal.classList.add('is-open');\n}\n\nfunction closeCustomPopup(){\n    const modal = document.getElementById('hy-updates-modal');\n    if(modal) modal.classList.remove('is-open');\n}\n\n\n        function renderAll(){\n            \/\/ \u2705 kill old rotators before replacing HTML\n            clearAdTimers();\n\n            let html = '';\n           const INJECT_EVERY = 6;\nconst totalBlocks = Math.floor((currentData.length - 1) \/ INJECT_EVERY);\n\nfor(let i=0; i<currentData.length; i+=INJECT_EVERY){\n    const chunk = currentData.slice(i, i+INJECT_EVERY);\n    html += tableBlockHTML(chunk, i === 0);\n\n    \/\/ keep existing rule: no ads after last 6 entries\n    if(i + INJECT_EVERY < currentData.length){\n        const blockIdx = Math.floor(i \/ INJECT_EVERY);\n        html += adsHTML(blockIdx, totalBlocks);\n    }\n}\n\n            renderEl.innerHTML = html;\n            wireSortingUI();\n\n            \/\/ \u2705 start rotating ads after DOM is injected\n            initRotators();\n\n            \/\/ \u2705 after render, apply deep link\n            setTimeout(scrollToPlotIfAny, 50);\n        }\n\n        document.addEventListener('click', (e)=>{\n            if(!root.contains(e.target)){\n                closeAllMenus();\n            }\n        });\n\n        applyMultiSort();\n        renderAll();\n    })();\n    <\/script>\n    \r\n\r\n  <\/div>\r\n  \r\n  <!--<div class=\"footer-ads\">-->\r\n  <!--                      <div class=\"ad-box\">-->\r\n  <!--                          <p>BRIMSTONE BROTHERS CURSE CO.<\/p>-->\r\n  <!--                          <h2>NEED A GOOD CURSE?<\/h2>-->\r\n  <!--                          <h5>(Now Hiring)<\/h5>-->\r\n  <!--                      <\/div>-->\r\n  <!--                      <div class=\"black-box\">-->\r\n  <!--                          <h1>DUMPED?<\/h1>-->\r\n  <!--                          <p>Damn Their Ass in Under 60 Seconds<\/p>-->\r\n  <!--                          <a href=\"#\">HellYeaPlots.com<\/a>-->\r\n  <!--                      <\/div>-->\r\n  <!--                  <\/div>-->\r\n\r\n  <!--<table>-->\r\n  <!--  <thead>-->\r\n  <!--    <tr>-->\r\n  <!--      <th>PLOT ID<\/th>-->\r\n  <!--      <th>REALM CODE<\/th>-->\r\n  <!--      <th>DEED HOLDER<\/th>-->\r\n  <!--      <th>DONATION<\/th>-->\r\n  <!--      <th>REANSON\/CONDEMNED<\/th>-->\r\n  <!--    <\/tr>-->\r\n  <!--  <\/thead>-->\r\n  <!--  <tbody>-->\r\n  <!--    <tr>-->\r\n  <!--      <td>SCR-STP-0001<\/td>-->\r\n  <!--      <td>\u2620 SCR<\/td>-->\r\n  <!--      <td>JANE<\/td>-->\r\n  <!--      <td>$16.65<\/td>-->\r\n  <!--      <td>My narcissist ex<\/td>-->\r\n  <!--    <\/tr>-->\r\n  <!--    <tr>-->\r\n  <!--      <td>SCR-FND-0001<\/td>-->\r\n  <!--      <td>\u265e SCR<\/td>-->\r\n  <!--      <td>DOMINICK<\/td>-->\r\n  <!--      <td>$166.60<\/td>-->\r\n  <!--      <td>Generational guilt<\/td>-->\r\n  <!--    <\/tr>-->\r\n  <!--  <\/tbody>-->\r\n  <!--<\/table>-->\r\n\r\n  <!--<div class=\"footer-ads\">-->\r\n  <!--  <div class=\"ad-box\">-->\r\n  <!--    <p>BRIMSTONE BROTHERS CURSE CO.<\/p>-->\r\n  <!--    <h2>NEED A GOOD CURSE?<\/h2>-->\r\n  <!--    <h5>(Now Hiring)<\/h5>-->\r\n  <!--  <\/div>-->\r\n  <!--  <div class=\"black-box\">-->\r\n  <!--    <h1>DUMPED?<\/h1>-->\r\n  <!--    <p>Damn Their Ass in Under 60 Seconds<\/p>-->\r\n  <!--    <a href=\"#\">HellYeaPlots.com<\/a>-->\r\n  <!--  <\/div>-->\r\n  <!--<\/div>-->\r\n\r\n<\/body>\r\n\t\t\t\t<\/div>\n\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>\u300bImpact Ledger Infernal Ledger\u2122 \u2014 STATS PAGE \u2014 Real-time numbers showing the impact of HellYea\u2122 Plots donations and Hell\u2019s expansion. \u2192 HELL\u2019S ONLY GETTING HOTTER The Infernal Ledger\u2122 is our live tracker of pettiness for a cause. Every damnation counts towards charitable rebellion.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-3608","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Infernal Ledger New - Hellyeaplots<\/title>\n<meta name=\"description\" content=\"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Infernal Ledger New - Hellyeaplots\" \/>\n<meta property=\"og:description\" content=\"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/\" \/>\n<meta property=\"og:site_name\" content=\"Hellyeaplots\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-04T17:32:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/\",\"url\":\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/\",\"name\":\"Infernal Ledger New - Hellyeaplots\",\"isPartOf\":{\"@id\":\"https:\/\/www.hellyeaplots.com\/shop\/#website\"},\"datePublished\":\"2025-10-01T22:32:53+00:00\",\"dateModified\":\"2026-02-04T17:32:33+00:00\",\"description\":\"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hellyeaplots.com\/shop\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infernal Ledger New\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hellyeaplots.com\/shop\/#website\",\"url\":\"https:\/\/www.hellyeaplots.com\/shop\/\",\"name\":\"Hellyeaplots\",\"description\":\"Hellyeaplots\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hellyeaplots.com\/shop\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Infernal Ledger New - Hellyeaplots","description":"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/","og_locale":"en_US","og_type":"article","og_title":"Infernal Ledger New - Hellyeaplots","og_description":"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.","og_url":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/","og_site_name":"Hellyeaplots","article_modified_time":"2026-02-04T17:32:33+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/","url":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/","name":"Infernal Ledger New - Hellyeaplots","isPartOf":{"@id":"https:\/\/www.hellyeaplots.com\/shop\/#website"},"datePublished":"2025-10-01T22:32:53+00:00","dateModified":"2026-02-04T17:32:33+00:00","description":"Browse the Infernal Ledger\u2122\u2014a live registry of claimed plots, deed holders, and lore. Search, explore, and view entries in real time.","breadcrumb":{"@id":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.hellyeaplots.com\/shop\/infernal-ledger-new\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hellyeaplots.com\/shop\/"},{"@type":"ListItem","position":2,"name":"Infernal Ledger New"}]},{"@type":"WebSite","@id":"https:\/\/www.hellyeaplots.com\/shop\/#website","url":"https:\/\/www.hellyeaplots.com\/shop\/","name":"Hellyeaplots","description":"Hellyeaplots","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hellyeaplots.com\/shop\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/pages\/3608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/comments?post=3608"}],"version-history":[{"count":109,"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/pages\/3608\/revisions"}],"predecessor-version":[{"id":5030,"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/pages\/3608\/revisions\/5030"}],"wp:attachment":[{"href":"https:\/\/www.hellyeaplots.com\/shop\/wp-json\/wp\/v2\/media?parent=3608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}