CINXE.COM

Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing

<!DOCTYPE html> <html lang="en" class=""> <head> <script> (function() { const applyTheme = (theme) => { if (theme === 'dark') { document.documentElement.classList.add('dark'); document.documentElement.style.backgroundColor = '#1F1E1E'; } else { document.documentElement.classList.remove('dark'); document.documentElement.style.backgroundColor = '#FFF5DF'; } }; const updateThemeFromSystemPreference = () => { const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; applyTheme(prefersDark ? 'dark' : 'light'); }; const theme = localStorage.getItem('theme'); if (theme) { applyTheme(theme); } else { updateThemeFromSystemPreference(); } // Listen for system theme changes window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => { if (!localStorage.getItem('theme')) { applyTheme(event.matches ? 'dark' : 'light'); } }); })(); </script> <link rel="preconnect" href="https://cdn.jsdelivr.net"> <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="preload" href="https://www.skeptic.com/assets/built/index.css?v=41a9f13c76" as="style" /> <link rel="stylesheet" href="https://www.skeptic.com/assets/built/index.css?v=41a9f13c76" /> <script src="https://www.skeptic.com/assets/built/index.js?v=41a9f13c76" defer></script> <script defer src="https://www.skeptic.com/assets/js/alpine_intersect.min.js?v=41a9f13c76"></script> <script defer src="https://www.skeptic.com/assets/js/sharer.js?v=41a9f13c76" defer></script> <script src="https://www.skeptic.com/assets/js/dexie.js?v=41a9f13c76"></script> <script defer src="https://www.skeptic.com/assets/js/alpine_intersect.min.js?v=41a9f13c76"></script> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script> <title>Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing</title> <meta name="description" content="Explore how Black Lives Matter’s impact on policing has paradoxically increased violence in marginalized communities. This analysis highlights the vital role of effective, accountable policing in saving lives and challenges both progressive and conservative views on law enforcement reform."> <link rel="icon" href="https://www.skeptic.com/content/images/size/w256h256/2025/02/skeptic_favi_transparent.png" type="image/png"> <link rel="canonical" href="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <meta name="referrer" content="no-referrer-when-downgrade"> <meta property="og:site_name" content="Skeptic"> <meta property="og:type" content="article"> <meta property="og:title" content="Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing"> <meta property="og:description" content="Explore how Black Lives Matter’s impact on policing has paradoxically increased violence in marginalized communities. This analysis highlights the vital role of effective, accountable policing in saving lives and challenges both progressive and conservative views on law enforcement reform."> <meta property="og:url" content="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <meta property="og:image" content="https://www.skeptic.com/content/images/size/w1200/2025/02/Defund_the_police-1.webp"> <meta property="article:published_time" content="2025-02-24T14:06:00.000Z"> <meta property="article:modified_time" content="2025-02-26T22:24:38.000Z"> <meta property="article:tag" content="Article"> <meta property="article:tag" content="BLM"> <meta property="article:tag" content="social justice"> <meta property="article:tag" content="crime"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing"> <meta name="twitter:description" content="Explore how Black Lives Matter’s impact on policing has paradoxically increased violence in marginalized communities. This analysis highlights the vital role of effective, accountable policing in saving lives and challenges both progressive and conservative views on law enforcement reform."> <meta name="twitter:url" content="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <meta name="twitter:image" content="https://www.skeptic.com/content/images/size/w1200/2025/02/Defund_the_police-1-1.webp"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Skeptic"> <meta name="twitter:label2" content="Filed under"> <meta name="twitter:data2" content="Article, BLM, social justice, crime"> <meta name="twitter:site" content="@michaelshermer"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="800"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "Skeptic", "url": "https://www.skeptic.com/", "logo": { "@type": "ImageObject", "url": "https://www.skeptic.com/content/images/size/w256h256/2025/02/skeptic_favi_transparent.png", "width": 60, "height": 60 } }, "author": { "@type": "Person", "name": "Skeptic", "url": "https://www.skeptic.com/404/", "sameAs": [] }, "headline": "Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing", "url": "https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/", "datePublished": "2025-02-24T14:06:00.000Z", "dateModified": "2025-02-26T22:24:38.000Z", "image": { "@type": "ImageObject", "url": "https://www.skeptic.com/content/images/size/w1200/2025/02/Defund_the_police-1.webp", "width": 1200, "height": 800 }, "keywords": "Article, BLM, social justice, crime", "description": "Explore how Black Lives Matter’s impact on policing has paradoxically increased violence in marginalized communities. This analysis highlights the vital role of effective, accountable policing in saving lives and challenges both progressive and conservative views on law enforcement reform. ", "mainEntityOfPage": "https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/" } </script> <meta name="generator" content="Ghost 5.115"> <link rel="alternate" type="application/rss+xml" title="Skeptic" href="https://www.skeptic.com/rss/"> <style id="gh-members-styles">.gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; }</style><script async src="https://js.stripe.com/v3/"></script> <script defer src="https://cdn.jsdelivr.net/ghost/announcement-bar@~1.1/umd/announcement-bar.min.js" data-announcement-bar="https://www.skeptic.com/" data-api-url="https://www.skeptic.com/members/api/announcement/" crossorigin="anonymous"></script> <link href="https://www.skeptic.com/webmentions/receive/" rel="webmention"> <script defer src="/public/cards.min.js?v=41a9f13c76"></script> <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=41a9f13c76"> <script defer src="/public/comment-counts.min.js?v=41a9f13c76" data-ghost-comments-counts-api="https://www.skeptic.com/members/api/comments/counts/"></script> <script defer src="/public/member-attribution.min.js?v=41a9f13c76"></script><style>:root {--ghost-accent-color: #E72B01;}</style> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-GEW4H5LNQ7"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-GEW4H5LNQ7'); gtag('event', 'page_view', { // <event_parameters> }); </script> <style> .dropCap{ font-size: 4.5em; float: left; line-height: 0.8; margin-right: 0.1em; } .hero_mini_article > p > .dropCap{ font-family: Martel, Georgia, Cambria, "Times New Roman", Times, serif; margin-top: 4px; } </style> <script data-key="d42c49034a99169c3466d89edf" data-api="https://www.skeptic.com/ghost/api/content/" data-ghost="https://www.skeptic.com/"></script> <script> /*to prevent Firefox Flash of Unstyled Content (FOUC), this must be here*/ let FF_FOUC_FIX; </script> <noscript> <META HTTP-EQUIV="Refresh" CONTENT="0;URL=/disabled_js"> </noscript> </head> <body class="post-template tag-article tag-hash-author-robert-maranto tag-hash-author-wilfred-reilly tag-blm tag-social-justice tag-crime bg-skeptic-background dark:bg-skeptic-background-dark"> <script> window.skp_member_level = 0; </script> <style> [x-cloak] { display: none !important; } img.lazy { opacity: 0; } img:not(.initial) { transition: opacity 1s; } img.initial, img.loaded, img.error { opacity: 1; } img:not([src]) { visibility: hidden; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-results-decoration { display:none !important; } @keyframes slide_up_bar{ 0% { opacity: 0; transform: translateY(100%); } 100% { opacity: 1; transform: translateY(0); } } #announcement-bar-root { position: fixed; bottom:0px; left:0px; width:100%; z-index: 51; transform: translateY(100%); animation: slide_up_bar .2s ease-out 2s 1 normal forwards; } #announcement-bar-root .gh-announcement-bar{ padding: 20px 40px 20px 20px !important; } @media(min-width: 1024px){ #announcement-bar-root .gh-announcement-bar{ padding: 14px 80px !important; } } </style> <!-- Debug tailwind breakpoints - can be deleted --> <!-- Debug tailwind breakpoints - can be deleted --> <aside class="fixed hidden xl:block left-0 -top-8 h-screen z-50"> <div class="absolute top-0 -left-16"> <span class="-rotate-90 text_atomic_22 text-skeptic-charcoal dark:text-skeptic-foreground-dark block whitespace-nowrap" style="transform-origin: 100% 100%;"> Reality-Based.<br><span class="text-skeptic-primary">Really.</span> </span> </div> <div class="absolute top-1/2 left-2.5 -translate-y-1/2"> <ul class="flex flex-col justify-center items-center gap-y-[--gap-45]"> <li> <a href="https://facebook.com" class="group" alt="facebook link"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> <g id="ic:baseline-facebook"> <path id="Vector" d="M23.8327 13.0003C23.8327 7.02033 18.9793 2.16699 12.9993 2.16699C7.01935 2.16699 2.16602 7.02033 2.16602 13.0003C2.16602 18.2437 5.89268 22.6095 10.8327 23.617V16.2503H8.66602V13.0003H10.8327V10.292C10.8327 8.20116 12.5335 6.50033 14.6243 6.50033H17.3327V9.75033H15.166C14.5702 9.75033 14.0827 10.2378 14.0827 10.8337V13.0003H17.3327V16.2503H14.0827V23.7795C19.5535 23.2378 23.8327 18.6228 23.8327 13.0003Z" fill=""/> </g> </svg> </a> </li> <li> <a href="https://x.com/michaelshermer" class="group" alt="twitter link"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.751 3.5H20.818L14.118 11.125L22 21.5H15.828L10.995 15.207L5.464 21.5H2.394L9.561 13.345L2 3.5H8.328L12.698 9.252L17.751 3.5ZM16.675 19.672H18.375L7.404 5.232H5.58L16.675 19.672Z" fill=""/> </svg> </a> </li> <li> <a href="https://www.youtube.com/skepticmagazine/" class="group" alt="youtube link"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="34" height="25" viewBox="0 0 34 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.244 4.00098C17.778 4.00398 19.114 4.01698 20.534 4.07398L21.038 4.09598C22.467 4.16298 23.895 4.27898 24.604 4.47598C25.549 4.74198 26.291 5.51598 26.542 6.49798C26.942 8.05798 26.992 11.1 26.998 11.837L26.999 11.989V12.163C26.992 12.9 26.942 15.943 26.542 17.502C26.288 18.487 25.545 19.262 24.604 19.524C23.895 19.721 22.467 19.837 21.038 19.904L20.534 19.927C19.114 19.983 17.778 19.997 17.244 19.999L17.009 20H16.754C15.624 19.993 10.898 19.942 9.394 19.524C8.45 19.258 7.707 18.484 7.456 17.502C7.056 15.942 7.006 12.9 7 12.163V11.837C7.006 11.1 7.056 8.05698 7.456 6.49798C7.71 5.51298 8.453 4.73798 9.395 4.47698C10.898 4.05798 15.625 4.00698 16.755 4.00098H17.244ZM14.999 8.50098V15.501L20.999 12.001L14.999 8.50098Z" fill=""/> </svg> </a> </li> </ul> </div> <div class="absolute bottom-60 -left-[9.5rem]"> <span class="-rotate-90 text_atomic_22 text-skeptic-charcoal dark:text-skeptic-foreground-dark block whitespace-nowrap" style="transform-origin: 100% 100%;"> Empowering independent <br>Thinkers Since 1992 </span> </div> </aside> <div class="gh-viewport"> <header id="skeptic_header" class=""> <div class="container_ flex items-center 1lg:items-stretch justify-between pt-[--gap-22-5] 1lg:pt-11"> <div class="h-full flex flex-col"> <a class="block relative" href="/" alt="skeptic logo"> <svg xmlns="http://www.w3.org/2000/svg" class="h-screen max-h-[60px] sm:max-h-[66px] 1lg:max-h-[clamp(7.125rem,4.7143rem+3.5714vw,8.125rem)]" fill="none" viewBox="0 0 633 130"> <g clip-path="url(#clip0_1_3)"> <mask style="mask-type:luminance" id="mask0_1_3" width="633" height="130" x="0" y="0" maskUnits="userSpaceOnUse"> <path fill="#fff" d="M632.406 0H0v130h632.406V0z"/> </mask> <g mask="url(#mask0_1_3)"> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M28.285 96.586c1.483 2.898 3.453 5.247 5.912 7.048 2.458 1.802 5.337 3.133 8.652 4.003a40.333 40.333 0 0 0 10.28 1.305c2.4 0 4.97-.199 7.71-.609 2.742-.409 5.312-1.191 7.71-2.349 2.4-1.157 4.396-2.758 5.998-4.786 1.602-2.027 2.398-4.612 2.398-7.744 0-3.368-1.053-6.091-3.17-8.18-2.116-2.088-4.883-3.828-8.31-5.22-3.426-1.393-7.307-2.61-11.65-3.655a312.494 312.494 0 0 1-13.193-3.48 116.19 116.19 0 0 1-13.364-4.264c-4.344-1.68-8.225-3.855-11.651-6.526-3.427-2.672-6.194-6.005-8.31-10.007-2.116-4.003-3.17-8.85-3.17-14.532 0-6.378 1.345-11.92 4.026-16.62 2.682-4.698 6.194-8.614 10.538-11.746 4.343-3.133 9.252-5.456 14.735-6.962C38.908.757 44.39 0 49.874 0c6.4 0 12.533.722 18.419 2.175C74.178 3.63 79.404 5.978 83.97 9.224c4.566 3.245 8.199 7.396 10.88 12.443 2.681 5.046 4.026 11.164 4.026 18.36H72.833c-.231-3.716-1.002-6.787-2.313-9.224-1.31-2.436-3.058-4.35-5.226-5.743-2.167-1.392-4.651-2.375-7.453-2.958-2.801-.583-5.851-.87-9.166-.87-2.168 0-4.344.235-6.511.696a17.313 17.313 0 0 0-5.911 2.436 14.886 14.886 0 0 0-4.37 4.35c-1.139 1.741-1.713 3.943-1.713 6.614 0 2.436.454 4.412 1.37 5.917.918 1.505 2.717 2.898 5.398 4.177 2.681 1.279 6.39 2.55 11.137 3.828 4.737 1.28 10.94 2.898 18.59 4.873 2.287.461 5.457 1.305 9.51 2.524 4.051 1.218 8.078 3.158 12.079 5.83 4 2.67 7.453 6.239 10.365 10.702 2.913 4.464 4.369 10.181 4.369 17.142 0 5.682-1.088 10.964-3.254 15.837-2.168 4.873-5.398 9.076-9.681 12.617-4.284 3.541-9.595 6.291-15.935 8.266-6.34 1.976-13.681 2.959-22.017 2.959-6.742 0-13.278-.845-19.618-2.524-6.34-1.679-11.933-4.324-16.79-7.918-4.858-3.593-8.713-8.179-11.566-13.748-2.861-5.569-4.232-12.182-4.12-19.84h26.051c0 4.177.745 7.719 2.227 10.616zM135.536 2.958v51.513l47.795-51.513h33.582L169.11 52.034l52.43 75.181h-33.755l-36.836-55.863-15.422 15.836v40.027h-26.899V2.958h26.908zM313.547 2.958V25.93h-64.594v33.588h59.283v21.231h-59.283v23.494h65.966v22.972h-92.865V2.958h91.493zM510.414 2.958v124.257h-26.9V2.958h26.9zM602.251 36.111a27.437 27.437 0 0 0-5.997-6.874c-2.398-1.975-5.115-3.507-8.138-4.612-3.033-1.105-6.194-1.653-9.51-1.653-6.057 0-11.196 1.192-15.42 3.567-4.223 2.376-7.65 5.57-10.28 9.572-2.631 4.003-4.541 8.554-5.74 13.661-1.199 5.108-1.799 10.381-1.799 15.837 0 5.456.6 10.294 1.799 15.228 1.199 4.933 3.109 9.371 5.74 13.313 2.63 3.941 6.057 7.109 10.28 9.484 4.224 2.376 9.363 3.568 15.42 3.568 8.225 0 14.649-2.549 19.276-7.657 4.626-5.108 7.453-11.834 8.481-20.188h26.043c-.685 7.77-2.458 14.793-5.311 21.058-2.853 6.265-6.623 11.599-11.308 16.01-4.686 4.412-10.169 7.771-16.449 10.094-6.279 2.324-13.192 3.481-20.732 3.481-9.363 0-17.793-1.653-25.272-4.96-7.479-3.306-13.793-7.857-18.932-13.661-5.141-5.804-9.082-12.617-11.823-20.449-2.741-7.831-4.112-16.271-4.112-25.32 0-9.05 1.371-17.9 4.112-25.844 2.741-7.945 6.682-14.88 11.823-20.797 5.139-5.917 11.453-10.555 18.932-13.922C560.813 1.679 569.243 0 578.606 0c6.743 0 13.108.983 19.105 2.958 5.996 1.976 11.367 4.847 16.105 8.615 4.738 3.768 8.652 8.44 11.737 14.01 3.084 5.568 5.028 11.946 5.826 19.143h-26.044c-.454-3.133-1.482-6.005-3.084-8.615z"/> <path class="fill-skeptic-primary" fill="" d="M349.699 104.242h-26.9v22.972h26.9v-22.972zM417.976 28.018c-1.541-4.76-4-8.988-7.367-12.704-3.367-3.715-7.736-6.7-13.107-8.962-5.371-2.263-11.882-3.394-19.532-3.394h-55.171v31.673h26.9V24.19h20.903c3.084 0 6.057.235 8.909.696 2.853.461 5.372 1.366 7.539 2.697 2.168 1.332 3.916 3.22 5.226 5.656 1.311 2.437 1.971 5.63 1.971 9.572 0 3.942-.66 7.135-1.971 9.572-1.319 2.436-3.058 4.324-5.226 5.655-2.167 1.332-4.686 2.237-7.539 2.698a55.777 55.777 0 0 1-8.909.696l-18.761.174h-29.042V82.49h29.898l25.273.174c7.65 0 14.161-1.132 19.532-3.394 5.371-2.262 9.74-5.247 13.107-8.962a34.504 34.504 0 0 0 7.367-12.792 47.907 47.907 0 0 0 2.314-14.705c0-4.986-.771-10.033-2.314-14.793z"/> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M410.815 2.958c4.086 2.428 7.47 5.508 10.134 9.232 2.99 4.177 5.174 8.946 6.537 14.297 1.37 5.36 2.056 10.903 2.056 16.646s-.686 11.138-2.056 16.55c-1.371 5.421-3.547 10.224-6.537 14.401a32.41 32.41 0 0 1-4.771 5.308v47.814h26.899V25.93h36.667V2.958h-68.929z"/> </g> </g> <defs> <clipPath id="clip0_1_3"> <path fill="#fff" d="M0 0h632.406v130H0z"/> </clipPath> </defs> </svg> <span class="text-xs absolute text-skeptic-charcoal dark:text-skeptic-foreground-dark -right-3 top-0">TM</span> </a> <nav id="main_nav" class="mt-4 hidden 1lg:flex"> <ul class="flex space-x-5 uppercase list-none text_logo_nav"> <li class="nav-articles group"> <a href="https://www.skeptic.com/articles/" class="block group-hover:text-skeptic-primary">Articles</a> </li> <li class="nav-podcast group"> <a href="https://www.skeptic.com/michael-shermer-show/" class="block group-hover:text-skeptic-primary">Podcast</a> </li> <li class="nav-data group"> <a href="https://research.skeptic.com" class="block group-hover:text-skeptic-primary">Data</a> </li> <li class="nav-events group"> <a href="https://www.skeptic.com/events/" class="block group-hover:text-skeptic-primary">Events</a> </li> <li class="nav-magazine group"> <a href="https://www.skeptic.com/magazine/" class="block group-hover:text-skeptic-primary">Magazine</a> </li> <li class="nav-skeptics-society group"> <a href="https://www.skeptic.com/join-the-movement/" class="block group-hover:text-skeptic-primary">Skeptics Society</a> </li> </ul> </nav> </div> <div class="relative"> <div class="flex 1lg:hidden"> <div id="hamburger" class="hamburger hamburger--squeeze"> <div class="hamburger-box"> <div class="hamburger-inner bg-black before:bg-black after:bg-black dark:bg-skeptic-foreground-dark dark:before:bg-skeptic-foreground-dark dark:after:bg-skeptic-foreground-dark "></div> </div> </div> </div> <nav id="top_secondary_nav" class="hidden 1lg:block"> <ul class="flex items-center list-none text-xs"> <div class="absolute bottom-0 right-0 flex items-center 1xl:contents"> <li x-data=""> <a href="javascript:void(0)" class="" @click="$dispatch('alpinealgoliabox')"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark hover:fill-skeptic-primary transition-colors size-6" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="search_mask_static_menu" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> <rect y="0.757812" width="24" height="24" fill="#D9D9D9"/> </mask> <g mask="url(#search_mask_static_menu)"> <path d="M19.6 21.7578L13.3 15.4578C12.8 15.8578 12.225 16.1745 11.575 16.4078C10.925 16.6411 10.2333 16.7578 9.5 16.7578C7.68333 16.7578 6.14583 16.1286 4.8875 14.8703C3.62917 13.612 3 12.0745 3 10.2578C3 8.44115 3.62917 6.90365 4.8875 5.64531C6.14583 4.38698 7.68333 3.75781 9.5 3.75781C11.3167 3.75781 12.8542 4.38698 14.1125 5.64531C15.3708 6.90365 16 8.44115 16 10.2578C16 10.9911 15.8833 11.6828 15.65 12.3328C15.4167 12.9828 15.1 13.5578 14.7 14.0578L21 20.3578L19.6 21.7578ZM9.5 14.7578C10.75 14.7578 11.8125 14.3203 12.6875 13.4453C13.5625 12.5703 14 11.5078 14 10.2578C14 9.00781 13.5625 7.94531 12.6875 7.07031C11.8125 6.19531 10.75 5.75781 9.5 5.75781C8.25 5.75781 7.1875 6.19531 6.3125 7.07031C5.4375 7.94531 5 9.00781 5 10.2578C5 11.5078 5.4375 12.5703 6.3125 13.4453C7.1875 14.3203 8.25 14.7578 9.5 14.7578Z" fill=""/> </g> </svg> </a> </li> <li> <a href="/donate/" class="" alt="link to donate page"> Donate </a> </li> <li> <a href="https://shop.skeptic.com/" class="" alt="Link to skeptic.com shop"> Shop </a> </li> <li x-data="mode_switcher" @click="switch_mode" class="flex px-[1.34rem] items-center group cursor-pointer"> <div x-ref="theme_toggle" class="theme-toggle mb-0.5" title="Toggle theme"> <span class="theme-toggle-sr">Toggle theme</span> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" stroke-linecap="round" class="theme-toggle__classic size-5 text-black dark:text-white" viewBox="0 0 32 32" > <clipPath id="theme-toggle__classic__cutout"> <path d="M0-5h30a1 1 0 0 0 9 13v24H0Z" /> </clipPath> <g clip-path="url(#theme-toggle__classic__cutout)"> <circle cx="16" cy="16" r="9.34" /> <g stroke="currentColor" stroke-width="1.5"> <path d="M16 5.5v-4" /> <path d="M16 30.5v-4" /> <path d="M1.5 16h4" /> <path d="M26.5 16h4" /> <path d="m23.4 8.6 2.8-2.8" /> <path d="m5.7 26.3 2.9-2.9" /> <path d="m5.8 5.8 2.8 2.8" /> <path d="m23.4 23.4 2.9 2.9" /> </g> </g> </svg> </div> <span class="ml-1.5 transition-colors text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary whitespace-nowrap" x-text="switchToMode">Mode</span> </li> <li x-data=""> <a href="javascript:void(0)" alt="Login window for users" class="!pr-0 1xl:!pr-[1.34rem] whitespace-nowrap" @click="$dispatch('skpopenloginform')">Log In</a> </li> </div> <li class="ml-5" x-data=""> <div class="group" onclick="window.dispatchEvent( new CustomEvent('openModalPricingCards', { detail: {}} ));"> <a id="" href="javascript:void(0)" role="button" class="skeptic_btn skeptic_btn_outline max-h-[2.53rem] group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Subscribe</span> </a> </div> </li> </ul> </nav> </div> </div> </header> <header id="skp_sticky_menu" class=" w-full fixed top-0 left-0 z-40 bg-[rgba(255,245,223,0.86)] dark:bg-[rgba(31,30,30,0.92)] backdrop-blur-lg transition-transform duration-300 ease-in-out -translate-y-full border-b border-black dark:border-white border-opacity-5 dark:border-opacity-5 "> <div id="sticky_menu_container" class="container_ flex items-center py-[clamp(1rem,0.5826rem+1.4842vw,2rem)]"> <div id="sticky_menu_logo_nav" class="flex items-center"> <a href="#" alt="Skeptic Magazine Logo" class="block"> <svg xmlns="http://www.w3.org/2000/svg" class="w-full !h-8 max-w-[155px]" fill="none" viewBox="0 0 633 130"> <g clip-path="url(#clip0_1_3)"> <mask style="mask-type:luminance" id="mask0_1_3" width="633" height="130" x="0" y="0" maskUnits="userSpaceOnUse"> <path fill="#fff" d="M632.406 0H0v130h632.406V0z"/> </mask> <g mask="url(#mask0_1_3)"> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M28.285 96.586c1.483 2.898 3.453 5.247 5.912 7.048 2.458 1.802 5.337 3.133 8.652 4.003a40.333 40.333 0 0 0 10.28 1.305c2.4 0 4.97-.199 7.71-.609 2.742-.409 5.312-1.191 7.71-2.349 2.4-1.157 4.396-2.758 5.998-4.786 1.602-2.027 2.398-4.612 2.398-7.744 0-3.368-1.053-6.091-3.17-8.18-2.116-2.088-4.883-3.828-8.31-5.22-3.426-1.393-7.307-2.61-11.65-3.655a312.494 312.494 0 0 1-13.193-3.48 116.19 116.19 0 0 1-13.364-4.264c-4.344-1.68-8.225-3.855-11.651-6.526-3.427-2.672-6.194-6.005-8.31-10.007-2.116-4.003-3.17-8.85-3.17-14.532 0-6.378 1.345-11.92 4.026-16.62 2.682-4.698 6.194-8.614 10.538-11.746 4.343-3.133 9.252-5.456 14.735-6.962C38.908.757 44.39 0 49.874 0c6.4 0 12.533.722 18.419 2.175C74.178 3.63 79.404 5.978 83.97 9.224c4.566 3.245 8.199 7.396 10.88 12.443 2.681 5.046 4.026 11.164 4.026 18.36H72.833c-.231-3.716-1.002-6.787-2.313-9.224-1.31-2.436-3.058-4.35-5.226-5.743-2.167-1.392-4.651-2.375-7.453-2.958-2.801-.583-5.851-.87-9.166-.87-2.168 0-4.344.235-6.511.696a17.313 17.313 0 0 0-5.911 2.436 14.886 14.886 0 0 0-4.37 4.35c-1.139 1.741-1.713 3.943-1.713 6.614 0 2.436.454 4.412 1.37 5.917.918 1.505 2.717 2.898 5.398 4.177 2.681 1.279 6.39 2.55 11.137 3.828 4.737 1.28 10.94 2.898 18.59 4.873 2.287.461 5.457 1.305 9.51 2.524 4.051 1.218 8.078 3.158 12.079 5.83 4 2.67 7.453 6.239 10.365 10.702 2.913 4.464 4.369 10.181 4.369 17.142 0 5.682-1.088 10.964-3.254 15.837-2.168 4.873-5.398 9.076-9.681 12.617-4.284 3.541-9.595 6.291-15.935 8.266-6.34 1.976-13.681 2.959-22.017 2.959-6.742 0-13.278-.845-19.618-2.524-6.34-1.679-11.933-4.324-16.79-7.918-4.858-3.593-8.713-8.179-11.566-13.748-2.861-5.569-4.232-12.182-4.12-19.84h26.051c0 4.177.745 7.719 2.227 10.616zM135.536 2.958v51.513l47.795-51.513h33.582L169.11 52.034l52.43 75.181h-33.755l-36.836-55.863-15.422 15.836v40.027h-26.899V2.958h26.908zM313.547 2.958V25.93h-64.594v33.588h59.283v21.231h-59.283v23.494h65.966v22.972h-92.865V2.958h91.493zM510.414 2.958v124.257h-26.9V2.958h26.9zM602.251 36.111a27.437 27.437 0 0 0-5.997-6.874c-2.398-1.975-5.115-3.507-8.138-4.612-3.033-1.105-6.194-1.653-9.51-1.653-6.057 0-11.196 1.192-15.42 3.567-4.223 2.376-7.65 5.57-10.28 9.572-2.631 4.003-4.541 8.554-5.74 13.661-1.199 5.108-1.799 10.381-1.799 15.837 0 5.456.6 10.294 1.799 15.228 1.199 4.933 3.109 9.371 5.74 13.313 2.63 3.941 6.057 7.109 10.28 9.484 4.224 2.376 9.363 3.568 15.42 3.568 8.225 0 14.649-2.549 19.276-7.657 4.626-5.108 7.453-11.834 8.481-20.188h26.043c-.685 7.77-2.458 14.793-5.311 21.058-2.853 6.265-6.623 11.599-11.308 16.01-4.686 4.412-10.169 7.771-16.449 10.094-6.279 2.324-13.192 3.481-20.732 3.481-9.363 0-17.793-1.653-25.272-4.96-7.479-3.306-13.793-7.857-18.932-13.661-5.141-5.804-9.082-12.617-11.823-20.449-2.741-7.831-4.112-16.271-4.112-25.32 0-9.05 1.371-17.9 4.112-25.844 2.741-7.945 6.682-14.88 11.823-20.797 5.139-5.917 11.453-10.555 18.932-13.922C560.813 1.679 569.243 0 578.606 0c6.743 0 13.108.983 19.105 2.958 5.996 1.976 11.367 4.847 16.105 8.615 4.738 3.768 8.652 8.44 11.737 14.01 3.084 5.568 5.028 11.946 5.826 19.143h-26.044c-.454-3.133-1.482-6.005-3.084-8.615z"/> <path class="fill-skeptic-primary" fill="" d="M349.699 104.242h-26.9v22.972h26.9v-22.972zM417.976 28.018c-1.541-4.76-4-8.988-7.367-12.704-3.367-3.715-7.736-6.7-13.107-8.962-5.371-2.263-11.882-3.394-19.532-3.394h-55.171v31.673h26.9V24.19h20.903c3.084 0 6.057.235 8.909.696 2.853.461 5.372 1.366 7.539 2.697 2.168 1.332 3.916 3.22 5.226 5.656 1.311 2.437 1.971 5.63 1.971 9.572 0 3.942-.66 7.135-1.971 9.572-1.319 2.436-3.058 4.324-5.226 5.655-2.167 1.332-4.686 2.237-7.539 2.698a55.777 55.777 0 0 1-8.909.696l-18.761.174h-29.042V82.49h29.898l25.273.174c7.65 0 14.161-1.132 19.532-3.394 5.371-2.262 9.74-5.247 13.107-8.962a34.504 34.504 0 0 0 7.367-12.792 47.907 47.907 0 0 0 2.314-14.705c0-4.986-.771-10.033-2.314-14.793z"/> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M410.815 2.958c4.086 2.428 7.47 5.508 10.134 9.232 2.99 4.177 5.174 8.946 6.537 14.297 1.37 5.36 2.056 10.903 2.056 16.646s-.686 11.138-2.056 16.55c-1.371 5.421-3.547 10.224-6.537 14.401a32.41 32.41 0 0 1-4.771 5.308v47.814h26.899V25.93h36.667V2.958h-68.929z"/> </g> </g> <defs> <clipPath id="clip0_1_3"> <path fill="#fff" d="M0 0h632.406v130H0z"/> </clipPath> </defs> </svg> </a> <nav id="main_nav_sticky" class="hidden ml-[--gap-22-5] 1lg:flex"> <ul class="flex items-center space-x-5 uppercase list-none text_logo_nav mt-0.5"> <li class="nav-articles group"> <a href="https://www.skeptic.com/articles/" class="block group-hover:text-skeptic-primary">Articles</a> </li> <li class="nav-podcast group"> <a href="https://www.skeptic.com/michael-shermer-show/" class="block group-hover:text-skeptic-primary">Podcast</a> </li> <li class="nav-data group"> <a href="https://research.skeptic.com" class="block group-hover:text-skeptic-primary">Data</a> </li> <li class="nav-events group"> <a href="https://www.skeptic.com/events/" class="block group-hover:text-skeptic-primary">Events</a> </li> <li class="nav-magazine group"> <a href="https://www.skeptic.com/magazine/" class="block group-hover:text-skeptic-primary">Magazine</a> </li> <li class="nav-skeptics-society group"> <a href="https://www.skeptic.com/join-the-movement/" class="block group-hover:text-skeptic-primary">Skeptics Society</a> </li> </ul> </nav> </div> <div id="sticky_menu_secondary_menu" class="relative ml-auto flex items-center"> <div x-data="" class="flex items-center"> <div class="mr-2 1lg:-mr-1"> <a href="javascript:void(0)" class="block" @click="$dispatch('alpinealgoliabox')"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark hover:fill-skeptic-primary transition-colors size-6" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="search_mask_sticky_menu" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> <rect y="0.757812" width="24" height="24" fill="#D9D9D9"/> </mask> <g mask="url(#search_mask_sticky_menu)"> <path d="M19.6 21.7578L13.3 15.4578C12.8 15.8578 12.225 16.1745 11.575 16.4078C10.925 16.6411 10.2333 16.7578 9.5 16.7578C7.68333 16.7578 6.14583 16.1286 4.8875 14.8703C3.62917 13.612 3 12.0745 3 10.2578C3 8.44115 3.62917 6.90365 4.8875 5.64531C6.14583 4.38698 7.68333 3.75781 9.5 3.75781C11.3167 3.75781 12.8542 4.38698 14.1125 5.64531C15.3708 6.90365 16 8.44115 16 10.2578C16 10.9911 15.8833 11.6828 15.65 12.3328C15.4167 12.9828 15.1 13.5578 14.7 14.0578L21 20.3578L19.6 21.7578ZM9.5 14.7578C10.75 14.7578 11.8125 14.3203 12.6875 13.4453C13.5625 12.5703 14 11.5078 14 10.2578C14 9.00781 13.5625 7.94531 12.6875 7.07031C11.8125 6.19531 10.75 5.75781 9.5 5.75781C8.25 5.75781 7.1875 6.19531 6.3125 7.07031C5.4375 7.94531 5 9.00781 5 10.2578C5 11.5078 5.4375 12.5703 6.3125 13.4453C7.1875 14.3203 8.25 14.7578 9.5 14.7578Z" fill=""/> </g> </svg> </a> </div> <div id="hamburger-sticky" class="hamburger hamburger--squeeze 1lg:hidden"> <div class="hamburger-box"> <div class="hamburger-inner bg-black before:bg-black after:bg-black dark:bg-skeptic-foreground-dark dark:before:bg-skeptic-foreground-dark dark:after:bg-skeptic-foreground-dark "></div> </div> </div> </div> <nav id="top_secondary_nav_sticky" class="hidden 1lg:block"> <ul class="flex items-center list-none text-xs"> <li x-data=""> <a href="javascript:void(0)" class="" @click="$dispatch('alpinealgoliabox')"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark hover:fill-skeptic-primary transition-colors " viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> <rect y="0.757812" width="24" height="24" fill="#D9D9D9"/> </mask> <g mask="url(#)"> <path d="M19.6 21.7578L13.3 15.4578C12.8 15.8578 12.225 16.1745 11.575 16.4078C10.925 16.6411 10.2333 16.7578 9.5 16.7578C7.68333 16.7578 6.14583 16.1286 4.8875 14.8703C3.62917 13.612 3 12.0745 3 10.2578C3 8.44115 3.62917 6.90365 4.8875 5.64531C6.14583 4.38698 7.68333 3.75781 9.5 3.75781C11.3167 3.75781 12.8542 4.38698 14.1125 5.64531C15.3708 6.90365 16 8.44115 16 10.2578C16 10.9911 15.8833 11.6828 15.65 12.3328C15.4167 12.9828 15.1 13.5578 14.7 14.0578L21 20.3578L19.6 21.7578ZM9.5 14.7578C10.75 14.7578 11.8125 14.3203 12.6875 13.4453C13.5625 12.5703 14 11.5078 14 10.2578C14 9.00781 13.5625 7.94531 12.6875 7.07031C11.8125 6.19531 10.75 5.75781 9.5 5.75781C8.25 5.75781 7.1875 6.19531 6.3125 7.07031C5.4375 7.94531 5 9.00781 5 10.2578C5 11.5078 5.4375 12.5703 6.3125 13.4453C7.1875 14.3203 8.25 14.7578 9.5 14.7578Z" fill=""/> </g> </svg> </a> </li> <li> <a href="/donate/" class="" alt="link to donate page"> Donate </a> </li> <li> <a href="https://shop.skeptic.com/" class="" alt="Link to skeptic.com shop"> Shop </a> </li> <li x-data="mode_switcher" @click="switch_mode" class="flex px-[1.34rem] items-center group cursor-pointer"> <div x-ref="theme_toggle" class="theme-toggle mb-0.5" title="Toggle theme"> <span class="theme-toggle-sr">Toggle theme</span> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" stroke-linecap="round" class="theme-toggle__classic size-5 text-black dark:text-white" viewBox="0 0 32 32" > <clipPath id="theme-toggle__classic__cutout_sticky"> <path d="M0-5h30a1 1 0 0 0 9 13v24H0Z" /> </clipPath> <g clip-path="url(#theme-toggle__classic__cutout_sticky)"> <circle cx="16" cy="16" r="9.34" /> <g stroke="currentColor" stroke-width="1.5"> <path d="M16 5.5v-4" /> <path d="M16 30.5v-4" /> <path d="M1.5 16h4" /> <path d="M26.5 16h4" /> <path d="m23.4 8.6 2.8-2.8" /> <path d="m5.7 26.3 2.9-2.9" /> <path d="m5.8 5.8 2.8 2.8" /> <path d="m23.4 23.4 2.9 2.9" /> </g> </g> </svg> </div> <span class="ml-1.5 transition-colors text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary whitespace-nowrap" x-text="switchToMode">Mode</span> </li> <li x-data=""> <a href="javascript:void(0)" alt="Login window for users" class="!pr-0 1xl:!pr-[1.34rem]" @click="$dispatch('skpopenloginform')">Log In</a> </li> <li class="ml-5" x-data=""> <div class="group" onclick="window.dispatchEvent( new CustomEvent('openModalPricingCards', { detail: {}} ));"> <a id="" href="javascript:void(0)" role="button" class="skeptic_btn skeptic_btn_outline max-h-[2.53rem] group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Subscribe</span> </a> </div> </li> </ul> </nav> </div> </div> </header> <script> //We need to take width of sticky_menu_container, then width of sticky_menu_logo_nav and then width of sticky_menu_secondary_menu //Then we need to calculate the space left in the middle (function () { const stickyMenuContainer = document.getElementById('sticky_menu_container'); const stickyMenuNav = document.getElementById('sticky_menu_logo_nav'); const secondaryMenu = document.getElementById('sticky_menu_secondary_menu'); if (!stickyMenuContainer || !stickyMenuNav || !secondaryMenu) return; const navHTML = stickyMenuNav.innerHTML; // Save original content for reset let windowClickListener; const makeDropdown = function () { const submenuItems = []; // Adjust until everything fits or no more items are left while ((stickyMenuNav.offsetWidth + secondaryMenu.offsetWidth + 200) > stickyMenuContainer.offsetWidth) { const lastItem = stickyMenuNav.querySelector('ul').lastElementChild; if (lastItem) { submenuItems.unshift(lastItem); lastItem.remove(); } else { break; } } // If no items were moved, there's no need to create a dropdown if (!submenuItems.length) { document.body.classList.add('is-dropdown-loaded'); return; } // Create "more" button and dropdown const toggle = document.createElement('button'); toggle.setAttribute('class', 'nav-more-toggle'); toggle.setAttribute('aria-label', 'More'); toggle.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor"><path d="M21.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM13.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM5.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0z"></path></svg>'; const dropdown = document.createElement('div'); dropdown.setAttribute('class', 'dots-dropdown-menu'); submenuItems.forEach(function (child) { dropdown.appendChild(child); }); toggle.appendChild(dropdown); const new_li = document.createElement('li'); new_li.appendChild(toggle); stickyMenuNav.querySelector('ul').appendChild(new_li); document.body.classList.add('is-dropdown-loaded'); toggle.addEventListener('click', function () { document.body.classList.toggle('is-dropdown-open'); }); // Close dropdown on outside click windowClickListener = function (e) { if (!toggle.contains(e.target) && document.body.classList.contains('is-dropdown-open')) { document.body.classList.remove('is-dropdown-open'); } }; window.addEventListener('click', windowClickListener); }; window.addEventListener('load', ()=> { makeDropdown(); }) // Handle resizing and dropdown rebuilding window.addEventListener('resize', function () { setTimeout(function () { window.removeEventListener('click', windowClickListener); stickyMenuNav.innerHTML = navHTML; // Reset to original state makeDropdown(); }, 1); }); })(); </script> <main class="gh-main"> <article id="skp_article_wrapper" class="gh-article post tag-article tag-hash-author-robert-maranto tag-hash-author-wilfred-reilly tag-blm tag-social-justice tag-crime skp_content" data-visibility="public" data-post-id="67af807c6955920001ac1890"> <div class="container_"> <header class="gh-header pt-[--gap-40] 1xl:pt-0 flex flex-col xl:flex-row "> <div class="text-left 1xl:min-w-[657px] max-w-4xl xl:basis-1/2 xl:pr-10 pt-[--gap-67-5] xl:pt-0 1xl:pt-16"> <h1 class="gh-title text_56 font-bold leading-[1.33] tracking-[-1.68px] text-skeptic-charcoal dark:text-skeptic-foreground-dark">Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing</h1> <div class="mt-[--gap-45] pt-1.5 skp_post_authors"> <span class="uppercase font-bold text_18 leading-[1.33] text-skeptic-charcoal dark:text-skeptic-foreground-dark">Robert Maranto</span> <span class="uppercase font-bold text_18 leading-[1.33] text-skeptic-charcoal dark:text-skeptic-foreground-dark">Wilfred Reilly</span> <div class="text-sm mt-1"> <time class="uppercase tracking-wider text-skeptic-charcoal dark:text-skeptic-foreground-dark" datetime="2025-02-24">February 24, 2025</time> <span class="bull">-</span> <span class="font-bold normal-case tracking-normal text-skeptic-charcoal dark:text-skeptic-foreground-dark">16 min read</span> </div> <ul id="post_tags" class="flex flex-wrap gap-2 lg:gap-3 mt-6 lg:mt-8 xl:mt-12 list-none ml-0"> <li data-tag="article"> <a href="https://www.skeptic.com/tag/article/" alt="link to category" class="skeptic_tag_badge"> <span>Article</span> </a> </li> <li data-tag="blm" class="group"> <a href="https://www.skeptic.com/tag/blm/" alt="link to category" class="skeptic_tag_badge_outline"> <span>BLM</span> </a> </li> <li data-tag="social-justice" class="group"> <a href="https://www.skeptic.com/tag/social-justice/" alt="link to category" class="skeptic_tag_badge_outline"> <span>social justice</span> </a> </li> <li data-tag="crime" class="group"> <a href="https://www.skeptic.com/tag/crime/" alt="link to category" class="skeptic_tag_badge_outline"> <span>crime</span> </a> </li> </ul> </div> </div> <figure class="gh-feature-image mt-10 xl:mt-0 xl:basis-1/2 flex flex-col xl:items-end"> <picture class="block overflow-hidden w-full"> <source srcset=" /content/images/size/w30/format/avif/2025/02/Defund_the_police-1.webp 30w, /content/images/size/w100/format/avif/2025/02/Defund_the_police-1.webp 100w, /content/images/size/w300/format/avif/2025/02/Defund_the_police-1.webp 300w, /content/images/size/w600/format/avif/2025/02/Defund_the_police-1.webp 600w, /content/images/size/w1200/format/avif/2025/02/Defund_the_police-1.webp 1200w, /content/images/size/w2000/format/avif/2025/02/Defund_the_police-1.webp 2000w" sizes="(min-width: 1200px) 1200px, 90vw" type="image/avif" > <source srcset=" /content/images/size/w30/format/webp/2025/02/Defund_the_police-1.webp 30w, /content/images/size/w100/format/webp/2025/02/Defund_the_police-1.webp 100w, /content/images/size/w300/format/webp/2025/02/Defund_the_police-1.webp 300w, /content/images/size/w600/format/webp/2025/02/Defund_the_police-1.webp 600w, /content/images/size/w1200/format/webp/2025/02/Defund_the_police-1.webp 1200w, /content/images/size/w2000/format/webp/2025/02/Defund_the_police-1.webp 2000w" sizes="(min-width: 1200px) 1200px, 90vw" type="image/webp" > <img data-src="/content/images/size/w2000/2025/02/Defund_the_police-1.webp" srcset=" /content/images/size/w30/2025/02/Defund_the_police-1.webp 30w, /content/images/size/w100/2025/02/Defund_the_police-1.webp 100w, /content/images/size/w300/2025/02/Defund_the_police-1.webp 300w, /content/images/size/w600/2025/02/Defund_the_police-1.webp 600w, /content/images/size/w1200/2025/02/Defund_the_police-1.webp 1200w, /content/images/size/w2000/2025/02/Defund_the_police-1.webp 2000w" sizes="(min-width: 1200px) 1200px, 90vw" src="/content/images/size/w2000/2025/02/Defund_the_police-1.webp" class="lazy w-full h-full object-contain" alt="Black Lives Matter vs. Black Lives Saved: The Urgent Need for Better Policing" > </picture> <figcaption class="text-right mt-2 lg:mt-3"><span style="white-space: pre-wrap;">June 5, 2020: a protester holds a “Defund the Police” sign following George Floyd’s death. Photo by&nbsp;Taymaz Valley, CC BY 2.0)</span></figcaption> </figure> </header> </div> <div id="skp_content" class="gh-content gh-canvas skeptic_load_content"> <!--kg-card-begin: html--> <p> <span class="dropCap">T</span>o paraphrase Shakespeare’s <em>Romeo and Juliet</em>, Black Lives Matter activists and police unions are two houses both alike in indignity. Neither truly wants to improve policing in the most necessary ways: the former because it could undermine their view of the world and reduce revenue streams, including billions in donations; the latter for a more mundane reason. Cops, like other street-level bureaucrats, don’t want to change their standard operating procedures and face accountability for screwups. Unfortunately, with Black Lives Matter groups receiving billions in donations and helping increase progressive turnout, media and academia failing to provide accurate information to voters, and police unions enjoying iconic status among conservatives when they are better viewed as armed but equally inefficient teachers’ unions, we don’t see the political incentives for reform any time soon, despite some recent local level successes. </p> <!--kg-card-end: html--> <h2 id="injustice%E2%80%94how-progressives-and-some-conservatives-got-us-into-this-mess">Injustice—How Progressives (and Some Conservatives) Got Us Into This Mess</h2><p>Professors and other respectables rail against “deplorables,”<a href="#A term infamously used by Hillary Clinton in the 2016 presidential election." rel="noreferrer"><sup>1</sup></a>&nbsp;but missing in political discourse is that mass rule, AKA populism, is not a mass pathological delusion. Rather, its appearance is for solid economic and social reasons. When problems that affect regular citizens get ignored by their leaders, people in democratic systems can get revenge at the ballot box. From inflation and foreign policy debacles, to COVID-19 school shutdowns that went on far longer in the U.S. than in Europe at immense and immensely unequal social cost,<a href="#Maranto, R., &amp; Marshall, D. T. (Eds.). (2024). <em>COVID-19 and Schools</em>. Routledge. " rel="noreferrer"><sup>2</sup></a>&nbsp;ordinary people sense that the wealthy, bureaucrats, professionals, and professors often advance their own interests and fetishes at the expense of regular folks, and then use mainstream “knowledge producing” institutions, particularly academia and the mainstream news media, to cover up their failings.</p><p>Indeed, as&nbsp;<em>Newsweek</em>’s Batya Ungar-Sargon shows in her brilliant book&nbsp;<em>Bad News: How Woke Media Is Undermining Democracy</em>, the mainstream media now stand forthrightly behind the plutocrats. This can be documented empirically: the Center for Public Integrity points out that, during the 2016 presidential race, identified mainstream media journalists made 96 percent of their financial donations to one political party (the Democrats) and to the more mainstream of the candidates running.<a href="https://is.gd/4v7342?ref=skeptic.com" rel="noreferrer"><sup>3</sup></a>&nbsp;That basic instinct to hold the respectables accountable for their failings may have been the only thing keeping the Trump 2024 presidential candidacy viable despite his many and well-documented failings and debate loss against Kamala Harris.<a href="https://is.gd/MiiJ9a?ref=skeptic.com" rel="noreferrer"><sup>4</sup></a></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.skeptic.com/content/images/2025/02/end-racism-blm.webp" class="kg-image" alt="" loading="lazy" width="2000" height="1333" srcset="https://www.skeptic.com/content/images/size/w600/2025/02/end-racism-blm.webp 600w, https://www.skeptic.com/content/images/size/w1000/2025/02/end-racism-blm.webp 1000w, https://www.skeptic.com/content/images/size/w1600/2025/02/end-racism-blm.webp 1600w, https://www.skeptic.com/content/images/2025/02/end-racism-blm.webp 2000w" sizes="(min-width: 1200px) 1200px"></figure><p>Perhaps nowhere is popular anger more justifiable than regarding crime, a trend best captured in the saga of the Black Lives Matter (BLM) movement. The roots of that failure go deep, and implicate multiple sacred cows in contemporary elite politics. As Anglo-Canadian political scientist Eric P. Kaufmann writes in his landmark work&nbsp;<em>The Third Awokening</em>,<a href="#(Bombardier Books, 2024). For a good description about how these ideologies manifest themselves in higher education, see Mills, M., Maranto, R., and Redding, R. (2024). “What Type of Social Justice Do We Want,” <em>Skeptic</em> 29:2, 52–58." rel="noreferrer"><sup>5</sup></a>&nbsp;critical theory and other postmodern ideologies (AKA woke) have been evolving for over a century. To his credit, and unlike most conservatives, Kaufmann does not paint wokeism as entirely wrong—like populism, it too came about as a result of grievances experienced by the wider society. Rather, he describes it as needing moderating influences because, as with all other ideologies, it is not entirely (or in this case even mainly) correct. This is all the more so since so many among the woke, who are vastly overrepresented in the political class, lack experience with people from different walks of life. Their insulation, which Democratic commentator and political consultant James Carville—who coined the phrase “it’s the economy, stupid” that was key to then-Governor Bill Clinton’s 1992 victory over President George H.W. Bush—derides as “faculty lounge politics,”<a href="https://is.gd/RrFWDs?ref=skeptic.com" rel="noreferrer"><sup>6</sup></a>&nbsp;promotes fanaticism, declaring formerly extreme ideas not merely contestable or even mainstream, but off limits to criticism.</p><p>The nonnegotiable assumptions of late-stage woke include reflexively disparaging the achievements of Western civilization, while anointing non-Western or traditionally marginalized peoples and ideas as sacred. This deep script makes those (particularly wealthy Whites)<a href="#Minorities, in contrast, do not support defunding the police. See <a href=&quot;https://is.gd/qppnkx&quot;>https://is.gd/qppnkx</a>" rel="noreferrer"><sup>7</sup></a>&nbsp;with advanced degrees susceptible to believing the worst about White police officers, leaving influential segments of the political class subject to exploitation by grifters, with disastrous results. As one of us shows, many Americans believe that police pose a near genocidal threat to Black people, when in fact in a typical year fewer than 20 unarmed Black people (some of whom were attacking the police) are killed by nearly a half million White police officers, a lot lower than one would expect given that the Black crime rate is more than double that of other cohorts.<a href="#Reilly, W. (2019). <em>Taboo: 10 Facts You Can’t Talk About</em>. Regnery Publishing, pp. 1–30. " rel="noreferrer"><sup>8</sup></a>&nbsp;Likewise,&nbsp;<em>The 1619 Project</em>&nbsp;creator Nikole Hannah-Jones and many other activists claim that police departments evolved from racist slave-catching patrols, which is simply not true.<a href="https://is.gd/n4RWYw?ref=skeptic.com" rel="noreferrer"><sup>9</sup></a></p><p>The problem arises when the Pulitzer Prize-winning Hannah-Jones and many other scholars and activists have an interest in maintaining the assertion that police are a threat to Black people, employing shocking visual images and taking advantage of widespread ignorance to make the case. The&nbsp;<em>PBS News Hour</em>, like other media outlets, has constantly highlighted the very rare instances in which White police officers actually do kill unarmed Black people, without ever placing them in the context of overall statistical evidence, which demonstrates that these tragic events are incredibly rare, nor giving comparable treatment to the far more numerous White casualties of police.<a href="#See, for example, <em>PBS News Hour</em>, <a href=&quot;https://is.gd/CiOOWI&quot;>https://is.gd/CiOOWI</a>; See also W. Reilly’s, <em>Taboo</em>. Unlike PBS, Reilly points out (p. 25) that police shootings of Whites get only about a tenth of the media coverage as shootings of Blacks." rel="noreferrer"><sup>10</sup></a></p><blockquote class="kg-blockquote-alt">Since the Black Lives era began, fatal ambushes of police officers have risen dramatically, almost certainly due to demonizing of the police.</blockquote><p>Academia is an even greater offender. At the opening plenary of the 2021 American Educational Research Association annual meeting, AERA President Shaun Harper spent most of his hour-long session lambasting police as a threat to Black people. Harper is a master at securing grants and climbing the hierarchy to run academic associations. Yet his views on cops are out of sync with both reality and with the views of Black voters, who have consistently refused to support defunding police, and whose opinions on criminal justice generally resemble those of Whites and Hispanics.<a href="https://is.gd/qppnkx?ref=skeptic.com" rel="noreferrer"><sup>11</sup></a><sup>, </sup><a href="https://is.gd/8v3uQr?ref=skeptic.com" rel="noreferrer"><sup>12</sup></a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.skeptic.com/content/images/2025/02/police-reform-collage-1.png" class="kg-image" alt="" loading="lazy" width="1900" height="1267" srcset="https://www.skeptic.com/content/images/size/w600/2025/02/police-reform-collage-1.png 600w, https://www.skeptic.com/content/images/size/w1000/2025/02/police-reform-collage-1.png 1000w, https://www.skeptic.com/content/images/size/w1600/2025/02/police-reform-collage-1.png 1600w, https://www.skeptic.com/content/images/2025/02/police-reform-collage-1.png 1900w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Effective, accountable policing can save lives, especially in Black communities. Reform, rather than de-policing, is crucial.</em></i></figcaption></figure><p>Harper’s views do, however, reflect the Critical Race Theory (CRT) approaches preferred by professors studying race, both in education and in the social sciences more broadly—24 of the 25 most cited works with Black Lives Matter in their titles do&nbsp;<em>not</em>&nbsp;involve research that would save Black lives in any conceivable time frame. The 19th&nbsp;most cited article does empirically study (and suggest better) police procedures, making a case for having police document their actions in writing not just every time they fire their guns, but every time they&nbsp;<em>unholster</em>&nbsp;them. This mere reform, likely forcing cops to think an extra second before acting, reduces police shootings of civilians without increasing casualties among officers.<a href="https://is.gd/87YCY6?ref=skeptic.com" rel="noreferrer"><sup>13</sup></a>&nbsp;In sharp contrast, however, other highly cited “scholarly” articles on Black Lives Matter:</p><blockquote>… explore social media use and activism (4, including one piece involving Ben and Jerry’s ice cream and BLM), racial activism and white attitudes (3), immigration and migrants (2), anti-Blackness in higher education, “democratic repair,” radically re-imagining law, anti-Blackness of global capital, urban geography, counseling psychology, research on K–12 schools, BLM and “technoscientific expertise amid solar transitions,” BLM and “evidence based outrage in obstetrics and gynecology,” and BLM and differential mortality in the electorate.<a href="https://is.gd/ul2P9s?ref=skeptic.com" rel="noreferrer"><sup>14</sup></a></blockquote><p>It is probably worth repeating here that at least one article, written by senior academics at respected institutions, looks specifically at the influence of the Black Lives Matter movement on the naming of popular ice cream flavors at Ben and Jerry’s. These “studies” get professors tenure, grants, and notoriety, but will not save Black (or any) lives in any conceivable time frame.</p><p>Sometimes academia allies with progressive politicians. As Harvard University-affiliated Democratic pollster John Della Volpe boasted at a recent political science conference,<a href="#New England Political Science Association Meeting, April 20, Newport, RI." rel="noreferrer"><sup>15</sup></a>&nbsp;Black Lives Matter offers dramatic symbols that can measurably increase progressive voter turnout. Left unsaid was that the dominant BLM narrative both misleads voters and gets Black people killed—or that questioning it can be risky. This tension likely explains why, after careful, peer-reviewed empirical research by economist Roland Fryer found that controlling for suspect behavior, police do not disproportionately kill Black people (White suspects were in fact 27 percent more likely to be shot), then-Harvard University President Claudine Gay tried to fire Fryer.</p><p>She accused the tenured professor, an African- American academic star, of the use of inappropriate language, an offense for which Harvard’s own policies dictated sensitivity training. Fryer’s published findings were likely seen as attacking “sacred” beliefs and threatening external grants received on the premise of overwhelming police racism.<a href="#<a href=&quot;https://is.gd/Jl2Wrn&quot;>https://is.gd/Jl2Wrn</a> (The title’s prediction proved wrong after the Harvard Corporation found it impossible to cover up Gay’s serial plagiarism.)" rel="noreferrer"><sup>16</sup></a>&nbsp;As renegade journalist Batya Ungar-Sargon shows, the same dynamic holds in newsrooms, where reporting on Black Lives Matter’s spectacular failures to save Black (and other) lives is a firing offense.<a href="#Ungar-Sargon, B. (2023). <em>Bad News: How Woke Media Is Undermining Democracy</em>. Encounter Books." rel="noreferrer"><sup>17</sup></a>&nbsp;Indeed, were we not tenured professors at public universities in the South, we could likely get in trouble for writing essays like this one.</p><p>So what if progressives use anti-police demagoguery to win a few elections and grants? Isn’t that just election campaign “gamesmanship?” Does that hurt anyone? Yes, it does. Since the Black Lives era began, fatal ambushes of police officers have risen dramatically, almost certainly due to demonizing of the police. More importantly, Black Lives Matter de-policing policies seem to have taken thousands of (mainly Black) lives.<a href="#Reilly, <em>Taboo</em>; <a href=&quot;https://is.gd/LnRpxs&quot;>https://is.gd/LnRpxs</a>" rel="noreferrer"><sup>18</sup></a>&nbsp;During the BLM era, dated here as beginning in 2012, the age-adjusted Black homicide rate has almost doubled, rising from 18.6 murders per 100,000 African-American citizens in 2011 to 32 murders per 100,000 in 2021.<a href="#“Age Adjusted Assault (Homicide) Death Rates by Race and Sex: Michigan 1980-2022 and United States Residents (1980–2022),” Division of Vital Records and Health Statistics: Michigan Department of Health and Human Services, <a href=&quot;https://www.mdch.state.mi.us/osr/deaths/Homicdx.asp&quot;>https://www.mdch.state.mi.us/osr/deaths/Homicdx.asp</a>" rel="noreferrer"><sup>19</sup></a>&nbsp;Murders of Black males rose to an astonishing peak of 56/100,000 during this period (in 2021), while Black women (9.0/100,000) came to “boast” a higher homicide rate than White men (6.4) and all American men (8.2).</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.skeptic.com/content/images/2025/02/age-adjusted-assault-homicide-death-rates-1980-2022.webp" class="kg-image" alt="" loading="lazy" width="2000" height="1289" srcset="https://www.skeptic.com/content/images/size/w600/2025/02/age-adjusted-assault-homicide-death-rates-1980-2022.webp 600w, https://www.skeptic.com/content/images/size/w1000/2025/02/age-adjusted-assault-homicide-death-rates-1980-2022.webp 1000w, https://www.skeptic.com/content/images/size/w1600/2025/02/age-adjusted-assault-homicide-death-rates-1980-2022.webp 1600w, https://www.skeptic.com/content/images/size/w2400/2025/02/age-adjusted-assault-homicide-death-rates-1980-2022.webp 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>Yet for all our lambasting of Black Lives Matter, police unions and leaders have not covered themselves in glory in the BLM era, largely supporting precinct level decisions to de-police the dangerous parts (“no-go”- or “slow-go”-zones) of major cities, and refusing to support reforms that do cut crime but discomfort cops. Astonishingly, high homicide rates have little or no impact on whether police commissioners keep their jobs, giving cops few incentives to do better rather than just well enough.<a href="https://is.gd/L0rcEF?ref=skeptic.com" rel="noreferrer"><sup>20</sup></a></p><p>On the positive side, the political system is starting to respond to public anger from the increased crime and disorder of the Black Lives Matter era. In its presidential transition, the Biden administration largely sidelined the BLM portions of its racial reckoning agenda—even as it poured money into counterproductive and arguably racist DEI initiatives.<a href="#Brown, H. (2024). <em>Roadblocked: Joe Biden’s Rocky Transition to the Presidency</em>. University Press of Kansas. Vice President Kamala Harris was also sidelined by the Biden White House, earning only three brief mentions in the 200-page book. " rel="noreferrer"><sup>21</sup></a>&nbsp;More impactful responses came at the level of major city governments, which are those most affected by crime and disorder. Across progressive cities such as Seattle, Portland, and New York and less progressive cities like Philadelphia and Dallas, voters have started distancing themselves from Black Lives Matter policies. For the first time in decades, Seattle elected a Republican prosecutor (supported by most Democratic leaders). Uber-left Portland elected a prosecutor who was a Republican until recently. The Dallas mayor switched parties (from Democratic to Republican) out of frustration with progressive opposition to his (successful) efforts to cut crime by hiring and empowering more cops. New York elected a tough on crime (Democratic) former police captain to replace the prior progressive mayor. Even uber-progressives like Minnesota Governor and 2024 Democratic VP candidate Tim Walz did U-turns on issues such as whether police belong in schools, and what they can do while there.</p><p>Yet cops can do far more, and the Big Apple has shown the way. How that happened suggests that color matters, but the color is not Black so much as green.</p><h2 id="new-york-city%E2%80%99s-turnaround-how-a-white-tourist%E2%80%99s-murder-made-black-lives-truly-matter">New York City’s Turnaround: How a White Tourist’s Murder Made Black Lives Truly Matter</h2><p>Sometimes history is shaped by unexpected (and undesirable) events that have positive impacts. A case in point is Brian Watkins, the 22-year-old White tourist from Provo, Utah, who was brutally murdered in front of his family on Labor Day Weekend in 1990 in NYC, while in town to watch the U.S. Open tennis tournament. His murder had historic impacts on New York, ultimately saving thousands of (mainly) Black lives, but it did not have the same impact nationally, a fact that says volumes about whose lives matter and why.</p><p>In 1990, New York City was among the most dangerous cities in the country. Today, as we show in our article “Which Police Departments Make Black Lives Matter?”<a href="https://is.gd/d2hUuc?ref=skeptic.com" rel="noreferrer"><sup>22</sup></a>&nbsp;despite high poverty, New York has the sixth lowest homicide rate among the 50 largest cities. That might not have happened without the brutal murder of Brian Watkins. As&nbsp;<em>City Limits</em>&nbsp;detailed in a 20-year retrospective<a href="https://is.gd/VRHYBe?ref=skeptic.com" rel="noreferrer"><sup>23</sup></a>&nbsp;on the Watkins killing, in 1990 New York City resembled the dystopian movie&nbsp;<em>Escape from New York</em>, with a record 2,245 homicides, including 75 murders of children under 16 and 35 killings of cab drivers, forced to risk their lives daily for their livelihoods. For their part, police, who found themselves outnumbered and sometimes outgunned, killed 41 civilians, around four times more than today.</p><p>The city that never sleeps was awash in blood, but NYC residents did not bleed equitably. Mainly, in what would turn out to be a common pattern, low-income minorities killed other low-income minorities in underpoliced neighborhoods. To use the first person for a bit, as I (Reilly) note in my 2020 book&nbsp;<em>Taboo</em>,<a href="#Reilly, <em>Taboo</em>." rel="noreferrer"><sup>24</sup></a>&nbsp;and Rafael Mangual points out in his&nbsp;<em>Criminal Injustice</em>&nbsp;(2022),<a href="#Mangual, R. (2022). <em>Criminal (In)Justice: What the Push for Decarceration and Depolicing Gets Wrong and Who it Hurts Most</em>. Center Street, p. 34." rel="noreferrer"><sup>25</sup></a>&nbsp;felony crime such as murder is remarkably concentrated by income and race. In my hometown of Chicago, the 10 relatively small community areas with the highest murder rates contain 53 percent of all recorded homicides in the city and have a total murder rate of 61.7/100,000, versus 18.2/100,000 for the rest of the city—with those districts included. In the even larger New York City, few wealthy businesspeople or tourists were affected by the most serious crime even during its horrendous peak.</p><p>Against that backdrop, after spending the day watching the U.S. Open, the Watkins family left their upscale hotel to enjoy Moroccan food in Greenwich Village. While waiting on a subway platform, they were assaulted by a “wolfpack” scouting for mugging victims so they could steal enough money to pay the $10-per-man cover charge at a nightclub.</p><p>In those bad old days, many young New Yorkers committed an occasional mugging to supplement their incomes, but this attack was unusually violent. In a matter of seconds, Brian Watkins’ brother and sister-in-law were roughed up while his father was knocked to the ground and slashed with a box-cutter, cutting his wallet out of his pocket. Brian’s mother was pulled down by her hair and kicked in the face and chest. While trying to protect her, Brian was fatally stabbed in the chest with a spring-handled butterfly knife. Not realizing the extent of his injury—a severed pulmonary artery—Brian chased the thieves until collapsing by a toll booth, dying shortly thereafter.</p><blockquote class="kg-blockquote-alt">In 1990, New York City was among the most dangerous cities in the country. Today... despite high poverty, New York has the sixth lowest homicide rate among the 50 largest cities.</blockquote><p>In&nbsp;<em>Turnaround: How America’s Top Cop Reversed the Crime Epidemic</em>,<a href="#(Random House), pp. 171–72." rel="noreferrer"><sup>26</sup></a>&nbsp;then-New York City Transit Police Chief and later NYPD Commissioner William Bratton recalled the Watkins killing as “among the worst nightmares” city leaders could imagine: “A tourist in the subway during a high-profile event with which the mayor is closely associated … gets stabbed and killed by a wolfpack. The murder made international headlines.”</p><p>Within hours a team of top cops apprehended the perpetrators, which just shows what police can do when a crime, such as the murder of a wealthy tourist, is made an actual priority. Twenty years later, rotting in a prison cell, Brian’s killer sadly recalled his decisions that night as the worst of his life. Had police been in control of the subways, the teen might have been deterred from making the decision that in essence ended two lives.</p><p>Unlike the great majority of the other 2,244 murder victims in 1990, the dead Brian mattered by name to Big Apple politicians. Bratton wrote that New York Governor Mario Cuomo “understood the impact this killing could have on New York tourism.” With hundreds of millions of dollars at stake, two days after the Watkins murder, Bratton got a call out of the blue from a top aid to the Governor asking whether transit police could make the subways safe if the state kicked in $40 million—big money in 1990. For Bratton, “this was the turnaround I needed.”</p><p>With the cash for more transit police, communications and data analytic tools to put cops where crimes occurred, and better police armaments, subway crime plummeted. Later, NYPD Commissioner Bratton drove homicide down by over a third in just two years with similar tactics, and by replacing hundreds of ineffective administrators with better leaders, as Patrick Wolf and one of us (Maranto) detail in “Cops, Teachers, and the Art of the Impossible: Explaining the Lack of Diffusion of Innovations That Make Impossible Jobs Possible.”<a href="https://is.gd/L0rcEF?ref=skeptic.com" rel="noreferrer"><sup>27</sup></a>&nbsp;In another article coauthored with Domonic Bearfield,<a href="https://is.gd/rAkSdM?ref=skeptic.com" rel="noreferrer"><sup>28</sup></a>&nbsp;we estimated that as of 2020, NYPD’s reforms saved over 20,000 lives, disproportionately of Black Americans.</p><blockquote class="kg-blockquote-alt">NYPD leadership made ineffective leaders get better or get out. This is a tool almost never used by police reformers at the level of city governance.</blockquote><p>So how did NYPD do it? New York got serious about both recruiting and training great, tough cops and about holding them accountable. In the 1990s, NYPD Commissioner William Bratton imposed CompStat, a statistical program reporting crimes by location in real time. In weekly meetings, NYPD leaders praised precinct commanders who cut crime and grilled others. They made ineffective managers get better or get out. Homicides fell by over a third in just two years, followed by steady declines since.</p><p>Let us repeat part of that for emphasis: NYPD leadership made ineffective leaders get better or get out. This is a tool almost never used by police reformers at the level of city governance, who don’t want to be hated by officers, and who are also hamstrung by civil service rules and union contracts that make it difficult to terminate bad police officers, and almost impossible to jettison bad managers. NYPD was the exception.</p><figure class="kg-card kg-image-card"><img src="https://www.skeptic.com/content/images/2025/02/nypd-wall-stencil.webp" class="kg-image" alt="" loading="lazy" width="2000" height="1335" srcset="https://www.skeptic.com/content/images/size/w600/2025/02/nypd-wall-stencil.webp 600w, https://www.skeptic.com/content/images/size/w1000/2025/02/nypd-wall-stencil.webp 1000w, https://www.skeptic.com/content/images/size/w1600/2025/02/nypd-wall-stencil.webp 1600w, https://www.skeptic.com/content/images/2025/02/nypd-wall-stencil.webp 2000w" sizes="(min-width: 720px) 720px"></figure><p>Because of obscure personnel reforms by Benjamin Ward, the first Black NYPD commissioner and someone who wanted to shake up NYPD’s Irish Mafia of officers, where promotion often depended on what some called “the friends and family plan,” NYPD commissioners have unusual power over personnel. The commissioner can bust precinct commanders and other key leaders back in rank almost to the street level. Since retirement is based on pay at an officer’s rank, this essentially forces managers into early retirement, with the commissioner getting to pick their replacements rather than having seniority or other civil service rules determine the outcomes.</p><p>Legendary police leader John Timoney, who was Bratton’s Chief of Department in NYPD before going on to successfully run departments in Philadelphia and Miami, told us that he had the ability to personally fire over&nbsp;<em>300 cops in NYPD compared to just two in Philadelphia</em>—the two being himself and his driver. In the latter city, everyone else was covered by civil service tenure.<a href="#<a href=&quot;https://is.gd/L0rcEF&quot;>https://is.gd/L0rcEF</a>; Timoney, J. (2010). <em>Beat Cop to Top Cop: A Tale of Three Cities</em>. University of Pennsylvania Press." rel="noreferrer"><sup>29</sup></a>&nbsp;Politicians such as Tim Walz were publicly emphasizing their focus on saving Black lives, but showed no enthusiasm for personnel reforms such as these, which could actually get the job done.</p><p>Of course, firing cops can’t work if you don’t know who to fire. Since the mid-1990s, NYPD strengthened its internal affairs unit to get off the streets unprofessional cops in the mold of Minneapolis’ Derek Chauvin, the officer who killed George Floyd and who had 18 prior citizen complaints, before rather than after a disaster. Longtime NYPD Internal Affairs leader Charles Campisi details this process well in&nbsp;<em>Blue on Blue: An Insider’s Story of Good Cops Catching Bad Cops</em>.<a href="#Campisi, C. (2017). <em>Blue on Blue: An Insider’s Story of Good Cops Catching Bad Cops</em>. Scribner." rel="noreferrer"><sup>30</sup></a></p><p>Yet none of this might have happened without the brutal murder of Brian Watkins. In a real sense, the Watkins family suffered so thousands could live. They deserve a monument.</p><h2 id="how-to-make-black-and-all-lives-matter">How to Make Black (and All) Lives Matter</h2><p>Rather than supporting neo-Marxist activism portraying police as fascists enforcing “late-stage capitalist technocratic white supremacy,” or similarly impenetrable academic jargon that seeks to pit citizens against police and fails to solve problems, we see police departments as public organizations staffed by unionized employees, some of whom are public servants, some of whom mainly serve themselves, and most of whom are somewhere in between.<a href="#For the classic discussions of different types of bureaucrats and bureaucracies, see Anthony Downs’ <em>Inside Bureaucracy</em> (Little, Brown, 1967)." rel="noreferrer"><sup>31</sup></a>&nbsp;Just like companies, some police departments are incredibly successful; some are so ineffective that it might make sense to defund them and start over … and some—most by far—are somewhere in between.</p><p>So the real question for those of us who want to make police better rather than run for office or get government grants, is how we can get low-performing police departments to learn from the best, and how we can get the mayors, city councils, governors, and state legislatures overseeing police to enact the sort of civil service reforms, like higher pay coupled with abolishing civil service tenure, that are likely to succeed in getting police to make all lives matter.</p><blockquote class="kg-blockquote-alt">Black Lives Matter de-policing policies seem to have taken thousands of (mainly Black) lives.&nbsp;During the BLM era … the age-adjusted Black homicide rate has almost doubled, rising from 18.6 murders per 100,000 African-American citizens in 2011 to 32 murders per 100,000 in 2021.</blockquote><p>For us, the key to get elected politicians to take police reform seriously is to make police reform a serious election issue, rather than how well one virtue signals for BLM. To do that, first and foremost, failed police departments and the mayors and city council members running them must be shamed into action. Businesses should be encouraged to relocate from dangerous cities to safe ones. That starts with data.</p><p>To make that happen, earlier this year, in a leading public administration journal, along with Patrick Wolf, we published “Which Police Departments Make Black Lives Matter?,” an article that anyone can download for free.<a href="https://is.gd/aDjaY6?ref=skeptic.com" rel="noreferrer"><sup>32</sup></a>&nbsp;Here, we ranked police in the 50 largest U.S. cities (using 2020 statistics, but the overall rankings were stable from 2015–2020) by their effectiveness in keeping homicides low and&nbsp;<em>not</em>&nbsp;taking civilian lives, while adjusting for poverty, which makes policing more difficult. Some departments excel. On our Police Professionalism Index, New York City easily takes first place, just as it did in 2015. The top 18 cities also include Boston, MA; Mesa, AZ; Raleigh, NC; Virginia Beach, VA; five California cities including San Diego and San Jose; and five Texas cities including El Paso and Austin.</p><p>In contrast, by a wide margin, Baltimore ranked dead last (as it did in 2015). Baltimore’s homicide rate (56.12 per 100,000 population) was roughly 15 times higher than New York’s, and Baltimore police kill roughly ten times as many civilians per capita as NYPD. Baltimoreans should be outraged, particularly since, as noted above, top-ranked NYPD used to be in Baltimore’s league. Fifty years ago, NYPD killed about 100 civilians annually, compared to 10 today. In 1990, New York City had 2,245 homicides, mostly people of color, compared to just 462 in 2020. And, as discussed earlier, reforming NYPD saved tens of thousands of lives, mainly Black lives, while at the same time&nbsp;<em>reducing&nbsp;</em>incarceration.</p><p>If democracy means anything, it means the ability to influence government, and the first duty of government is protecting life and property. For too long, this most basic of needs has been denied to people without means, who are disproportionately people of color. If we want to increase trust in government, we must start with the police. Doing that requires real data, not agitprop that paints cops as racist killers. To enable that, the U.S. Department of Justice (DOJ) needs to rank large cities on their policing, in a manner we did, awarding those doing well and calling out those doing badly. The DOJ should also issue reports on which cities enable their police chiefs to terminate problematic officers.</p><p>This methodical approach would offend leftist cultural warriors and rightist police unions alike. On the local levels, to copy NYPD’s success, voters in Baltimore and other poorly policed cities such as Kansas City, Las Vegas, Albuquerque, and Miami, must ask pointed questions about their police, such as:</p><ul><li>Can police chiefs hire and retain the great officers they need? If not, why not?</li><li>Can police chiefs fire subordinates who are not up to their tough jobs?</li><li>Are there enough cops to do the job?</li><li>Do police use CompStat to copy what works in fighting crime?</li><li>Does the internal affairs unit hold brutal cops accountable?</li></ul><p>Building a great police department takes time, but the NYPD has shown how it can be done. It is long past time to stop political virtue signaling and start reforming policing to save all lives.</p> </div> </article> <section class="w-full flex flex-col justify-center items-center mt-[--gap-90]"> <div class="flex flex-col justify-between w-full max-w-[350px]"> <h6 class="text-sm uppercase font-bold text-center tracking-[0.84px] text-skeptic-charcoal dark:text-skeptic-foreground-dark">Share This Article:</h6> <p class="text-sm tracking-[0.56px] mt-[--gap-22-5] text-skeptic-charcoal dark:text-skeptic-foreground-dark">Think a friend would enjoy this? Send it their way!</p> </div> <div class="flex justify-between w-full max-w-[200px] mt-[--gap-22-5]"> <button x-data="copy_to_url" class="relative flex items-center group cursor-pointer transition-all hover:-translate-y-1" @click.prevent="copyURL"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.116 16.5769H7.577C6.449 16.5769 5.48767 16.1795 4.693 15.3849C3.89833 14.5902 3.50067 13.6285 3.5 12.4999C3.49933 11.3712 3.897 10.4095 4.693 9.61487C5.489 8.82021 6.45033 8.42254 7.577 8.42188H11.116V9.42188H7.577C6.73033 9.42188 6.006 9.72321 5.404 10.3259C4.80133 10.9292 4.5 11.6539 4.5 12.4999C4.5 13.3459 4.80133 14.0702 5.404 14.6729C6.00667 15.2755 6.731 15.5769 7.577 15.5769H11.116V16.5769ZM9 12.9999V11.9999H16V12.9999H9ZM13.885 16.5769V15.5769H17.423C18.2697 15.5769 18.994 15.2755 19.596 14.6729C20.1987 14.0702 20.5 13.3459 20.5 12.4999C20.5 11.6539 20.1987 10.9295 19.596 10.3269C18.9933 9.72421 18.269 9.42288 17.423 9.42288H13.885V8.42287H17.423C18.551 8.42287 19.5127 8.82021 20.308 9.61487C21.1033 10.4095 21.5007 11.3712 21.5 12.4999C21.4993 13.6285 21.1017 14.5902 20.307 15.3849C19.5123 16.1795 18.551 16.5772 17.423 16.5779L13.885 16.5769Z" fill=""/> </svg> </button> <button class="relative flex items-center group cursor-pointer transition-all hover:-translate-y-1" data-sharer="twitter" data-title="" data-url="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.751 3.5H20.818L14.118 11.125L22 21.5H15.828L10.995 15.207L5.464 21.5H2.394L9.561 13.345L2 3.5H8.328L12.698 9.252L17.751 3.5ZM16.675 19.672H18.375L7.404 5.232H5.58L16.675 19.672Z" fill=""/> </svg> </button> <button class="relative flex items-center group cursor-pointer transition-all hover:-translate-y-1" data-sharer="facebook" data-hashtag="hashtag" data-url="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"> <g id="ic:baseline-facebook"> <path id="Vector" d="M23.8327 13.0003C23.8327 7.02033 18.9793 2.16699 12.9993 2.16699C7.01935 2.16699 2.16602 7.02033 2.16602 13.0003C2.16602 18.2437 5.89268 22.6095 10.8327 23.617V16.2503H8.66602V13.0003H10.8327V10.292C10.8327 8.20116 12.5335 6.50033 14.6243 6.50033H17.3327V9.75033H15.166C14.5702 9.75033 14.0827 10.2378 14.0827 10.8337V13.0003H17.3327V16.2503H14.0827V23.7795C19.5535 23.2378 23.8327 18.6228 23.8327 13.0003Z" fill=""/> </g> </svg> </button> <button class="relative flex items-center group cursor-pointer transition-all hover:-translate-y-1" data-sharer="linkedin" data-url="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/"> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary transition-all" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.93945 5.501C6.93919 6.03143 6.72822 6.54004 6.35296 6.91492C5.9777 7.28981 5.46889 7.50027 4.93845 7.5C4.40802 7.49974 3.89942 7.28877 3.52453 6.91351C3.14965 6.53825 2.93919 6.02943 2.93945 5.499C2.93972 4.96857 3.15069 4.45996 3.52595 4.08508C3.90121 3.71019 4.41002 3.49974 4.94045 3.5C5.47089 3.50027 5.97949 3.71123 6.35437 4.08649C6.72926 4.46175 6.93972 4.97057 6.93945 5.501ZM6.99945 8.981H2.99945V21.501H6.99945V8.981ZM13.3195 8.981H9.33945V21.501H13.2795V14.931C13.2795 11.271 18.0495 10.931 18.0495 14.931V21.501H21.9995V13.571C21.9995 7.401 14.9395 7.631 13.2795 10.661L13.3195 8.981Z" fill=""/> </svg> </button> <button class="relative flex items-center group cursor-pointer transition-all hover:-translate-y-1" data-sharer="email" data-title="" data-url="https://www.skeptic.com/article/black-lives-matter-crime-analysis-accountability/" data-subject="Hey! Check out this URL" data-to="some@email.com"> <svg class="transition-all" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path class="group-hover:fill-skeptic-primary transition-all fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" d="M3 5.22656V4.47656C2.80109 4.47656 2.61032 4.55558 2.46967 4.69623C2.32902 4.83688 2.25 5.02765 2.25 5.22656H3ZM21 5.22656H21.75C21.75 5.02765 21.671 4.83688 21.5303 4.69623C21.3897 4.55558 21.1989 4.47656 21 4.47656V5.22656ZM3 5.97656H21V4.47656H3V5.97656ZM20.25 5.22656V17.2266H21.75V5.22656H20.25ZM19 18.4766H5V19.9766H19V18.4766ZM3.75 17.2266V5.22656H2.25V17.2266H3.75ZM5 18.4766C4.31 18.4766 3.75 17.9166 3.75 17.2266H2.25C2.25 17.9559 2.53973 18.6554 3.05546 19.1711C3.57118 19.6868 4.27065 19.9766 5 19.9766V18.4766ZM20.25 17.2266C20.25 17.9166 19.69 18.4766 19 18.4766V19.9766C19.7293 19.9766 20.4288 19.6868 20.9445 19.1711C21.4603 18.6554 21.75 17.9559 21.75 17.2266H20.25Z" fill=""/> <path class="group-hover:stroke-skeptic-primary transition-all stroke-skeptic-charcoal dark:stroke-skeptic-foreground-dark " d="M3 5.22656L12 14.2266L21 5.22656" stroke="" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> </div> </section> <script> function copy_to_url(){ return { init(){ console.log('[+] copy to url init'); }, copyURL(){ console.log('[+] Copy url run') navigator.clipboard.writeText(window.location.href) .then(() => this.$dispatch('openNoiseAlert', {type: 'success', title: 'Link Copied',text: 'The link has been copied to the clipboard.' , duration: 5000})) .catch(() => this.$dispatch('openNoiseAlert', {type: 'danger', title: 'Error',text: 'Something went wrong.' , duration: 5000})) } } } </script> <footer class="gh-footer mt-[--gap-135] pb-[--gap-135]"> <div class="flex justify-center gap-y-10 pb-5 flex-wrap"> <aside class="author-bio max-w-[418px] min-w-[350px] px-4"> <section class="flex flex-col justify-center items-center"> <figure class="flex flex-col justify-center items-center"> <img class="size-[8.875rem] rounded-full outline outline-1 outline-offset-4 outline-black dark:outline-skeptic-foreground-dark overflow-hidden border border-black border-opacity-5" src="/content/images/size/w1200/2025/02/maranto-1.png" alt="Author Avatar"> <figcaption class="text-[1.5rem] font-bold leading-tight tracking-[-0.02em] capitalize py-6"> Robert Maranto </figcaption> </figure> <p class="text-center text-base leading-relaxed text-skeptic-charcoal dark:text-skeptic-foreground-dark"> Robert Maranto is the 21st Century Chair in Leadership at the University of Arkansas, where he studies bureaucratic reform and edits the Journal of School Choice. He served on the Fayetteville School Board (2015–20) and is on the SOIBS executive board. He has co-authored about 100 refereed publications and 17 books, including President Obama and Education Reform, Educating Believers, and The Free Inquiry Papers—some so boring even his mother refused to read them. </p> </section> </aside> <aside class="author-bio max-w-[418px] min-w-[350px] px-4"> <section class="flex flex-col justify-center items-center"> <figure class="flex flex-col justify-center items-center"> <img class="size-[8.875rem] rounded-full outline outline-1 outline-offset-4 outline-black dark:outline-skeptic-foreground-dark overflow-hidden border border-black border-opacity-5" src="/content/images/size/w1200/2025/02/reilly.png" alt="Author Avatar"> <figcaption class="text-[1.5rem] font-bold leading-tight tracking-[-0.02em] capitalize py-6"> Wilfred Reilly </figcaption> </figure> <p class="text-center text-base leading-relaxed text-skeptic-charcoal dark:text-skeptic-foreground-dark"> Wilfred Reilly, Associate Professor of Political Science at Kentucky State University, researches international relations, American race relations, and tests “sacred cow” theories with quantitative methods. His books include “Taboo&quot; and &quot;Hate Crime Hoax.&quot; He has published in academic and media outlets like PNAS, Academic Questions, National Review, Newsweek, and Quillette. </p> </section> </aside> </div> <section class="flex justify-center pt-[--gap-135]"> <div class="container_ flex justify-center"> <div class="w-full max-w-[832px] flex flex-col justify-center items-center lg:px-4"> <div class="flex justify-between w-full items-end pb-[--gap-45]"> <h2 class="text_atomic_48 text-center sm:text-left w-full text-skeptic-charcoal dark:text-skeptic-foreground-dark">Member Discussion</h2> <script data-ghost-comment-count="67af807c6955920001ac1890" data-ghost-comment-count-empty="0 COMMENTS" data-ghost-comment-count-singular="COMMENT" data-ghost-comment-count-plural="COMMENTS" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="skp_comment_count" data-ghost-comment-count-autowrap="true" > </script> </div> <div class="w-full max-w-[627px] relative skp_comments_wrapper"> <div class="w-full text-black dark:text-white"> <script defer src="https://cdn.jsdelivr.net/ghost/comments-ui@~1.1/umd/comments-ui.min.js" data-locale="en" data-ghost-comments="https://www.skeptic.com/" data-api="https://skeptic.ghost.io/ghost/api/content/" data-admin="https://skeptic.ghost.io/ghost/" data-key="d42c49034a99169c3466d89edf" data-title="" data-count="false" data-post-id="67af807c6955920001ac1890" data-color-scheme="auto" data-avatar-saturation="80" data-accent-color="#E72B01" data-comments-enabled="paid" data-publication="Skeptic" crossorigin="anonymous"></script> </div> <aside class="absolute top-0 border-0 left-0 w-full py-6 bg-skeptic-background dark:bg-skeptic-background-dark z-[50] flex justify-center items-center" style="transform: translateZ(0);"> <div x-data=""> <h3 class="text_28 font-bold text-center text-skeptic-charcoal dark:text-skeptic-foreground-dark">Join the discussion</h3> <p class="text-center text_18 mt-3 text-skeptic-charcoal dark:text-skeptic-foreground-dark">Become a paid member of Skeptic<br> to start commenting</p> <div class="mt-4 flex justify-center"> <a class="skeptic_btn bg-skeptic-primary py-[0.95rem]" href="javascript:void(0)" onclick="window.dispatchEvent( new CustomEvent('openModalPricingCards', { detail: {}} ));"> <span class="!text-skeptic-foreground-dark">Sign Up Now</span> </a> </div> <div class="flex justify-center mt-3.5"> <small class="text-xs text-center uppercase text-[#9d9d9d]">ALREADY A MEMBER? <a @click="$dispatch('skpopenloginform')" class="text-skeptic-primary" href="javascript:void(0)">LOG IN</a></small> </div> </div> </aside> </div> </div> </div> </section> </footer> <section id="similar_articles" class=""> <div class="container_ flex justify-center"> <div x-data="similar_paging" class="w-full max-w-[1054px]"> <div class="pb-[--gap-22-5]" x-intersect.once="loadArticles"> <h2 class="text_atomic_48 leading-[1.3] text-skeptic-charcoal dark:text-skeptic-foreground-dark" x-show="title">Similar Articles</h2> </div> <div id="article_feed" class="flex flex-col space-y-[--gap-45]"> <aside id="similar_loading_skeleton" class="flex flex-col space-y-[--gap-45]"> <div class="flex flex-col sm:flex-row items-center sm:space-x-[calc(var(--gap-22-5)*2)] w-full max-w-[1054px]"> <figure class="block relative aspect-[89/50] w-full h-full sm:max-h-[12.5rem] sm:max-w-[356px]"> <div class="flex h-full w-full items-center justify-center rounded-md bg-skeptic-gray motion-safe:animate-pulse dark:bg-skeptic-gray-dark" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-12 fill-neutral-600/10 dark:fill-neutral-300/10"> <path fill-rule="evenodd" d="M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" clip-rule="evenodd" /> </svg> </div> </figure> <div class="sm:max-w-[460px] mt-[--gap-22-5] sm:mt-0 w-full"> <div class="flex w-full flex-col gap-5"> <div class="h-5 w-full animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> <div class="h-3.5 w-1/2 animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> </div> </div> </div> <div class="flex flex-col sm:flex-row items-center sm:space-x-[calc(var(--gap-22-5)*2)] w-full max-w-[1054px]"> <figure class="block relative aspect-[89/50] w-full h-full sm:max-h-[12.5rem] sm:max-w-[356px]"> <div class="flex h-full w-full items-center justify-center rounded-md bg-skeptic-gray motion-safe:animate-pulse dark:bg-skeptic-gray-dark" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-12 fill-neutral-600/10 dark:fill-neutral-300/10"> <path fill-rule="evenodd" d="M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" clip-rule="evenodd" /> </svg> </div> </figure> <div class="sm:max-w-[460px] mt-[--gap-22-5] sm:mt-0 w-full"> <div class="flex w-full flex-col gap-5"> <div class="h-5 w-full animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> <div class="h-3.5 w-1/2 animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> </div> </div> </div> <div class="flex flex-col sm:flex-row items-center sm:space-x-[calc(var(--gap-22-5)*2)] w-full max-w-[1054px]"> <figure class="block relative aspect-[89/50] w-full h-full sm:max-h-[12.5rem] sm:max-w-[356px]"> <div class="flex h-full w-full items-center justify-center rounded-md bg-skeptic-gray motion-safe:animate-pulse dark:bg-skeptic-gray-dark" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-12 fill-neutral-600/10 dark:fill-neutral-300/10"> <path fill-rule="evenodd" d="M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" clip-rule="evenodd" /> </svg> </div> </figure> <div class="sm:max-w-[460px] mt-[--gap-22-5] sm:mt-0 w-full"> <div class="flex w-full flex-col gap-5"> <div class="h-5 w-full animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> <div class="h-3.5 w-1/2 animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> </div> </div> </div> <div class="flex flex-col sm:flex-row items-center sm:space-x-[calc(var(--gap-22-5)*2)] w-full max-w-[1054px]"> <figure class="block relative aspect-[89/50] w-full h-full sm:max-h-[12.5rem] sm:max-w-[356px]"> <div class="flex h-full w-full items-center justify-center rounded-md bg-skeptic-gray motion-safe:animate-pulse dark:bg-skeptic-gray-dark" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-12 fill-neutral-600/10 dark:fill-neutral-300/10"> <path fill-rule="evenodd" d="M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" clip-rule="evenodd" /> </svg> </div> </figure> <div class="sm:max-w-[460px] mt-[--gap-22-5] sm:mt-0 w-full"> <div class="flex w-full flex-col gap-5"> <div class="h-5 w-full animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> <div class="h-3.5 w-1/2 animate-pulse rounded-md bg-skeptic-gray dark:bg-skeptic-gray-dark" aria-hidden="true"></div> </div> </div> </div> </aside> </div> <div x-show="show_load_more" id="load_more_btn" class="mt-2.5 group" @click.prevent="loadMore"> <a id="wide_btn" class="skeptic_wide_btn group-hover:bg-skeptic-primary group-hover:border-skeptic-primary"> <span class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-background">Load More</span> <svg class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-background inline-block ml-1" width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_941_3898" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="17" height="17"> <rect x="0.5" y="0.5" width="16" height="16" fill=""/> </mask> <g mask="url(#mask0_941_3898)"> <path d="M1.92448 5.75853L3.10781 4.57519L8.59115 10.0585L14.0745 4.5752L15.2578 5.75853L8.59115 12.4252L1.92448 5.75853Z" fill=""/> </g> </svg> </a> </div> </div> </div> </section> <section id="mission_statement" class="mt-[--gap-150]"> <div class="container_ flex justify-center"> <div class="max-w-[1046px]"> <h3 class="text-skeptic-charcoal dark:text-skeptic-foreground-dark text_atomic_72 leading-[1.3] text-left">OUR MISSION</h3> <p class="text-skeptic-charcoal dark:text-skeptic-foreground-dark text_atomic_36 pt-[--gap-22-5] leading-[1.37] text-left"> To explore complex issues with careful analysis and help you make sense of the world. Nonpartisan. Reality-based. </p> <a href="/join-the-movement" alt="Internal link to page about skeptic magazine" class="flex items-center justify-end mt-[--gap-22-5] uppercase cursor-pointer group"> <span class="text-skeptic-charcoal dark:text-skeptic-foreground-dark inline-block text-xs">About Skeptic Magazine</span> <svg class="inline-block ml-1.5 mb-0.5 transition-transform fill-skeptic-charcoal dark:fill-skeptic-foreground-dark group-hover:fill-skeptic-primary group-hover:translate-x-1" width="14" height="14" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_1232_1013" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"> <rect width="16" height="16" fill=""/> </mask> <g mask="url(#mask0_1232_1013)"> <path d="M5.34935 14.6663L4.16602 13.483L9.64935 7.99967L4.16602 2.51634L5.34935 1.33301L12.016 7.99967L5.34935 14.6663Z" fill=""/> </g> </svg> </a> </div> </div> </section> <script> const skp_article_card_html = `<article class="card_category_ flex flex-col sm:flex-row items-center sm:space-x-[--gap-45] w-full max-w-[1054px] group"> <figure class="block relative aspect-[89/50] sm:max-h-[12.5rem] w-full sm:max-w-[330px] md:min-w-[340px] md:max-w-[356px]"> <a href="/article/black-lives-matter-crime-analysis-accountability/" alt=""> <img class="w-full h-full object-cover group-hover:opacity-85 transition-all" src=""> </a> </figure> <div class="w-full mt-[--gap-22-5] sm:mt-0 sm:max-w-[460px]"> <a href="/article/black-lives-matter-crime-analysis-accountability/" alt="" class=""> <h3 class="text-skeptic-charcoal dark:text-skeptic-foreground-dark text_28 font-bold leading-tight line_clamp_4 group-hover:text-skeptic-primary transition-all"></h3> <time class="text-skeptic-charcoal dark:text-skeptic-foreground-dark flex items-center space-x-5 text-xs mt-2.5" datetime="2025-03-29"> <div class="tracking-[0.72px] flex"><div class="mr-2 mb-px"><svg xmlns="http://www.w3.org/2000/svg" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" width="12" height="13" viewBox="0 0 11 12" fill="none"> <path d="M1.4375 4.0625H3.0625V2.84375C3.0625 2.19728 3.31931 1.5773 3.77643 1.12018C4.23355 0.663057 4.85353 0.40625 5.5 0.40625C6.14647 0.40625 6.76645 0.663057 7.22357 1.12018C7.68069 1.5773 7.9375 2.19728 7.9375 2.84375V4.0625H9.5625C9.77799 4.0625 9.98465 4.1481 10.137 4.30048C10.2894 4.45285 10.375 4.65951 10.375 4.875V10.5625C10.375 10.778 10.2894 10.9847 10.137 11.137C9.98465 11.2894 9.77799 11.375 9.5625 11.375H1.4375C1.22201 11.375 1.01535 11.2894 0.862976 11.137C0.710603 10.9847 0.625 10.778 0.625 10.5625V4.875C0.625 4.65951 0.710603 4.45285 0.862976 4.30048C1.01535 4.1481 1.22201 4.0625 1.4375 4.0625ZM7.125 2.84375C7.125 2.41277 6.9538 1.99945 6.64905 1.6947C6.3443 1.38995 5.93098 1.21875 5.5 1.21875C5.06902 1.21875 4.6557 1.38995 4.35095 1.6947C4.04621 1.99945 3.875 2.41277 3.875 2.84375V4.0625H7.125V2.84375ZM1.4375 10.5625H9.5625V4.875H1.4375V10.5625ZM4.89062 7.71875C4.89062 7.83927 4.92636 7.95709 4.99332 8.0573C5.06028 8.15751 5.15545 8.23562 5.2668 8.28174C5.37815 8.32786 5.50068 8.33993 5.61888 8.31642C5.73709 8.2929 5.84567 8.23487 5.93089 8.14964C6.01612 8.06442 6.07415 7.95584 6.09767 7.83763C6.12118 7.71943 6.10911 7.5969 6.06299 7.48555C6.01687 7.3742 5.93876 7.27903 5.83855 7.21207C5.73834 7.14511 5.62052 7.10938 5.5 7.10938C5.33838 7.10938 5.18339 7.17358 5.06911 7.28786C4.95483 7.40214 4.89062 7.55713 4.89062 7.71875Z" fill=""></path> </svg></div> <span>MEMBERS ONLY</span></div> <span>Mar 29, 2025</span> </time> </a> </div> </article>`; //Load article_card html const skp_article_svg_thumb = `<svg class="fade-in w-full h-full object-cover group-hover:opacity-85 transition-all" width="356" height="200" viewBox="0 0 356 200" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="356" height="200" class="w-full h-full fill-skeptic-gray dark:fill-skeptic-gray-dark" fill=""/> <path class="fill-skeptic-background dark:fill-skeptic-background-dark" d="M143 145C140.25 145 137.897 144.022 135.94 142.065C133.983 140.108 133.003 137.753 133 135V65C133 62.25 133.98 59.8967 135.94 57.94C137.9 55.9833 140.253 55.0033 143 55H213C215.75 55 218.105 55.98 220.065 57.94C222.025 59.9 223.003 62.2533 223 65V135C223 137.75 222.022 140.105 220.065 142.065C218.108 144.025 215.753 145.003 213 145H143ZM143 135H213V65H143V135ZM148 125H208L189.25 100L174.25 120L163 105L148 125Z" fill=""/> </svg>`; //Load article_card html document.addEventListener('alpine:init', () => { //console.log('[+] Alpine init...'); Alpine.data('similar_paging', () => ({ similar_articles_body: document.getElementById('similar_articles'), post_feed : document.getElementById('article_feed'), skeleton : document.getElementById('similar_loading_skeleton'), load_more_button: document.getElementById('wide_btn'), title:true, post_tags : [], article_id: document.getElementById('skp_article_wrapper').getAttribute('data-post-id'), show_load_more: false, page: 1, page_url:`${window.location.protocol}//${window.location.hostname}:${window.location.port}${window.location.pathname}`, CONTENT_API_KEY: null, CONTENT_API_URL: null, GHOST_BASE_URL : null, init(){ const scriptTag = document.querySelector('script[data-key][data-api]'); this.CONTENT_API_KEY = scriptTag.getAttribute('data-key'); this.CONTENT_API_URL = scriptTag.getAttribute('data-api'); this.GHOST_BASE_URL = scriptTag.getAttribute('data-ghost'); const get_post_tags = Array.from(document.getElementById('post_tags').querySelectorAll('li[data-tag]')) ?? []; this.post_tags = get_post_tags.filter(t => t.getAttribute('data-tag') !== 'article').map(t => t.getAttribute('data-tag')); }, buildArticleCard(title_, publish_at_, img_url, article_url){ const date = new Date(publish_at_); const formattedDate = date.toLocaleDateString('en-US', { month: 'short', day: '2-digit', year: 'numeric' }); let article_card = skp_article_card_html; const parser = new DOMParser(); const doc = parser.parseFromString(article_card, 'text/html'); let title = doc.querySelector('h3'); let publish_at = doc.querySelector('time'); let feature_img = doc.querySelector('img'); let ahref = doc.querySelectorAll('a'); //console.log('[+] img url -> ', img_url); //console.log('[+] title -> ', title); //console.log('[+] publish at -> ', publish_at); //console.log('[+] feature img -> ', feature_img); title.innerText = title_; publish_at.innerText = formattedDate; if(img_url != null){ feature_img.src = img_url; }else{ // Replace the <img> with the SVG thumbnail const svgParser = new DOMParser(); const svgDoc = svgParser.parseFromString(skp_article_svg_thumb, 'text/html'); const svgElement = svgDoc.body.firstChild; // Ensure the feature_img parent exists and replace the img with SVG feature_img.replaceWith(svgElement); } for(let a of ahref){ a.href = article_url; } return doc.body.innerHTML; }, async loadArticles(){ //console.log('[+] Load articles run...'); try{ let tags_filter = this.post_tags.length > 0 ? `%2Btag:[${this.post_tags.join(',')}]` : ''; const res = await fetch(`${this.CONTENT_API_URL}posts/?key=${this.CONTENT_API_KEY}&fields=title,url,published_at,feature_image&filter=tag:article${tags_filter}%2Bid:-${this.article_id}&include=tags&order=published_at+desc`) if(res.status != 200) throw new Error(`Err during fetching similar articles, status code: ${res.status}`); const result = await res.json(); if(result.posts.length > 0){ this.skeleton.style.display = 'none'; for(let p of result.posts){ this.post_feed.insertAdjacentHTML('beforeend', this.buildArticleCard(p.title, p.published_at, p.feature_image, p.url)); } }else{ //If there are no posts, hide whole articles section this.similar_articles_body.style.display = 'none'; } }catch(err){ console.log('[X] Err -> ', err.message); this.$dispatch('openNoiseAlert', {type: 'danger', title: 'Error', text: `Could not load related articles ${err.message}` , duration: 5000}); } } })) }) </script> <script type="module"> import PhotoSwipe from "https://www.skeptic.com/assets/js/photoswipe.min.js?v=41a9f13c76"; let gallery_container = document.querySelectorAll('.kg-gallery-container img') || []; let image_card = document.querySelectorAll('.kg-image-card img') || []; let gal_items = []; for(let [index,i] of gallery_container.entries()){ gal_items.push({srcset:i.srcset, src:i.src, w:i.getAttribute('width'), h:i.getAttribute('height'), msrc:i.src, element: i}); i.style.cursor = 'zoom-in'; i.addEventListener('click',function(ev){ console.log('[+] click') let idx = index let options = { dataSource: gal_items, index: idx, } const pswp = new PhotoSwipe(options); pswp.init(); }) } for(let item of image_card){ item.style.cursor = 'zoom-in'; item.addEventListener('click', (ev)=>{ let items = [] items.push({srcset:item.srcset, src:item.src, w:item.getAttribute('width'), h:item.getAttribute('height'), msrc:item.src, element: item}) let options = { dataSource: items, index: 0, } let image = new PhotoSwipe(options); image.init(); }) } </script> <script> /** * ################################################################## * This code should be moved into index.js for compilation!!!!!!!! * ################################################################## * */ class CreateEndNotes{ constructor(){ this.sup_array = []; this.found_superscripts = []; this.content = document.getElementById('skp_content'); this.footnoteContainer = null; //added for scroll this.init(); } init(){ this.found_superscripts = Array.from(this.content.querySelectorAll('sup')); if(this.found_superscripts.length > 0){ //console.log('[+] We have superscript!'); for(let [index, item] of this.found_superscripts.entries()){ let sup_text = item.textContent.trim(); let sup_href = item.parentNode.href ?? ''; item.parentNode.href = '#endnote'+String(index); if( sup_text.length > 0 && sup_text != ', ' && sup_text != ',' ){ this.sup_array.push({text:sup_text, href:sup_href, id: 'endnote'+String(index)}); // Attach click event to each superscript, added for scroll item.parentNode.addEventListener('click', (event) => { event.preventDefault(); this.openEndnotesAndScroll('endnote' + String(index)); }); } } let get_html = this.build_endnote_html(); if(get_html != false){ this.content.appendChild(get_html); this.footnoteContainer = get_html;//added for scroll } } } openEndnotesAndScroll(targetId) { if (this.footnoteContainer) { // Ensure footnotes are open this.footnoteContainer.classList.add('skp_footnote_open'); // Scroll to the anchor let targetElement = document.getElementById(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } } build_endnote_html(){ if(this.sup_array.length > 0){ let div_el = document.createElement('div'); div_el.classList.add('skp_footnote'); div_el.onclick = function(){ this.classList.toggle('skp_footnote_open'); } let ul_el = document.createElement('ul'); // Prevent ul clicks from triggering the toggle, added for scroll ul_el.addEventListener('click', (event) => { event.stopPropagation(); }); for(let item of this.sup_array){ let li_el = document.createElement('li'); let url_string = item.href; if(url_string.includes('#')){ url_string = decodeURIComponent(url_string.split('#')[1]); li_el.innerHTML = `<small class="text-sm text-skeptic-charcoal dark:text-skeptic-foreground-dark hover:text-skeptic-primary" id="${item.id}"><strong>${item.text}</strong> <a class="ml-1.5" href="javascript:void()">${url_string}</small>`; }else{ url_string = url_string.split('?')[0]; li_el.innerHTML = `<small class="text-sm text-skeptic-charcoal dark:text-skeptic-foreground-dark hover:text-skeptic-primary" id="${item.id}"><strong>${item.text}</strong> <a class="ml-1.5" href="${url_string}">${url_string}</small>`; } ul_el.appendChild(li_el); } let foot_note_header = `<div class="flex justify-between items-center"> <h4 class="uppercase font-bold font-sans text-skeptic-charcoal dark:text-skeptic-foreground-dark">REFERENCES</h4> <div class="size-4"> <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"></path> </svg> </div> </div>` div_el.insertAdjacentHTML('beforeend', foot_note_header); div_el.appendChild(ul_el); return div_el; } return false; } } (function(){ console.log('[+] Reveal article with js enabled...'); const skp_content = document.querySelector('.skp_content'); const skeptic_load_content = document.querySelector('.skeptic_load_content'); skp_content.classList.remove('skp_content'); setTimeout(()=>{skeptic_load_content.classList.add('skp_content_active');}, 50); class LockPage{ constructor(){ this.user_level = skp_member_level ?? null; this.db = null; this.article_id = ''; this.lock_expiration = 30 * 24 * 60 * 60; // 30 days //this.lock_expiration = 2000; // 30 days if(this.user_level != null){ this.init(); } } init(){ if(this.user_level == 2){ console.log('[+] Paying user detected, nothing to lock!'); new CreateEndNotes(); // Run Generation of endnotes in case of no content lock; return; } if(this.user_level == 1){ console.log('[+] Free member detected, allow only 5 articles.'); let isLockedByGhost = this.checkIfArticleIsLockedByGhost(); //if not locked by ghost we will proceed. if(!isLockedByGhost){ this.handleUserLevel(); } } if(this.user_level == 0){ console.log('[+] Anonymous user detected, lock after 2 articles.'); let isLockedByGhost = this.checkIfArticleIsLockedByGhost(); //if not locked by ghost we will proceed. if(!isLockedByGhost){ this.handleUserLevel(); } } } checkIfArticleIsLockedByGhost(){ const skp_article_wrapper = document.getElementById('skp_article_wrapper') ?? null; if(skp_article_wrapper == null) throw new Error('[X] Cannot find article wrapper id'); const visibility_status = skp_article_wrapper.getAttribute('data-visibility'); this.article_id = skp_article_wrapper.getAttribute('data-post-id'); return visibility_status == 'public' ? false : true; } async handleUserLevel(){ this.db = new Dexie("articles_db"); await this.db.version(1).stores({articles: `user_level, articles_id, date`,}); try{ let user_reading_allowance = await this.db.articles.get(this.user_level); //if undefined, define record for the first time. if(user_reading_allowance === undefined){ const id = await this.db.articles.put({ user_level: this.user_level, article_id: [this.article_id], date: Math.floor(Date.now() / 1000) }); console.log(`user_reading_allowance added with ID ${id}`); }else{ const date_now = Math.floor(Date.now() / 1000); const time_delta = date_now - user_reading_allowance.date; //console.log(`Time delta values ${date_now} - ${user_reading_allowance.date}`); //console.log(`[i] Time delta is ${time_delta}`); if(time_delta > this.lock_expiration){ console.log('[+] Lock expired, reset state...'); const id = await this.db.articles.put({ user_level: this.user_level, article_id: [this.article_id], date: Math.floor(Date.now() / 1000) }); return; } let get_article_ids = user_reading_allowance.article_id; if(!get_article_ids.includes(this.article_id)){ get_article_ids.push(this.article_id); } // Lock for Anon if(this.user_level === 0 && get_article_ids.length > 2){ this.contentLock(); return; } // Lock for Member if(this.user_level === 1 && get_article_ids.length > 5){ this.contentLock(); return; } const id = await this.db.articles.update(this.user_level, { article_id: get_article_ids, }); new CreateEndNotes(); // Run Generation of endnotes in case of no content lock; } }catch(err){ console.log('[X] err ', err); alert('Init DB error in handle user level 0...'); } } countWords(str) { // Split the string by spaces or whitespace and filter out empty strings const words = str.trim().split(/\s+/).filter(word => word.length > 0); return words.length; } contentLock(){ const NUM_OF_WORDS_FOR_PUBLIC_PREVIEW = 100; // Modify this if we need shorter or longer previews before paywall const skp_content = document.getElementById('skp_content'); const article_content = skp_content.querySelectorAll('*'); let copy_of_text_nodes = []; for(let item of article_content){ if(item.tagName === 'H2' || item.tagName === 'H3' || item.tagName === 'H4' || item.tagName === 'H5' || item.tagName === 'H6' || item.tagName === 'P'){ copy_of_text_nodes.push(item.cloneNode(true)); } item.remove(); } let count_of_words = 0; let stop_index = 0; for(let [index,item] of copy_of_text_nodes.entries()){ count_of_words = count_of_words + this.countWords(item.textContent); if(count_of_words <= NUM_OF_WORDS_FOR_PUBLIC_PREVIEW){ stop_index = index; } } //build Preview content until stop index for(let [index,item] of copy_of_text_nodes.entries()){ if(index <= stop_index){ skp_content.appendChild(item); }else{ break; } } const content_lock_html = `<aside x-data class="skp_paywall"> <div class="skp_paywall_wrapper"> <h2 class="text-skeptic-charcoal dark:text-skeptic-foreground-dark">You’ve reached your monthly article limit. Become a free member to read more each month, or join as a paid member for unlimited access.</h2> <p class="text-center text_post_body !leading-[1.5] mt-5 max-w-[444px]"> Sign up to get access to this article, and more. </p> <form class="" onclick="window.dispatchEvent( new CustomEvent('openModalPricingCards', { detail: {}} ));"> <div class="w-full relative"> <input class="cta_form_small" type="email" placeholder="Email Address"> <a href="javascript:" class="border-l-2 border-black dark:border-skeptic-foreground-dark px-8 absolute top-1/2 -translate-y-1/2 right-px uppercase font-bold text-xs py-1.5 tracking-wider"> <span class="align-sub text-skeptic-charcoal dark:text-skeptic-foreground-dark">Subscribe</span> </a> </div> </form> ${window.skp_member_level === 0 ? `<p class="skp_already_member text-skeptic-charcoal dark:text-skeptic-foreground-dark"><small>Already a member of Skeptic? <a @click="$dispatch('skpopenloginform')" class="text-skeptic-primary gh-portal-close">Log In</a></small></p>` : ``} </div> </aside>`; skp_content.insertAdjacentHTML('beforeend', content_lock_html); } } new LockPage(); })(); </script> </main> <footer class="pt-[--gap-135]"> <div class="container_ pb-[--gap_22-5] flex justify-center"> <div class="flex flex-col md1:flex-row justify-between w-full max-w-[1046px]"> <ul class="skp_footer_nav text-skeptic-charcoal dark:text-skeptic-foreground-dark"> <li class="nav-join-the-movement group"> <a href="https://www.skeptic.com/join-the-movement/" class="group-hover:text-skeptic-primary">Join the Movement</a> </li> <li class="nav-donate group"> <a href="https://www.skeptic.com/donate/" class="group-hover:text-skeptic-primary">Donate</a> </li> <li class="nav-advertising group"> <a href="https://www.skeptic.com/advertising/" class="group-hover:text-skeptic-primary">Advertising</a> </li> <li class="nav-contact group"> <a href="https://www.skeptic.com/contact/" class="group-hover:text-skeptic-primary">Contact</a> </li> <li class="nav-pitch-an-article group"> <a href="https://www.skeptic.com/pitch-an-article/" class="group-hover:text-skeptic-primary">Pitch an Article</a> </li> <li class="nav-team group"> <a href="https://www.skeptic.com/team/" class="group-hover:text-skeptic-primary">Team</a> </li> </ul> <div class="grid grid-cols-3 w-full md1:ml-5 lg:ml-14 gap-x-5 self-start mt-[--gap-45] md1:mt-0"> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_podcast group"> <a href="/tag/podcast/" alt="tag Podcast link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> Podcast </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_magazine group"> <a href="/tag/magazine/" alt="tag Magazine link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> Magazine </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_article group"> <a href="/tag/article/" alt="tag Article link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> Article </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_crime group"> <a href="/tag/crime/" alt="tag crime link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> crime </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_event group"> <a href="/tag/event/" alt="tag Event link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> Event </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_evolution group"> <a href="/tag/evolution/" alt="tag evolution link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> evolution </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_healthcare group"> <a href="/tag/healthcare/" alt="tag healthcare link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> healthcare </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_animals group"> <a href="/tag/animals/" alt="tag animals link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> animals </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_critical-thinking group"> <a href="/tag/critical-thinking/" alt="tag critical thinking link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> critical thinking </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_academia group"> <a href="/tag/academia/" alt="tag academia link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> academia </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_social-justice group"> <a href="/tag/social-justice/" alt="tag social justice link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> social justice </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_archaeology group"> <a href="/tag/archaeology/" alt="tag archaeology link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> archaeology </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_ethics group"> <a href="/tag/ethics/" alt="tag ethics link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> ethics </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_9-11 group"> <a href="/tag/9-11/" alt="tag 9/11 link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> 9/11 </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_terrorism group"> <a href="/tag/terrorism/" alt="tag terrorism link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> terrorism </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_social-mobility group"> <a href="/tag/social-mobility/" alt="tag social mobility link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> social mobility </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_economic-privilege group"> <a href="/tag/economic-privilege/" alt="tag economic privilege link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> economic privilege </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_class-inequality group"> <a href="/tag/class-inequality/" alt="tag class inequality link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> class inequality </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_cooperation group"> <a href="/tag/cooperation/" alt="tag cooperation link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> cooperation </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_darwin group"> <a href="/tag/darwin/" alt="tag darwin link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> darwin </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_jfk-assassination group"> <a href="/tag/jfk-assassination/" alt="tag jfk assassination link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> jfk assassination </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_human-rights group"> <a href="/tag/human-rights/" alt="tag human rights link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> human rights </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_vigilante-justice group"> <a href="/tag/vigilante-justice/" alt="tag vigilante justice link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> vigilante justice </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_superstition group"> <a href="/tag/superstition/" alt="tag superstition link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> superstition </a> </div> <div class="text_18 leading-[1.37] pt-1.5 pb-[clamp(1rem,0.3738rem+2.2263vw,2.5rem)] capitalize skp_tag_footer_skeptic-in-the-news group"> <a href="/tag/skeptic-in-the-news/" alt="tag skeptic in the news link" class="text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary"> skeptic in the news </a> </div> </div> </div> </div> <div class="container_ flex justify-center"> <div class="py-11 w-full max-w-[1150px]"> <hr class="border-t border-black dark:border-skeptic-foreground-dark"> </div> </div> <div class="container_ pb-11 flex flex-col md:flex-row justify-center"> <small class="block text-xs leading-[1.37] max-w-[1046px] text-skeptic-charcoal dark:text-skeptic-foreground-dark"> © 1992–2025 Skeptic magazine. All rights reserved. Unauthorized use and/or duplication of this material without express and written permission from this site's author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to Skeptic magazine with appropriate and specific direction to the original content. </small> <div class="block text-xs text-skeptic-charcoal dark:text-skeptic-foreground-dark mt-4 md:mt-0 md:ml-5"><a href="/privacy" class="transition-colors hover:text-skeptic-primary whitespace-nowrap">PRIVACY POLICY</a></div> </div> </footer> <div x-data="free_subscribe_modal" class="skp_modal_wrapper" role="dialog" aria-modal="true" @alpinefreemembersubsmodal.window="modal_show = true" x-cloak x-show="modal_show" > <div class="skp_modal_window" @click.away="modal_show=false" x-show="modal_show" x-transition:enter="transition duration-200 delay-75" x-transition:enter-start="opacity-0 translate-y-10 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition duration-200 scale-100" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-10 scale-95" > <div @click.prevent="modal_show=false" role="button" class='size-10 bg-skeptic-primary transition-all duration-200 hover:bg-[#ff5f5f] hover:scale-105 hover:rotate-12 rounded-full absolute top-2 right-2 sm:-top-5 sm:-right-5'> <svg class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_210_113" style="mask-type: alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> <rect width="24" height="24" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_210_113)"> <path d="M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z" fill="white"/> </g> </svg> </div> <div class='px-12'> <form id="alpine_subscribe_form" class="free_subscribe_form"> <div id="subscribe_form_input" class="flex-col justify-center items-center gap-8"> <header class="flex w-full flex-col justify-center"> <svg xmlns="http://www.w3.org/2000/svg" class="w-full" fill="none" viewBox="0 0 633 130"> <g clip-path="url(#clip0_1_3)"> <mask style="mask-type:luminance" id="mask0_1_3" width="633" height="130" x="0" y="0" maskUnits="userSpaceOnUse"> <path fill="#fff" d="M632.406 0H0v130h632.406V0z"/> </mask> <g mask="url(#mask0_1_3)"> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M28.285 96.586c1.483 2.898 3.453 5.247 5.912 7.048 2.458 1.802 5.337 3.133 8.652 4.003a40.333 40.333 0 0 0 10.28 1.305c2.4 0 4.97-.199 7.71-.609 2.742-.409 5.312-1.191 7.71-2.349 2.4-1.157 4.396-2.758 5.998-4.786 1.602-2.027 2.398-4.612 2.398-7.744 0-3.368-1.053-6.091-3.17-8.18-2.116-2.088-4.883-3.828-8.31-5.22-3.426-1.393-7.307-2.61-11.65-3.655a312.494 312.494 0 0 1-13.193-3.48 116.19 116.19 0 0 1-13.364-4.264c-4.344-1.68-8.225-3.855-11.651-6.526-3.427-2.672-6.194-6.005-8.31-10.007-2.116-4.003-3.17-8.85-3.17-14.532 0-6.378 1.345-11.92 4.026-16.62 2.682-4.698 6.194-8.614 10.538-11.746 4.343-3.133 9.252-5.456 14.735-6.962C38.908.757 44.39 0 49.874 0c6.4 0 12.533.722 18.419 2.175C74.178 3.63 79.404 5.978 83.97 9.224c4.566 3.245 8.199 7.396 10.88 12.443 2.681 5.046 4.026 11.164 4.026 18.36H72.833c-.231-3.716-1.002-6.787-2.313-9.224-1.31-2.436-3.058-4.35-5.226-5.743-2.167-1.392-4.651-2.375-7.453-2.958-2.801-.583-5.851-.87-9.166-.87-2.168 0-4.344.235-6.511.696a17.313 17.313 0 0 0-5.911 2.436 14.886 14.886 0 0 0-4.37 4.35c-1.139 1.741-1.713 3.943-1.713 6.614 0 2.436.454 4.412 1.37 5.917.918 1.505 2.717 2.898 5.398 4.177 2.681 1.279 6.39 2.55 11.137 3.828 4.737 1.28 10.94 2.898 18.59 4.873 2.287.461 5.457 1.305 9.51 2.524 4.051 1.218 8.078 3.158 12.079 5.83 4 2.67 7.453 6.239 10.365 10.702 2.913 4.464 4.369 10.181 4.369 17.142 0 5.682-1.088 10.964-3.254 15.837-2.168 4.873-5.398 9.076-9.681 12.617-4.284 3.541-9.595 6.291-15.935 8.266-6.34 1.976-13.681 2.959-22.017 2.959-6.742 0-13.278-.845-19.618-2.524-6.34-1.679-11.933-4.324-16.79-7.918-4.858-3.593-8.713-8.179-11.566-13.748-2.861-5.569-4.232-12.182-4.12-19.84h26.051c0 4.177.745 7.719 2.227 10.616zM135.536 2.958v51.513l47.795-51.513h33.582L169.11 52.034l52.43 75.181h-33.755l-36.836-55.863-15.422 15.836v40.027h-26.899V2.958h26.908zM313.547 2.958V25.93h-64.594v33.588h59.283v21.231h-59.283v23.494h65.966v22.972h-92.865V2.958h91.493zM510.414 2.958v124.257h-26.9V2.958h26.9zM602.251 36.111a27.437 27.437 0 0 0-5.997-6.874c-2.398-1.975-5.115-3.507-8.138-4.612-3.033-1.105-6.194-1.653-9.51-1.653-6.057 0-11.196 1.192-15.42 3.567-4.223 2.376-7.65 5.57-10.28 9.572-2.631 4.003-4.541 8.554-5.74 13.661-1.199 5.108-1.799 10.381-1.799 15.837 0 5.456.6 10.294 1.799 15.228 1.199 4.933 3.109 9.371 5.74 13.313 2.63 3.941 6.057 7.109 10.28 9.484 4.224 2.376 9.363 3.568 15.42 3.568 8.225 0 14.649-2.549 19.276-7.657 4.626-5.108 7.453-11.834 8.481-20.188h26.043c-.685 7.77-2.458 14.793-5.311 21.058-2.853 6.265-6.623 11.599-11.308 16.01-4.686 4.412-10.169 7.771-16.449 10.094-6.279 2.324-13.192 3.481-20.732 3.481-9.363 0-17.793-1.653-25.272-4.96-7.479-3.306-13.793-7.857-18.932-13.661-5.141-5.804-9.082-12.617-11.823-20.449-2.741-7.831-4.112-16.271-4.112-25.32 0-9.05 1.371-17.9 4.112-25.844 2.741-7.945 6.682-14.88 11.823-20.797 5.139-5.917 11.453-10.555 18.932-13.922C560.813 1.679 569.243 0 578.606 0c6.743 0 13.108.983 19.105 2.958 5.996 1.976 11.367 4.847 16.105 8.615 4.738 3.768 8.652 8.44 11.737 14.01 3.084 5.568 5.028 11.946 5.826 19.143h-26.044c-.454-3.133-1.482-6.005-3.084-8.615z"/> <path class="fill-skeptic-primary" fill="" d="M349.699 104.242h-26.9v22.972h26.9v-22.972zM417.976 28.018c-1.541-4.76-4-8.988-7.367-12.704-3.367-3.715-7.736-6.7-13.107-8.962-5.371-2.263-11.882-3.394-19.532-3.394h-55.171v31.673h26.9V24.19h20.903c3.084 0 6.057.235 8.909.696 2.853.461 5.372 1.366 7.539 2.697 2.168 1.332 3.916 3.22 5.226 5.656 1.311 2.437 1.971 5.63 1.971 9.572 0 3.942-.66 7.135-1.971 9.572-1.319 2.436-3.058 4.324-5.226 5.655-2.167 1.332-4.686 2.237-7.539 2.698a55.777 55.777 0 0 1-8.909.696l-18.761.174h-29.042V82.49h29.898l25.273.174c7.65 0 14.161-1.132 19.532-3.394 5.371-2.262 9.74-5.247 13.107-8.962a34.504 34.504 0 0 0 7.367-12.792 47.907 47.907 0 0 0 2.314-14.705c0-4.986-.771-10.033-2.314-14.793z"/> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M410.815 2.958c4.086 2.428 7.47 5.508 10.134 9.232 2.99 4.177 5.174 8.946 6.537 14.297 1.37 5.36 2.056 10.903 2.056 16.646s-.686 11.138-2.056 16.55c-1.371 5.421-3.547 10.224-6.537 14.401a32.41 32.41 0 0 1-4.771 5.308v47.814h26.899V25.93h36.667V2.958h-68.929z"/> </g> </g> <defs> <clipPath id="clip0_1_3"> <path fill="#fff" d="M0 0h632.406v130H0z"/> </clipPath> </defs> </svg> <h3 class='text-2xl text-center mt-12 text-skeptic-charcoal dark:text-skeptic-foreground-dark' x-text="modal_title">Modal Title</h3> <div class="flex justify-center mt-8"> <div class="flex text-center items-center gap-2"> <span class="inline-block text_24 text-skeptic-charcoal dark:text-skeptic-foreground-dark">$</span> <span class="inline-block text-[3rem] leading-none font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark">0</span> <span class="inline-block leading-none text_24 text-[#6f6f6f]">/forever</span> </div> </div> </header> <div class="flex flex-col w-full"> <label for="" class="contact_form_label">Email</label> <input x-model="email_field" id="alpine_subscribe_email" name="email" type="email" class="contact_form" placeholder="Jamie@example.com" autocomplete="email"/> <span class="form_underline"></span> </div> <div class="flex flex-col w-full"> <label for="" class="contact_form_label">Name</label> <input x-model="name_field" name="name" id="" type="text" class="contact_form" placeholder="Jamie" autocomplete="given-name"/> <span class="form_underline"></span> </div> <div class="group w-full"> <button id="subscribe_form_submit" @click.prevent="subscribe_user" class="skeptic_btn skeptic_btn_outline py-3 w-full justify-center group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Subscribe</span> </button> <button id="subscribe_form_loading" disabled="true" class="skeptic_btn skeptic_btn_outline py-3 w-full justify-center group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Loading...</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="size-6 ml-2 fill-black dark:fill-white motion-safe:animate-spin"> <path d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z" opacity=".25" /> <path d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z" /> </svg> </button> </div> <div id="subscribe_form_error" class="flex-col justify-center items-center transition-all"> <small id="alpine_subscribe_form_error" class="text-red-500 text-sm"></small> </div> </div> <div id="subscribe_form_success" class="flex-col justify-center items-center transition-all"> <div class="text-5xl">📬</div> <h3 class="mt-8 font-bold text-[1.75rem] text-center text-skeptic-charcoal dark:text-skeptic-foreground-dark">Check your email</h3> <p class="text-lg mt-1 text-center text-skeptic-charcoal dark:text-skeptic-foreground-dark"> We’ve emailed you a magic link — click it to access your account. </p> <div class="group mt-8" @click.prevent="modal_show=false"> <button class="skeptic_btn skeptic_btn_outline py-3 group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Ok</span> </button> </div> </div> </form> </div> </div> </div> <div x-data="login_modal" class="skp_modal_wrapper ea" role="dialog" aria-modal="true" @skpopenloginform.window="modal_show = true" x-cloak x-show="modal_show"> <div class="skp_modal_window" @click.away="modal_show=false" x-show="modal_show" x-transition:enter="transition duration-200 delay-75" x-transition:enter-start="opacity-0 translate-y-10 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition duration-200 scale-100" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-10 scale-95" > <div @click.prevent="modal_show=false" role="button" class='size-10 bg-skeptic-primary transition-all duration-200 hover:bg-[#ff5f5f] hover:scale-105 hover:rotate-12 rounded-full absolute top-2 right-2 sm:-top-5 sm:-right-5'> <svg class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_210_114" style="mask-type: alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> <rect width="24" height="24" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_210_114)"> <path d="M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z" fill="white"/> </g> </svg> </div> <div class='px-12'> <form id="alpine_login_form" class="login_form"> <div id="subscribe_form_input" class="flex-col justify-center items-center gap-8"> <header class="flex w-full flex-col justify-center"> <svg xmlns="http://www.w3.org/2000/svg" class="w-full" fill="none" viewBox="0 0 633 130"> <g clip-path="url(#clip0_1_3)"> <mask style="mask-type:luminance" id="mask0_1_3" width="633" height="130" x="0" y="0" maskUnits="userSpaceOnUse"> <path fill="#fff" d="M632.406 0H0v130h632.406V0z"/> </mask> <g mask="url(#mask0_1_3)"> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M28.285 96.586c1.483 2.898 3.453 5.247 5.912 7.048 2.458 1.802 5.337 3.133 8.652 4.003a40.333 40.333 0 0 0 10.28 1.305c2.4 0 4.97-.199 7.71-.609 2.742-.409 5.312-1.191 7.71-2.349 2.4-1.157 4.396-2.758 5.998-4.786 1.602-2.027 2.398-4.612 2.398-7.744 0-3.368-1.053-6.091-3.17-8.18-2.116-2.088-4.883-3.828-8.31-5.22-3.426-1.393-7.307-2.61-11.65-3.655a312.494 312.494 0 0 1-13.193-3.48 116.19 116.19 0 0 1-13.364-4.264c-4.344-1.68-8.225-3.855-11.651-6.526-3.427-2.672-6.194-6.005-8.31-10.007-2.116-4.003-3.17-8.85-3.17-14.532 0-6.378 1.345-11.92 4.026-16.62 2.682-4.698 6.194-8.614 10.538-11.746 4.343-3.133 9.252-5.456 14.735-6.962C38.908.757 44.39 0 49.874 0c6.4 0 12.533.722 18.419 2.175C74.178 3.63 79.404 5.978 83.97 9.224c4.566 3.245 8.199 7.396 10.88 12.443 2.681 5.046 4.026 11.164 4.026 18.36H72.833c-.231-3.716-1.002-6.787-2.313-9.224-1.31-2.436-3.058-4.35-5.226-5.743-2.167-1.392-4.651-2.375-7.453-2.958-2.801-.583-5.851-.87-9.166-.87-2.168 0-4.344.235-6.511.696a17.313 17.313 0 0 0-5.911 2.436 14.886 14.886 0 0 0-4.37 4.35c-1.139 1.741-1.713 3.943-1.713 6.614 0 2.436.454 4.412 1.37 5.917.918 1.505 2.717 2.898 5.398 4.177 2.681 1.279 6.39 2.55 11.137 3.828 4.737 1.28 10.94 2.898 18.59 4.873 2.287.461 5.457 1.305 9.51 2.524 4.051 1.218 8.078 3.158 12.079 5.83 4 2.67 7.453 6.239 10.365 10.702 2.913 4.464 4.369 10.181 4.369 17.142 0 5.682-1.088 10.964-3.254 15.837-2.168 4.873-5.398 9.076-9.681 12.617-4.284 3.541-9.595 6.291-15.935 8.266-6.34 1.976-13.681 2.959-22.017 2.959-6.742 0-13.278-.845-19.618-2.524-6.34-1.679-11.933-4.324-16.79-7.918-4.858-3.593-8.713-8.179-11.566-13.748-2.861-5.569-4.232-12.182-4.12-19.84h26.051c0 4.177.745 7.719 2.227 10.616zM135.536 2.958v51.513l47.795-51.513h33.582L169.11 52.034l52.43 75.181h-33.755l-36.836-55.863-15.422 15.836v40.027h-26.899V2.958h26.908zM313.547 2.958V25.93h-64.594v33.588h59.283v21.231h-59.283v23.494h65.966v22.972h-92.865V2.958h91.493zM510.414 2.958v124.257h-26.9V2.958h26.9zM602.251 36.111a27.437 27.437 0 0 0-5.997-6.874c-2.398-1.975-5.115-3.507-8.138-4.612-3.033-1.105-6.194-1.653-9.51-1.653-6.057 0-11.196 1.192-15.42 3.567-4.223 2.376-7.65 5.57-10.28 9.572-2.631 4.003-4.541 8.554-5.74 13.661-1.199 5.108-1.799 10.381-1.799 15.837 0 5.456.6 10.294 1.799 15.228 1.199 4.933 3.109 9.371 5.74 13.313 2.63 3.941 6.057 7.109 10.28 9.484 4.224 2.376 9.363 3.568 15.42 3.568 8.225 0 14.649-2.549 19.276-7.657 4.626-5.108 7.453-11.834 8.481-20.188h26.043c-.685 7.77-2.458 14.793-5.311 21.058-2.853 6.265-6.623 11.599-11.308 16.01-4.686 4.412-10.169 7.771-16.449 10.094-6.279 2.324-13.192 3.481-20.732 3.481-9.363 0-17.793-1.653-25.272-4.96-7.479-3.306-13.793-7.857-18.932-13.661-5.141-5.804-9.082-12.617-11.823-20.449-2.741-7.831-4.112-16.271-4.112-25.32 0-9.05 1.371-17.9 4.112-25.844 2.741-7.945 6.682-14.88 11.823-20.797 5.139-5.917 11.453-10.555 18.932-13.922C560.813 1.679 569.243 0 578.606 0c6.743 0 13.108.983 19.105 2.958 5.996 1.976 11.367 4.847 16.105 8.615 4.738 3.768 8.652 8.44 11.737 14.01 3.084 5.568 5.028 11.946 5.826 19.143h-26.044c-.454-3.133-1.482-6.005-3.084-8.615z"/> <path class="fill-skeptic-primary" fill="" d="M349.699 104.242h-26.9v22.972h26.9v-22.972zM417.976 28.018c-1.541-4.76-4-8.988-7.367-12.704-3.367-3.715-7.736-6.7-13.107-8.962-5.371-2.263-11.882-3.394-19.532-3.394h-55.171v31.673h26.9V24.19h20.903c3.084 0 6.057.235 8.909.696 2.853.461 5.372 1.366 7.539 2.697 2.168 1.332 3.916 3.22 5.226 5.656 1.311 2.437 1.971 5.63 1.971 9.572 0 3.942-.66 7.135-1.971 9.572-1.319 2.436-3.058 4.324-5.226 5.655-2.167 1.332-4.686 2.237-7.539 2.698a55.777 55.777 0 0 1-8.909.696l-18.761.174h-29.042V82.49h29.898l25.273.174c7.65 0 14.161-1.132 19.532-3.394 5.371-2.262 9.74-5.247 13.107-8.962a34.504 34.504 0 0 0 7.367-12.792 47.907 47.907 0 0 0 2.314-14.705c0-4.986-.771-10.033-2.314-14.793z"/> <path class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark" fill="" d="M410.815 2.958c4.086 2.428 7.47 5.508 10.134 9.232 2.99 4.177 5.174 8.946 6.537 14.297 1.37 5.36 2.056 10.903 2.056 16.646s-.686 11.138-2.056 16.55c-1.371 5.421-3.547 10.224-6.537 14.401a32.41 32.41 0 0 1-4.771 5.308v47.814h26.899V25.93h36.667V2.958h-68.929z"/> </g> </g> <defs> <clipPath id="clip0_1_3"> <path fill="#fff" d="M0 0h632.406v130H0z"/> </clipPath> </defs> </svg> <h3 class='text-2xl text-center mt-12 text-skeptic-charcoal dark:text-skeptic-foreground-dark'>Log In</h3> </header> <div class="flex flex-col w-full"> <label for="" class="contact_form_label">Email</label> <input x-model="email_field" id="alpine_login_email" name="email" type="email" class="contact_form" placeholder="Jamie@example.com" autocomplete="email"/> <span class="form_underline"></span> </div> <div class="group w-full"> <button id="subscribe_form_submit" @click.prevent="login_user" class="skeptic_btn skeptic_btn_outline py-3 w-full justify-center group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Log In</span> </button> <button id="subscribe_form_loading" disabled="true" class="skeptic_btn skeptic_btn_outline py-3 w-full justify-center group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Loading...</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="size-6 ml-2 fill-black dark:fill-white motion-safe:animate-spin"> <path d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z" opacity=".25" /> <path d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z" /> </svg> </button> </div> <div id="subscribe_form_error" class="flex-col justify-center items-center transition-all"> <small id="alpine_login_form_error" class="text-red-500 text-sm" data-members-error></small> </div> </div> <div id="subscribe_form_success" class="flex-col justify-center items-center transition-all"> <div class="text-5xl">📬</div> <h3 class="mt-8 font-bold text-[1.75rem] text-center text-skeptic-charcoal dark:text-skeptic-foreground-dark">Check your email</h3> <p class="text-lg mt-1 text-center text-skeptic-charcoal dark:text-skeptic-foreground-dark"> We’ve emailed you a magic link — click it to access your account. </p> <div class="group mt-8" @click.prevent="modal_show=false"> <button class="skeptic_btn skeptic_btn_outline py-3 group-hover:border-skeptic-primary group-hover:bg-skeptic-primary"> <span class="group-hover:text-skeptic-background">Ok</span> </button> </div> </div> </form> </div> </div> </div> <script> document.addEventListener('alpine:init', () => { Alpine.data('free_subscribe_modal', () => ({ alpine_subscribe_form: document.getElementById('alpine_subscribe_form'), alpine_subscribe_form_error: document.getElementById('alpine_subscribe_form_error'), email_field: '', name_field: '', modal_title: '', tier_benefits: [], modal_show: false, CONTENT_API_KEY: null, CONTENT_API_URL: null, GHOST_BASE_URL : null, async init(){ const scriptTag = document.querySelector('script[data-key][data-api]'); this.CONTENT_API_KEY = scriptTag.getAttribute('data-key'); this.CONTENT_API_URL = scriptTag.getAttribute('data-api'); this.GHOST_BASE_URL = scriptTag.getAttribute('data-ghost'); console.log('[+] Free subscribe modal init...'); await this.fetch_api(); this.$watch('modal_show', (value, oldValue) => { if(value){ document.getElementsByTagName('body')[0].style.overflow = 'hidden'; setTimeout(()=>{document.getElementById('alpine_subscribe_email').focus();},200) }else{ document.getElementsByTagName('body')[0].style.overflow = ''; this.subscribe_form_state(''); } }) }, async fetch_api(){ //await new Promise(resolve => setTimeout(resolve, 5000));//DELETE THIS try { const res = await fetch(`${this.CONTENT_API_URL}tiers/?key=${this.CONTENT_API_KEY}&include=benefits,monthly_price,yearly_price&filter=type:free%2Bactive:true`); if (!res.ok) { throw new Error(`Fetch API error status code: ${res.status}`); } const result = await res.json(); if(result.tiers.length === 0) throw new Error('Could not fetch Free Tier info.') this.modal_title = result.tiers[0].name; this.tier_benefits = result.tiers[0].benefits; return result; } catch (error) { // Handle any errors that occur during the fetch or processing console.error('[X] Fetch error:', error); } }, async get_integrity_token(){ try{ let res = await fetch(`${this.GHOST_BASE_URL}/members/api/integrity-token/`, { method: 'GET', credentials: 'include', headers: { 'app-pragma': 'no-cache', 'Content-Type': 'application/json', 'Accept': 'application/json', } }); if(res.status != 200) throw new Error('Could not fetch integrity token'); let integrity_token = await res.text(); //console.log(integrity_token); return integrity_token }catch(error){ console.error('[X] Fetch error:', error); throw new Error('Could not fetch integrity token'); } }, subscribe_form_state(state){ this.alpine_subscribe_form.classList.remove('success', 'error', 'loading'); state.length > 0 ? this.alpine_subscribe_form.classList.add(state) : null; }, emailValidator(email) { const emailCheck=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i; let isEmpty = email.length === 0; if(isEmpty) throw new Error('Email field is required.'); let valid_email = emailCheck.test(email); if(!valid_email) throw new Error('Enter a valid email address.'); return true; }, async send_magic_link(integrity_token, email, name){ try{ let res = await fetch(`${this.GHOST_BASE_URL}/members/api/send-magic-link/`, { method: 'POST', credentials: 'include', headers: { 'app-pragma': 'no-cache', 'Content-Type': 'application/json', 'Accept': 'application/json', }, body: JSON.stringify({ email: email, name: name, emailType: 'signup', labels: [], autoRedirect: false, urlHistory: [], integrityToken: integrity_token }) }); if(res.status === 429) throw new Error('Too many requests. Try again later.'); if (res.status < 200 || res.status >= 300) throw new Error(res.statusText); }catch(error){ console.error('[X] Fetch error:', error.message); throw new Error(`${error.message}`); } }, async subscribe_user(){ console.log('Subscribe user...'); this.subscribe_form_state('loading'); try{ this.emailValidator(this.email_field); if(this.name_field.length === 0 ) throw new Error('Name field is required.'); let token = await this.get_integrity_token(); await this.send_magic_link(token, this.email_field, this.name_field); this.subscribe_form_state('success'); }catch(error){ this.subscribe_form_state('error'); this.alpine_subscribe_form_error.innerText = `${error.message}`; console.error('[X] Subscribe process error:', error.message); } } })) Alpine.data('login_modal', () => ({ login_form: document.getElementById('alpine_login_form'), alpine_login_form_error: document.getElementById('alpine_login_form_error'), email_field: '', modal_show: false, CONTENT_API_KEY: null, CONTENT_API_URL: null, GHOST_BASE_URL : null, async init(){ const scriptTag = document.querySelector('script[data-key][data-api]'); this.CONTENT_API_KEY = scriptTag.getAttribute('data-key'); this.CONTENT_API_URL = scriptTag.getAttribute('data-api'); this.GHOST_BASE_URL = scriptTag.getAttribute('data-ghost'); console.log('[+] Login modal init...'); this.$watch('modal_show', async(value, oldValue) => { if(value){ document.getElementsByTagName('body')[0].style.overflow = 'hidden'; setTimeout(()=>{document.getElementById('alpine_login_email').focus();},200) }else{ document.getElementsByTagName('body')[0].style.overflow = ''; this.login_form_state(''); } }) }, async get_integrity_token(){ try{ let res = await fetch(`${this.GHOST_BASE_URL}/members/api/integrity-token/`, { method: 'GET', credentials: 'include', headers: { 'app-pragma': 'no-cache', 'Content-Type': 'application/json', 'Accept': 'application/json', } }); if(res.status != 200) throw new Error('Could not fetch integrity token'); let integrity_token = await res.text(); console.log(integrity_token); return integrity_token }catch(error){ console.error('[X] Fetch error:', error); throw new Error('Could not fetch integrity token'); } }, login_form_state(state){ this.login_form.classList.remove('success', 'error', 'loading'); state.length > 0 ? this.login_form.classList.add(state) : null; }, emailValidator(email) { const emailCheck=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i; let isEmpty = email.length === 0; if(isEmpty) throw new Error('Email field is required.'); let valid_email = emailCheck.test(email); if(!valid_email) throw new Error('Enter a valid email address.'); return true; }, async send_magic_link(integrity_token, email){ try{ let res = await fetch(`${this.GHOST_BASE_URL}/members/api/send-magic-link/`, { method: 'POST', credentials: 'include', headers: { 'app-pragma': 'no-cache', 'Content-Type': 'application/json', 'Accept': 'application/json', }, body: JSON.stringify({ email: email, labels: [], autoRedirect: false, urlHistory: [], integrityToken: integrity_token }) }); if(res.status === 429) throw new Error('Too many requests. Try again later.'); if (res.status < 200 || res.status >= 300) throw new Error(res.statusText); }catch(error){ console.error('[X] Fetch error:', error.message); throw new Error(`${error.message}`); } }, async login_user(){ console.log('Login user...'); this.login_form_state('loading'); try{ this.emailValidator(this.email_field); let token = await this.get_integrity_token(); await this.send_magic_link(token, this.email_field); this.login_form_state('success'); }catch(error){ this.login_form_state('error'); this.alpine_login_form_error.innerText = `${error.message}`; console.error('[X] Login process error:', error.message); } } })) }) </script> <div id="react-app-modals"></div> <div x-cloak x-data="algolia_box" x-show="modal_show" id="search_wrapper" @alpinealgoliabox.window="modal_show = true"> <div class="agolia_modal_box" @click.away="modal_show=false" x-show="modal_show" x-transition:enter="transition duration-200 delay-75" x-transition:enter-start="opacity-0 translate-y-10 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition duration-200 scale-100" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-10 scale-95" > <div @click.prevent="modal_show=false" role="button" class='z-[9999] size-10 bg-skeptic-primary transition-all duration-200 hover:bg-[#ff5f5f] hover:scale-105 hover:rotate-12 rounded-full absolute top-2 right-2 sm:-top-5 sm:-right-5'> <svg class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="algolia_113" style="mask-type: alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> <rect width="24" height="24" fill="#D9D9D9" /> </mask> <g mask="url(#algolia_113)"> <path d="M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z" fill="white"/> </g> </svg> </div> <header> <div id="searchbox" class="relative"></div> </header> <div id="hits" class="agolia_search_hits"></div> <div id="algolia-custom-links" class="hidden px-[--gap-22-5] pt-1 pb-10"> <h3 class="text-xs uppercase text-skeptic-charcoal dark:text-skeptic-foreground-dark">Popular Searches</h3> <ul class="flex flex-col mt-[--gap-22-5]"> <li class="group"> <a href='https://research.skeptic.com' class="py-1.5 block"> <div class="flex items-center space-x-[--gap-11] py-2"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark "><mask id="mask0_5832_19485" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="22"><rect x="0.5" y="0.5" width="21" height="21" fill="#D9D9D9"/></mask><g mask="url(#mask0_5832_19485)"><path d="M17.2328 18.3484L12.0047 13.1203C11.5672 13.4411 11.0875 13.6927 10.5655 13.875C10.0436 14.0573 9.48811 14.1484 8.89909 14.1484C7.44032 14.1484 6.20052 13.638 5.17969 12.6172C4.15885 11.5964 3.64844 10.3568 3.64844 8.89844C3.64844 7.4401 4.15885 6.20052 5.17969 5.17969C6.20052 4.15885 7.4401 3.64844 8.89844 3.64844C10.3568 3.64844 11.5964 4.15885 12.6172 5.17969C13.638 6.20052 14.1484 7.44032 14.1484 8.89909C14.1484 9.48811 14.0573 10.0436 13.875 10.5655C13.6927 11.0875 13.4411 11.5672 13.1203 12.0047L18.3484 17.2328L17.2328 18.3484ZM8.89844 12.5734C9.91927 12.5734 10.787 12.2161 11.5016 11.5016C12.2161 10.787 12.5734 9.91927 12.5734 8.89844C12.5734 7.8776 12.2161 7.0099 11.5016 6.29531C10.787 5.58073 9.91927 5.22344 8.89844 5.22344C7.8776 5.22344 7.0099 5.58073 6.29531 6.29531C5.58073 7.0099 5.22344 7.8776 5.22344 8.89844C5.22344 9.91927 5.58073 10.787 6.29531 11.5016C7.0099 12.2161 7.8776 12.5734 8.89844 12.5734Z" fill=""/></g></svg> <div class="text-base font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary">skeptic research center</div> </div> </a> </li> <li class="group"> <a href='https://skeptic.com/article/when-our-best-friend-becomes-our-worst-enemy-the-story-of-american-bully-xl-attacks-and-the-campaign-that-banned-the-breed-in-britain/' class="py-1.5 block"> <div class="flex items-center space-x-[--gap-11] py-2"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark "><mask id="mask0_5832_19485" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="22"><rect x="0.5" y="0.5" width="21" height="21" fill="#D9D9D9"/></mask><g mask="url(#mask0_5832_19485)"><path d="M17.2328 18.3484L12.0047 13.1203C11.5672 13.4411 11.0875 13.6927 10.5655 13.875C10.0436 14.0573 9.48811 14.1484 8.89909 14.1484C7.44032 14.1484 6.20052 13.638 5.17969 12.6172C4.15885 11.5964 3.64844 10.3568 3.64844 8.89844C3.64844 7.4401 4.15885 6.20052 5.17969 5.17969C6.20052 4.15885 7.4401 3.64844 8.89844 3.64844C10.3568 3.64844 11.5964 4.15885 12.6172 5.17969C13.638 6.20052 14.1484 7.44032 14.1484 8.89909C14.1484 9.48811 14.0573 10.0436 13.875 10.5655C13.6927 11.0875 13.4411 11.5672 13.1203 12.0047L18.3484 17.2328L17.2328 18.3484ZM8.89844 12.5734C9.91927 12.5734 10.787 12.2161 11.5016 11.5016C12.2161 10.787 12.5734 9.91927 12.5734 8.89844C12.5734 7.8776 12.2161 7.0099 11.5016 6.29531C10.787 5.58073 9.91927 5.22344 8.89844 5.22344C7.8776 5.22344 7.0099 5.58073 6.29531 6.29531C5.58073 7.0099 5.22344 7.8776 5.22344 8.89844C5.22344 9.91927 5.58073 10.787 6.29531 11.5016C7.0099 12.2161 7.8776 12.5734 8.89844 12.5734Z" fill=""/></g></svg> <div class="text-base font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary">pitbulls</div> </div> </a> </li> <li class="group"> <a href='https://skeptic.com/contact' class="py-1.5 block"> <div class="flex items-center space-x-[--gap-11] py-2"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark "><mask id="mask0_5832_19485" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="22"><rect x="0.5" y="0.5" width="21" height="21" fill="#D9D9D9"/></mask><g mask="url(#mask0_5832_19485)"><path d="M17.2328 18.3484L12.0047 13.1203C11.5672 13.4411 11.0875 13.6927 10.5655 13.875C10.0436 14.0573 9.48811 14.1484 8.89909 14.1484C7.44032 14.1484 6.20052 13.638 5.17969 12.6172C4.15885 11.5964 3.64844 10.3568 3.64844 8.89844C3.64844 7.4401 4.15885 6.20052 5.17969 5.17969C6.20052 4.15885 7.4401 3.64844 8.89844 3.64844C10.3568 3.64844 11.5964 4.15885 12.6172 5.17969C13.638 6.20052 14.1484 7.44032 14.1484 8.89909C14.1484 9.48811 14.0573 10.0436 13.875 10.5655C13.6927 11.0875 13.4411 11.5672 13.1203 12.0047L18.3484 17.2328L17.2328 18.3484ZM8.89844 12.5734C9.91927 12.5734 10.787 12.2161 11.5016 11.5016C12.2161 10.787 12.5734 9.91927 12.5734 8.89844C12.5734 7.8776 12.2161 7.0099 11.5016 6.29531C10.787 5.58073 9.91927 5.22344 8.89844 5.22344C7.8776 5.22344 7.0099 5.58073 6.29531 6.29531C5.58073 7.0099 5.22344 7.8776 5.22344 8.89844C5.22344 9.91927 5.58073 10.787 6.29531 11.5016C7.0099 12.2161 7.8776 12.5734 8.89844 12.5734Z" fill=""/></g></svg> <div class="text-base font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary">contact skeptics society</div> </div> </a> </li> <li class="group"> <a href='https://skeptic.com/article/the-future-of-common-sense/' class="py-1.5 block"> <div class="flex items-center space-x-[--gap-11] py-2"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark "><mask id="mask0_5832_19485" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="22"><rect x="0.5" y="0.5" width="21" height="21" fill="#D9D9D9"/></mask><g mask="url(#mask0_5832_19485)"><path d="M17.2328 18.3484L12.0047 13.1203C11.5672 13.4411 11.0875 13.6927 10.5655 13.875C10.0436 14.0573 9.48811 14.1484 8.89909 14.1484C7.44032 14.1484 6.20052 13.638 5.17969 12.6172C4.15885 11.5964 3.64844 10.3568 3.64844 8.89844C3.64844 7.4401 4.15885 6.20052 5.17969 5.17969C6.20052 4.15885 7.4401 3.64844 8.89844 3.64844C10.3568 3.64844 11.5964 4.15885 12.6172 5.17969C13.638 6.20052 14.1484 7.44032 14.1484 8.89909C14.1484 9.48811 14.0573 10.0436 13.875 10.5655C13.6927 11.0875 13.4411 11.5672 13.1203 12.0047L18.3484 17.2328L17.2328 18.3484ZM8.89844 12.5734C9.91927 12.5734 10.787 12.2161 11.5016 11.5016C12.2161 10.787 12.5734 9.91927 12.5734 8.89844C12.5734 7.8776 12.2161 7.0099 11.5016 6.29531C10.787 5.58073 9.91927 5.22344 8.89844 5.22344C7.8776 5.22344 7.0099 5.58073 6.29531 6.29531C5.58073 7.0099 5.22344 7.8776 5.22344 8.89844C5.22344 9.91927 5.58073 10.787 6.29531 11.5016C7.0099 12.2161 7.8776 12.5734 8.89844 12.5734Z" fill=""/></g></svg> <div class="text-base font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary">katherine brodsky</div> </div> </a> </li> <li class="group"> <a href='https://skeptic.com/pitch-an-article/' class="py-1.5 block"> <div class="flex items-center space-x-[--gap-11] py-2"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="" class="fill-skeptic-charcoal dark:fill-skeptic-foreground-dark "><mask id="mask0_5832_19485" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="22"><rect x="0.5" y="0.5" width="21" height="21" fill="#D9D9D9"/></mask><g mask="url(#mask0_5832_19485)"><path d="M17.2328 18.3484L12.0047 13.1203C11.5672 13.4411 11.0875 13.6927 10.5655 13.875C10.0436 14.0573 9.48811 14.1484 8.89909 14.1484C7.44032 14.1484 6.20052 13.638 5.17969 12.6172C4.15885 11.5964 3.64844 10.3568 3.64844 8.89844C3.64844 7.4401 4.15885 6.20052 5.17969 5.17969C6.20052 4.15885 7.4401 3.64844 8.89844 3.64844C10.3568 3.64844 11.5964 4.15885 12.6172 5.17969C13.638 6.20052 14.1484 7.44032 14.1484 8.89909C14.1484 9.48811 14.0573 10.0436 13.875 10.5655C13.6927 11.0875 13.4411 11.5672 13.1203 12.0047L18.3484 17.2328L17.2328 18.3484ZM8.89844 12.5734C9.91927 12.5734 10.787 12.2161 11.5016 11.5016C12.2161 10.787 12.5734 9.91927 12.5734 8.89844C12.5734 7.8776 12.2161 7.0099 11.5016 6.29531C10.787 5.58073 9.91927 5.22344 8.89844 5.22344C7.8776 5.22344 7.0099 5.58073 6.29531 6.29531C5.58073 7.0099 5.22344 7.8776 5.22344 8.89844C5.22344 9.91927 5.58073 10.787 6.29531 11.5016C7.0099 12.2161 7.8776 12.5734 8.89844 12.5734Z" fill=""/></g></svg> <div class="text-base font-bold text-skeptic-charcoal dark:text-skeptic-foreground-dark group-hover:text-skeptic-primary">pitch an article</div> </div> </a> </li> </ul> </div> <footer> <div class="agolia_logo_wrapper"> <span>Search by</span> <svg width="77" height="19" aria-label="Algolia" role="img" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2196.2 500"><defs><style>.cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}</style></defs><path class="cls-2" d="M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"></path><rect class="cls-1" x="1845.88" y="104.73" width="62.58" height="277.9" rx="5.9" ry="5.9"></rect><path class="cls-2" d="M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"></path><path class="cls-2" d="M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"></path><path class="cls-2" d="M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"></path><path class="cls-2" d="M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"></path><path class="cls-2" d="M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"></path><path class="cls-2" d="M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"></path><path class="cls-1" d="M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"></path></svg> </div> </footer> </div> </div> </div> <script type="module"> import LazyLoad from "https://www.skeptic.com/assets/js/lazyload.min.js?v=41a9f13c76"; window.lazyLoadInstance = new LazyLoad({}); </script> <script> const hamburger = document.getElementById('hamburger'); hamburger.addEventListener('click', ()=>{ //console.log('[+] Hamburger clicked...'); window.dispatchEvent(new CustomEvent('openNoiseMobileMenu', {detail: { action: true} } )); }); const hamburger_sticky = document.getElementById('hamburger-sticky'); hamburger_sticky.addEventListener('click', ()=>{ //console.log('[+] Sticky Hamburger clicked...'); window.dispatchEvent(new CustomEvent('openNoiseMobileMenu', {detail: { action: true} } )); }); document.addEventListener('alpine:init', () => { Alpine.data('mode_switcher', () => ({ switchToMode: document.documentElement.classList.contains('dark') ? 'Light Mode' : 'Dark Mode', init(){ //console.log('[+] Mode Switcher...'); //console.log('[+] Light icon -> ', this.$refs.light_icon); //console.log('[+] Dark icon -> ', this.$refs.dark_icon); this.$nextTick(() => { if (this.$refs.theme_toggle) { if (document.documentElement.classList.contains('dark')) { this.$refs.theme_toggle.classList.remove('theme-toggle--toggled'); } else { this.$refs.theme_toggle.classList.add('theme-toggle--toggled'); } } }); // Observe changes to the HTML class attribute const observer = new MutationObserver(() => { this.updateSwitchToMode(); }); observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'], }); this.updateSwitchToMode(); }, updateSwitchToMode() { if (document.documentElement.classList.contains('dark')) { this.switchToMode = 'Light Mode'; this.$refs.theme_toggle.classList.remove('theme-toggle--toggled'); } else { this.switchToMode = 'Dark Mode'; this.$refs.theme_toggle.classList.add('theme-toggle--toggled'); } }, switch_mode(){ console.log('[+] Switching mode...'); if(document.documentElement.classList.contains('dark')){ this.$refs.theme_toggle.classList.remove('theme-toggle--toggled'); document.documentElement.classList.remove('dark'); document.documentElement.style.backgroundColor = '#FFF5DF'; localStorage.theme = 'light'; }else{ this.$refs.theme_toggle.classList.add('theme-toggle--toggled'); document.documentElement.classList.add('dark'); document.documentElement.style.backgroundColor = '#1F1E1E'; localStorage.theme = 'dark'; } } })) }) </script> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.24.0/dist/algoliasearch-lite.umd.js" integrity="sha256-b2n6oSgG4C1stMT/yc/ChGszs9EY/Mhs6oltEjQbFCQ=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.75.7/dist/instantsearch.production.min.js" integrity="sha256-3y7+f16/MUo6PGqYGwChbFdK8Y4yzcU9V+ErDCwMTAk=" crossorigin="anonymous"></script> <script> document.addEventListener('DOMContentLoaded', function () { const APP_ID = 'K09GIQJKP0'; //Application ID const SEARCH_API_KEY = '367566bee3cfc5d6efd00e399596a515'; //Search-only API key const searchClient = algoliasearch(APP_ID, SEARCH_API_KEY); const customLinksContainer = document.getElementById('algolia-custom-links'); const searchResultsContainer = document.querySelector('.agolia_search_hits'); const search = instantsearch({ indexName: 'skeptic_magazine', searchClient, insights: true, searchFunction(helper) { const query = helper.state.query; //Show custom suggestion links before search if (!query || query.trim() === '') { customLinksContainer.classList.remove('hidden'); searchResultsContainer.classList.add('hidden'); return; }else { customLinksContainer.classList.add('hidden'); searchResultsContainer.classList.remove('hidden'); helper.search(); } }, }); search.addWidgets([ instantsearch.widgets.configure({ hitsPerPage: 20, attributesToSnippet: ['excerpt', 'author'], }), instantsearch.widgets.searchBox({ container: '#searchbox', placeholder: 'Search for anything...', showReset: false, autofocus: false, // Autofocus on load }), instantsearch.widgets.infiniteHits({ container: '#hits', templates: { empty: ({ query }, { html }) => { return html`<div class="text-skeptic-charcoal dark:text-skeptic-foreground-dark pt-5">No results have been found for <span class="text-skeptic-primary">${ query }</span>.</div>` }, item: (hit, { html, components }) => { const authorMarkup = Array.isArray(hit.author) && hit.author.length > 0 ? html` <div class="hit-author group-hover:text-white"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 21 21" fill="none"> <mask id="mask0_5885_18064" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="21" height="21"> <rect width="21" height="21" fill="#6F6F6F"/> </mask> <g mask="url(#mask0_5885_18064)"> <path d="M5.11875 14.9625C5.8625 14.3938 6.69375 13.9453 7.6125 13.6172C8.53125 13.2891 9.49375 13.125 10.5 13.125C11.5063 13.125 12.4688 13.2891 13.3875 13.6172C14.3063 13.9453 15.1375 14.3938 15.8812 14.9625C16.3917 14.3646 16.7891 13.6865 17.0734 12.9281C17.3578 12.1698 17.5 11.3604 17.5 10.5C17.5 8.56042 16.8182 6.90885 15.4547 5.54531C14.0911 4.18177 12.4396 3.5 10.5 3.5C8.56042 3.5 6.90885 4.18177 5.54531 5.54531C4.18177 6.90885 3.5 8.56042 3.5 10.5C3.5 11.3604 3.64219 12.1698 3.92656 12.9281C4.21094 13.6865 4.60833 14.3646 5.11875 14.9625ZM10.5 11.375C9.63958 11.375 8.91406 11.0797 8.32344 10.4891C7.73281 9.89844 7.4375 9.17292 7.4375 8.3125C7.4375 7.45208 7.73281 6.72656 8.32344 6.13594C8.91406 5.54531 9.63958 5.25 10.5 5.25C11.3604 5.25 12.0859 5.54531 12.6766 6.13594C13.2672 6.72656 13.5625 7.45208 13.5625 8.3125C13.5625 9.17292 13.2672 9.89844 12.6766 10.4891C12.0859 11.0797 11.3604 11.375 10.5 11.375ZM10.5 19.25C9.28958 19.25 8.15208 19.0203 7.0875 18.5609C6.02292 18.1016 5.09687 17.4781 4.30938 16.6906C3.52187 15.9031 2.89844 14.9771 2.43906 13.9125C1.97969 12.8479 1.75 11.7104 1.75 10.5C1.75 9.28958 1.97969 8.15208 2.43906 7.0875C2.89844 6.02292 3.52187 5.09687 4.30938 4.30938C5.09687 3.52187 6.02292 2.89844 7.0875 2.43906C8.15208 1.97969 9.28958 1.75 10.5 1.75C11.7104 1.75 12.8479 1.97969 13.9125 2.43906C14.9771 2.89844 15.9031 3.52187 16.6906 4.30938C17.4781 5.09687 18.1016 6.02292 18.5609 7.0875C19.0203 8.15208 19.25 9.28958 19.25 10.5C19.25 11.7104 19.0203 12.8479 18.5609 13.9125C18.1016 14.9771 17.4781 15.9031 16.6906 16.6906C15.9031 17.4781 14.9771 18.1016 13.9125 18.5609C12.8479 19.0203 11.7104 19.25 10.5 19.25ZM10.5 17.5C11.2729 17.5 12.0021 17.387 12.6875 17.1609C13.3729 16.9349 14 16.6104 14.5688 16.1875C14 15.7646 13.3729 15.4401 12.6875 15.2141C12.0021 14.988 11.2729 14.875 10.5 14.875C9.72708 14.875 8.99792 14.988 8.3125 15.2141C7.62708 15.4401 7 15.7646 6.43125 16.1875C7 16.6104 7.62708 16.9349 8.3125 17.1609C8.99792 17.387 9.72708 17.5 10.5 17.5ZM10.5 9.625C10.8792 9.625 11.1927 9.50104 11.4406 9.25312C11.6885 9.00521 11.8125 8.69167 11.8125 8.3125C11.8125 7.93333 11.6885 7.61979 11.4406 7.37188C11.1927 7.12396 10.8792 7 10.5 7C10.1208 7 9.80729 7.12396 9.55938 7.37188C9.31146 7.61979 9.1875 7.93333 9.1875 8.3125C9.1875 8.69167 9.31146 9.00521 9.55938 9.25312C9.80729 9.50104 10.1208 9.625 10.5 9.625Z" fill="#6F6F6F"/> </g> </svg> ${components.Snippet({ hit, attribute: 'author' })} </div> ` : ''; let type_icon = ''; if(hit.type != undefined){ switch(hit.type.toLowerCase()){ case 'article': type_icon = html`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 21 21" fill="none"> <mask id="mask0_5885_18055" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="21" height="21"> <rect width="21" height="21" fill="#D9D9D9"/> </mask> <g mask="url(#mask0_5885_18055)"> <path d="M3.67656 17.8484C3.24344 17.8484 2.87266 17.6942 2.56422 17.3858C2.25578 17.0773 2.10156 16.7066 2.10156 16.2734V4.72344C2.10156 4.29031 2.25578 3.91953 2.56422 3.61109C2.87266 3.30266 3.24344 3.14844 3.67656 3.14844H17.3266C17.7597 3.14844 18.1305 3.30266 18.4389 3.61109C18.7473 3.91953 18.9016 4.29031 18.9016 4.72344V16.2734C18.9016 16.7066 18.7473 17.0773 18.4389 17.3858C18.1305 17.6942 17.7597 17.8484 17.3266 17.8484H3.67656ZM3.67656 16.2734H17.3266V4.72344H3.67656V16.2734ZM5.25156 14.1734H15.7516V12.5984H5.25156V14.1734ZM5.25156 11.0234H8.92656V6.29844H5.25156V11.0234ZM10.5016 11.0234H15.7516V9.44844H10.5016V11.0234ZM10.5016 7.87344H15.7516V6.29844H10.5016V7.87344Z" fill="#6F6F6F"/> </g> </svg>`; break; case 'podcast': type_icon = html`<svg xmlns="http://www.w3.org/2000/svg" width="23" height="24" viewBox="0 0 24 25" fill="none"> <mask id="mask0_5885_18138" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="25"> <rect y="0.5" width="24" height="24" fill="#6F6F6F"/> </mask> <g mask="url(#mask0_5885_18138)"> <path d="M9.5 17L16.5 12.5L9.5 8V17ZM4 20.5C3.45 20.5 2.97917 20.3042 2.5875 19.9125C2.19583 19.5208 2 19.05 2 18.5V6.5C2 5.95 2.19583 5.47917 2.5875 5.0875C2.97917 4.69583 3.45 4.5 4 4.5H20C20.55 4.5 21.0208 4.69583 21.4125 5.0875C21.8042 5.47917 22 5.95 22 6.5V18.5C22 19.05 21.8042 19.5208 21.4125 19.9125C21.0208 20.3042 20.55 20.5 20 20.5H4ZM4 18.5H20V6.5H4V18.5Z" fill="#6F6F6F"/> </g> </svg>`; break; case 'page': type_icon = html`<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21" fill="none"> <mask id="mask0_6010_19704" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="21" height="21"> <rect x="0.5" y="0.5" width="20" height="20" fill="#6F6F6F"/> </mask> <g mask="url(#mask0_6010_19704)"> <path d="M7.5 15.5H13.5V14H7.5V15.5ZM7.5 12.5H13.5V11H7.5V12.5ZM5.99417 18.5C5.58139 18.5 5.22917 18.3531 4.9375 18.0594C4.64583 17.7656 4.5 17.4125 4.5 17V4C4.5 3.5875 4.64687 3.23438 4.94062 2.94063C5.23437 2.64688 5.5875 2.5 6 2.5H12.5L16.5 6.5V17C16.5 17.4125 16.3531 17.7656 16.0592 18.0594C15.7653 18.3531 15.4119 18.5 14.9992 18.5H5.99417ZM11.5 7.5V4H6V17H15V7.5H11.5Z" fill="#6F6F6F"/> </g> </svg>`; break; case 'event': type_icon = html`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" viewBox="0 0 22 21" fill="none"> <mask id="mask0_6020_19879" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="22" height="21"> <rect x="0.5" width="21" height="21" fill="#6F6F6F"/> </mask> <g mask="url(#mask0_6020_19879)"> <path d="M4.875 7H17.125V5.25H4.875V7ZM4.875 19.25C4.39375 19.25 3.98177 19.0786 3.63906 18.7359C3.29635 18.3932 3.125 17.9813 3.125 17.5V5.25C3.125 4.76875 3.29635 4.35677 3.63906 4.01406C3.98177 3.67135 4.39375 3.5 4.875 3.5H5.75V1.75H7.5V3.5H14.5V1.75H16.25V3.5H17.125C17.6063 3.5 18.0182 3.67135 18.3609 4.01406C18.7036 4.35677 18.875 4.76875 18.875 5.25V10.2156C18.5979 10.0844 18.3135 9.975 18.0219 9.8875C17.7302 9.8 17.4312 9.73437 17.125 9.69062V8.75H4.875V17.5H10.3875C10.4896 17.8208 10.6099 18.1271 10.7484 18.4188C10.887 18.7104 11.051 18.9875 11.2406 19.25H4.875ZM16.25 20.125C15.0396 20.125 14.0078 19.6984 13.1547 18.8453C12.3016 17.9922 11.875 16.9604 11.875 15.75C11.875 14.5396 12.3016 13.5078 13.1547 12.6547C14.0078 11.8016 15.0396 11.375 16.25 11.375C17.4604 11.375 18.4922 11.8016 19.3453 12.6547C20.1984 13.5078 20.625 14.5396 20.625 15.75C20.625 16.9604 20.1984 17.9922 19.3453 18.8453C18.4922 19.6984 17.4604 20.125 16.25 20.125ZM17.7156 17.8281L18.3281 17.2156L16.6875 15.575V13.125H15.8125V15.925L17.7156 17.8281Z" fill="#6F6F6F"/> </g> </svg>`; break; case 'magazine': type_icon = html`<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21" fill="none"> <mask id="mask0_6020_19883" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="21" height="21"> <rect x="0.5" y="0.5" width="20" height="20" fill="#6F6F6F"/> </mask> <g mask="url(#mask0_6020_19883)"> <path d="M10.5026 17.168C9.83594 16.6402 9.11372 16.2305 8.33594 15.9388C7.55816 15.6471 6.7526 15.5013 5.91927 15.5013C5.33594 15.5013 4.76302 15.5777 4.20052 15.7305C3.63802 15.8832 3.09983 16.0985 2.58594 16.3763C2.29427 16.5291 2.01302 16.5221 1.74219 16.3555C1.47135 16.1888 1.33594 15.9457 1.33594 15.6263V5.58464C1.33594 5.43186 1.37413 5.28602 1.45052 5.14714C1.52691 5.00825 1.64149 4.90408 1.79427 4.83464C2.43316 4.5013 3.09983 4.2513 3.79427 4.08464C4.48872 3.91797 5.19705 3.83464 5.91927 3.83464C6.72483 3.83464 7.51302 3.9388 8.28385 4.14714C9.05469 4.35547 9.79427 4.66797 10.5026 5.08464V15.168C11.2109 14.7235 11.954 14.3902 12.7318 14.168C13.5095 13.9457 14.2943 13.8346 15.0859 13.8346C15.5859 13.8346 16.0755 13.8763 16.5547 13.9596C17.0339 14.043 17.5165 14.168 18.0026 14.3346V4.33464C18.2109 4.40408 18.4158 4.477 18.6172 4.55339C18.8186 4.62977 19.0165 4.72352 19.2109 4.83464C19.3637 4.90408 19.4783 5.00825 19.5547 5.14714C19.6311 5.28602 19.6693 5.43186 19.6693 5.58464V15.6263C19.6693 15.9457 19.5339 16.1888 19.263 16.3555C18.9922 16.5221 18.7109 16.5291 18.4193 16.3763C17.9054 16.0985 17.3672 15.8832 16.8047 15.7305C16.2422 15.5777 15.6693 15.5013 15.0859 15.5013C14.2526 15.5013 13.447 15.6471 12.6693 15.9388C11.8915 16.2305 11.1693 16.6402 10.5026 17.168ZM12.1693 13.0013V5.08464L16.3359 0.917969V9.2513L12.1693 13.0013ZM8.83594 14.3555V6.10547C8.3776 5.91102 7.90191 5.76172 7.40885 5.65755C6.9158 5.55339 6.41927 5.5013 5.91927 5.5013C5.40538 5.5013 4.90538 5.54991 4.41927 5.64714C3.93316 5.74436 3.46094 5.89019 3.0026 6.08464V14.3555C3.48872 14.1749 3.97135 14.043 4.45052 13.9596C4.92969 13.8763 5.41927 13.8346 5.91927 13.8346C6.41927 13.8346 6.90885 13.8763 7.38802 13.9596C7.86719 14.043 8.34983 14.1749 8.83594 14.3555Z" fill="#6F6F6F"/> </g> </svg>`; break; default: type_icon = ''; } } return html` <a href='${hit.url}'> <div class="hit-item"> <div class="hit-title"> ${components.Highlight({ hit, attribute: 'title' })} </div> <div class="hit-description"> ${components.Snippet({ hit, attribute: 'excerpt' })} </div> <div class="flex items-center space-x-7 mt-[--gap-11]"> <div class="hit-type">${type_icon}<span>${hit.type}</span></div> ${authorMarkup} </div> </div> </a> `}, }, }), ]); search.start(); //Init Algolia search }) document.addEventListener('alpine:init', () => { Alpine.data('algolia_box', () => ({ modal_show: false, init(){ console.log('[+] Algolia box init...'); this.$watch('modal_show', (value, oldValue) => { if(value){ document.getElementsByTagName('body')[0].style.overflow = 'hidden'; setTimeout(()=>{document.querySelector('.ais-SearchBox-input').focus();},200); }else{ document.getElementsByTagName('body')[0].style.overflow = ''; } }) } })) }) // Select the header and the sticky menu const skp_header_nav = document.getElementById('skeptic_header'); const skp_stickyMenu = document.getElementById('skp_sticky_menu'); // Create an Intersection Observer with rootMargin for pixel tolerance const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (!entry.isIntersecting) { // Header is out of the viewport, slide in the sticky menu skp_stickyMenu.style.transform = 'translateY(0)'; } else { // Header is in the viewport, hide the sticky menu skp_stickyMenu.style.transform = 'translateY(-100%)'; } }); }, { root: null, // Use the viewport as the root threshold: 0, // Trigger as soon as any part is out rootMargin: '0px 0px -250px 0px' // Add 150px tolerance }); // Start observing the header observer.observe(skp_header_nav); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10