1 2 3<!DOCTYPE html> 4<html lang="en" class="h-full"> 5<head> 6 <meta charset="UTF-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Follow - The Strange History Podcast</title> 9 10 11 12 13 <link rel="icon" type="image/x-icon" href="/static/images/favicon-theme.d917f31e4996.ico"> 14 <link rel="icon" type="image/png" sizes="32x32" href="/static/images/favicon-theme-32x32.dcf76f9c9512.png"> 15 <link rel="icon" type="image/png" href="/static/images/favicon-theme.250edd9f4eb9.png"> 16 <link rel="apple-touch-icon" href="/static/images/apple-touch-icon-theme.1c8f2d6e14fe.png"> 17 18 19 <!-- Google Fonts for theme typography --> 20 21 <link rel="preconnect" href="https://fonts.googleapis.com"> 22 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 23 <link href="https://fonts.googleapis.com/css2?family=DM%20Serif%20Display:wght@400;600;700&family=Work%20Sans:wght@400;500;600&display=swap" rel="stylesheet"> 24 25 26 <!-- Tailwind CSS (built from tailwind.config.js) --> 27 <link rel="stylesheet" href="/static/css/tailwind.7e32b469e897.css"> 28 29 <!-- Plyr (HLS video player chrome) â pinned-major CDN, matches hls.js/htmx/wavesurfer pattern. Plyr JS itself is lazy-loaded by hls-player.js only when a video exists. --> 30 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/plyr@3/dist/plyr.css"> 31 32 <!-- HTMX 2.x --> 33
33<script src="https://unpkg.com/[email protected]"></script>
33 34
34<script> 35 // Configure HTMX to include CSRF token in requests 36 document.addEventListener('htmx:configRequest', function(evt) { 37 const csrfToken = document.querySelector('[name=csrfmiddlewaretoken]')?.value 38 || document.cookie.split('; ').find(row => row.startsWith('csrftoken='))?.split('=')[1]; 39 if (csrfToken) { 40 evt.detail.headers['X-CSRFToken'] = csrfToken; 41 } 42 }); 43 </script>
43 44 45 46
46<script src="https://unpkg.com/[email protected]/dist/wavesurfer.min.js"></script>
46 47 48 <!-- Theme CSS variables and custom styles --> 49 <style> 50 :root { 51 --color-primary: #8B5CF6; 52 --color-secondary: #F97316; 53 --color-background: #111827; 54 --color-text: #F3F4F6; 55 --color-accent: #22D3EE; 56 --font-heading: 'DM Serif Display', serif; 57 --font-body: 'Work Sans', sans-serif; 58 } 59 [x-cloak] { display: none !important; } 60 body { 61 background-color: var(--color-background); 62 color: var(--color-text); 63 font-family: var(--font-body); 64 /* Break long unbreakable tokens (e.g. pasted URL runs in an episode 65 description) so they wrap instead of overflowing horizontally. 66 `anywhere` (not `break-word`) is required: it also shrinks the 67 token's min-content width, so a flex/grid column stops growing to 68 fit it. Inherited, so it applies to all theme text. */ 69 overflow-wrap: anywhere; 70 } 71 /* A failed image can paint its alt text outside the replaced element. 72 Keep the accessible alternative while containing its visual fallback. */ 73 img { overflow: hidden; } 74 h1, h2, h3, h4, h5, h6 { 75 font-family: var(--font-heading); 76 /* Headings opt DOWN from the body's `anywhere` to `break-word`. Both 77 still break a word that cannot fit, but `anywhere` also shrinks 78 min-content width, so a display heading in a flex/grid column got a 79 narrow column and then shattered mid-word: "TECH FOUNDER / S / 80 UNPLUGG / ED" on the arena hero. `break-word` leaves min-content 81 alone, so the column sizes to the longest word and only breaks as a 82 last resort. Body text keeps `anywhere` for pasted URL runs. */ 83 overflow-wrap: break-word; 84 } 85 86 /* Chaptered player - current chapter highlight */ 87 .chaptered-player [data-role="chapter-item"].is-current { 88 background: color-mix(in srgb, var(--color-primary) 12%, transparent); 89 } 90 .chaptered-player [data-role="chapter-item"].is-current > span:last-child { 91 color: var(--color-primary); 92 font-weight: 600; 93 } 94 95 /* Episode detail tabs (dramatic layout). Explicit .is-selected swap avoids 96 aria-selected: variant specificity ties with the base text color. */ 97 .episode-tab { 98 color: var(--color-text); 99 opacity: 0.55; 100 border-color: transparent; 101 } 102 .episode-tab:hover { 103 opacity: 0.85; 104 } 105 .episode-tab.is-selected { 106 color: var(--color-accent); 107 opacity: 1; 108 border-color: var(--color-accent); 109 } 110 111 /* Align Tailwind Typography (prose) with theme tokens. 112 RSS descriptions often come as loose text (no <p> wrappers), so the 113 prose container's own color must be the theme text color â otherwise 114 it falls back to the plugin's slate defaults and looks washed out. */ 115 .prose, 116 .prose.prose-invert { 117 --tw-prose-body: var(--color-text); 118 --tw-prose-headings: var(--color-text); 119 --tw-prose-lead: var(--color-text); 120 --tw-prose-links: var(--color-primary); 121 --tw-prose-bold: var(--color-text); 122 --tw-prose-counters: color-mix(in srgb, var(--color-text) 70%, var(--color-background)); 123 --tw-prose-bullets: color-mix(in srgb, var(--color-text) 50%, var(--color-background)); 124 --tw-prose-hr: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 125 --tw-prose-quotes: var(--color-text); 126 --tw-prose-quote-borders: var(--color-primary); 127 --tw-prose-captions: color-mix(in srgb, var(--color-text) 70%, var(--color-background)); 128 --tw-prose-code: var(--color-text); 129 --tw-prose-pre-code: var(--color-text); 130 --tw-prose-pre-bg: color-mix(in srgb, var(--color-background) 95%, var(--color-text)); 131 --tw-prose-th-borders: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 132 --tw-prose-td-borders: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 133 --tw-prose-invert-body: var(--color-text); 134 --tw-prose-invert-headings: var(--color-text); 135 --tw-prose-invert-lead: var(--color-text); 136 --tw-prose-invert-links: var(--color-primary); 137 --tw-prose-invert-bold: var(--color-text); 138 --tw-prose-invert-counters: color-mix(in srgb, var(--color-text) 70%, var(--color-background)); 139 --tw-prose-invert-bullets: color-mix(in srgb, var(--color-text) 50%, var(--color-background)); 140 --tw-prose-invert-hr: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 141 --tw-prose-invert-quotes: var(--color-text); 142 --tw-prose-invert-quote-borders: var(--color-primary); 143 --tw-prose-invert-captions: color-mix(in srgb, var(--color-text) 70%, var(--color-background)); 144 --tw-prose-invert-code: var(--color-text); 145 --tw-prose-invert-pre-code: var(--color-text); 146 --tw-prose-invert-pre-bg: color-mix(in srgb, var(--color-background) 95%, var(--color-text)); 147 --tw-prose-invert-th-borders: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 148 --tw-prose-invert-td-borders: color-mix(in srgb, var(--color-background) 85%, var(--color-text)); 149 font-family: var(--font-body); 150 } 151 .prose :where(h1, h2, h3, h4, h5, h6):not(:where([class~="not-prose"] *)) { 152 font-family: var(--font-heading); 153 } 154 155 156 157 </style> 158 159 160 161 162 163 164 165<link rel="canonical" href="https://strangehistorypod.com/"> 166 167 168 169<link rel="alternate" type="application/rss+xml" title="The Strange History Podcast" href="https://www.spreaker.com/show/5773362/episodes/feed"> 170 171 172 173 174<meta name="description" content="The Strange History Podcast explores the forgotten, bizarre, and mysterious stories that history left behind."> 175 176 177 178 179<meta property="og:type" content="website"> 180<meta property="og:site_name" content="The Strange History Podcast"> 181<meta property="og:title" content="The Strange History Podcast"> 182 183<meta property="og:description" content="The Strange History Podcast explores the forgotten, bizarre, and mysterious stories that history left behind."> 184 185 186<meta property="og:image" content="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/e6ba8897445c11735ef9cde1ad7a0aad.jpg"> 187<meta property="og:image:alt" content="The Strange History Podcast"> 188 189<meta property="og:url" content="https://strangehistorypod.com/"> 190<meta property="og:locale" content="en_US"> 191 192 193 194 195 196<meta name="twitter:card" content="summary_large_image"> 197<meta name="twitter:title" content="The Strange History Podcast"> 198 199<meta name="twitter:description" content="The Strange History Podcast explores the forgotten, bizarre, and mysterious stories that history left behind."> 200 201 202<meta name="twitter:image" content="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/e6ba8897445c11735ef9cde1ad7a0aad.jpg"> 203 204 205 206 207 208<meta name="apple-itunes-app" content="app-id=525463029"> 209 210 211 212
213<script type="application/ld+json"> 214{"@context": "https://schema.org", "@graph": [{"@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "The Strange History Podcast", "item": "https://strangehistorypod.com/"}, {"@type": "ListItem", "position": 2, "name": "Follow", "item": "https://strangehistorypod.com/follow/"}]}]} 215</script>
215 216 217 218 219 220 221 <meta name="robots" content="index, follow, max-image-preview:large"> 222 223 224 225 226 227</head> 228<body class="h-full antialiased"> 229 230 231 232 233 234 235 236 237 238 239 240 241 242 <div class="min-h-full"> 243 244 245 246 247 248 249 250 251<nav class="sticky top-[var(--owner-bar-height,0px)] z-50 border-b border-theme-border/70 bg-theme-surface/75 backdrop-blur-xl"> 252 <div class="mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3 sm:px-6 lg:px-8" data-nav-row="glass"> 253 <a href="/" class="inline-flex min-w-0 shrink items-center gap-2 text-theme-text transition hover:text-theme-primary md:max-w-xs md:shrink-0" data-nav-brand> 254 <img src="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/e6ba8897445c11735ef9cde1ad7a0aad.jpg" alt="The Strange History Podcast" class="h-8 w-auto max-w-48 object-contain"> 255 </a> 256 <div class="hidden shrink-0 items-center gap-1 md:flex"> 257 <a href="/" class="whitespace-nowrap rounded-full px-3 py-1.5 text-sm text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text">Home</a> 258 <a href="/episodes/" class="shrink-0 whitespace-nowrap rounded-full px-3 py-1.5 text-sm text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text" data-nav-inline-link>Episodes</a><a href="/about/" class="shrink-0 whitespace-nowrap rounded-full px-3 py-1.5 text-sm text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text" data-nav-inline-link>About</a><a href="/contact/" class="shrink-0 whitespace-nowrap rounded-full px-3 py-1.5 text-sm text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text" data-nav-inline-link>Contact</a><a href="/follow/" class="shrink-0 whitespace-nowrap rounded-full px-3 py-1.5 text-sm text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text" data-nav-inline-link>Follow</a> 259 </div> 260 <button type="button" id="glass-menu-toggle" class="flex h-11 w-11 shrink-0 items-center justify-center rounded-full border border-theme-border text-theme-text-muted transition hover:text-theme-text" aria-expanded="false" aria-controls="glass-menu-panel" aria-haspopup="dialog"> 261 <span class="sr-only">Open menu</span><svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="h-5 w-5"> 262 <path stroke-linecap="round" stroke-linejoin="round" d="M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z" /> 263</svg> 264 </button> 265 </div> 266</nav> 267 268 269<div id="glass-menu-overlay" class="fixed inset-0 z-[60] hidden" aria-hidden="true"> 270 <button type="button" class="absolute inset-0 bg-black/60 backdrop-blur-sm" data-nav-dismiss aria-label="Close navigation"></button> 271 <div id="glass-menu-panel" role="dialog" aria-modal="true" aria-label="Navigation" 272 class="absolute inset-x-0 bottom-0 flex max-h-[80vh] w-full translate-y-full flex-col overflow-hidden rounded-t-2xl border-t border-theme-border bg-theme-surface text-theme-text shadow-2xl transition-transform duration-200 md:inset-y-0 md:left-auto md:right-0 md:max-h-none md:w-96 md:translate-x-full md:translate-y-0 md:rounded-none md:border-l md:border-t-0"> 273 <div class="flex items-center justify-between gap-3 border-b border-theme-border px-5 py-4"> 274 <span class="min-w-0 truncate font-heading text-base font-bold text-theme-primary">The Strange History Podcast</span> 275 <button type="button" class="flex h-11 w-11 shrink-0 items-center justify-center rounded-full text-theme-text-muted transition hover:bg-theme-border/50 hover:text-theme-text" data-nav-dismiss aria-label="Close navigation"> 276 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="h-5 w-5"> 277 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /> 278</svg> 279 </button> 280 </div> 281 <div class="min-h-0 flex-1 overflow-y-auto overscroll-contain p-3"> 282 283 <a href="/" class="flex min-h-11 items-center rounded-lg px-4 py-3 text-base font-medium text-theme-text transition hover:bg-theme-border/50 md:hidden" data-nav-link> 284 Home 285 </a> 286 287 288 289 <a href="/episodes/" class="flex min-h-11 items-center rounded-lg px-4 py-3 text-base font-medium text-theme-text transition hover:bg-theme-border/50 md:hidden" data-nav-link data-nav-overflow-index="0"> 290 Episodes 291 </a> 292 293 294 295 <a href="/about/" class="flex min-h-11 items-center rounded-lg px-4 py-3 text-base font-medium text-theme-text transition hover:bg-theme-border/50 md:hidden" data-nav-link data-nav-overflow-index="1"> 296 About 297 </a> 298 299 300 301 <a href="/contact/" class="flex min-h-11 items-center rounded-lg px-4 py-3 text-base font-medium text-theme-text transition hover:bg-theme-border/50 md:hidden" data-nav-link data-nav-overflow-index="2"> 302 Contact 303 </a> 304 305 306 307 <a href="/follow/" class="flex min-h-11 items-center rounded-lg px-4 py-3 text-base font-medium text-theme-text transition hover:bg-theme-border/50 md:hidden" data-nav-link data-nav-overflow-index="3"> 308 Follow 309 </a> 310 311 312 </div> 313 </div> 314</div>
315<script> 316(function () { 317 const toggle = document.getElementById('glass-menu-toggle'); 318 const overlay = document.getElementById('glass-menu-overlay'); 319 const panel = document.getElementById('glass-menu-panel'); 320 const row = document.querySelector('[data-nav-row="glass"]'); 321 if (!toggle || !overlay || !panel || !row) return; 322 323 // The toggle carries `flex`, and an author-stylesheet class beats the UA's 324 // [hidden] rule â setting the hidden property leaves it on screen, opening an 325 // empty drawer. Inline style is the only form that wins here. 326 function setToggleVisible(visible) { 327 toggle.style.display = visible ? '' : 'none'; 328 } 329 330 function syncOverflow() { 331 const inlineLinks = [...row.querySelectorAll('[data-nav-inline-link]')]; 332 const overflowLinks = [...panel.querySelectorAll('[data-nav-overflow-index]')]; 333 inlineLinks.forEach((link) => { link.hidden = false; }); 334 overflowLinks.forEach((link) => { link.classList.add('md:hidden'); }); 335 336 if (!window.matchMedia('(min-width: 768px)').matches) { 337 setToggleVisible(true); 338 return; 339 } 340 341 setToggleVisible(false); 342 for (let index = inlineLinks.length - 1; row.scrollWidth > row.clientWidth && index >= 0; index -= 1) { 343 inlineLinks[index].hidden = true; 344 overflowLinks[index]?.classList.remove('md:hidden'); 345 setToggleVisible(true); 346 } 347 } 348 349 function openMenu() { 350 overlay.classList.remove('hidden'); 351 overlay.setAttribute('aria-hidden', 'false'); 352 toggle.setAttribute('aria-expanded', 'true'); 353 document.body.style.overflow = 'hidden'; 354 requestAnimationFrame(() => { 355 panel.classList.remove('translate-y-full'); 356 panel.classList.remove('md:translate-x-full'); 357 const firstVisibleLink = [...panel.querySelectorAll('[data-nav-link]')] 358 .find((link) => link.offsetParent !== null); 359 firstVisibleLink?.focus(); 360 }); 361 } 362 363 function closeMenu() { 364 panel.classList.add('translate-y-full'); 365 panel.classList.add('md:translate-x-full'); 366 toggle.setAttribute('aria-expanded', 'false'); 367 overlay.setAttribute('aria-hidden', 'true'); 368 document.body.style.overflow = ''; 369 window.setTimeout(() => overlay.classList.add('hidden'), 200); 370 toggle.focus(); 371 } 372 373 // The panel says aria-modal, so focus has to actually stay inside it. 374 function focusables() { 375 return [...panel.querySelectorAll('a[href], button')].filter((el) => el.offsetParent !== null); 376 } 377 378 toggle.addEventListener('click', openMenu); 379 overlay.querySelectorAll('[data-nav-dismiss]').forEach((element) => element.addEventListener('click', closeMenu)); 380 window.addEventListener('keydown', (event) => { 381 if (toggle.getAttribute('aria-expanded') !== 'true') return; 382 if (event.key === 'Escape') { 383 closeMenu(); 384 return; 385 } 386 if (event.key !== 'Tab') return; 387 388 const items = focusables(); 389 if (!items.length) return; 390 const first = items[0]; 391 const last = items[items.length - 1]; 392 if (!panel.contains(document.activeElement)) { 393 event.preventDefault(); 394 first.focus(); 395 } else if (event.shiftKey && document.activeElement === first) { 396 event.preventDefault(); 397 last.focus(); 398 } else if (!event.shiftKey && document.activeElement === last) { 399 event.preventDefault(); 400 first.focus(); 401 } 402 }); 403 // The Browse menu is a native <details>, so nothing closes it on its own: a 404 // click elsewhere, Escape, or a boosted page swap that keeps this nav in the 405 // DOM would all leave the panel hanging open over the new page. 406 function closeDropdowns(except) { 407 row.querySelectorAll('[data-nav-dropdown][open]').forEach((dropdown) => { 408 if (dropdown !== except) dropdown.open = false; 409 }); 410 } 411 412 document.addEventListener('click', (event) => { 413 const inside = event.target.closest?.('[data-nav-dropdown]'); 414 closeDropdowns(inside && row.contains(inside) ? inside : null); 415 }); 416 window.addEventListener('keydown', (event) => { 417 if (event.key !== 'Escape') return; 418 const open = row.querySelector('[data-nav-dropdown][open]'); 419 if (!open) return; 420 open.open = false;
421 open.querySelector('summary')?.focus(); 422 }); 423 document.body.addEventListener('htmx:beforeSwap', () => closeDropdowns(null)); 424 425 // Crossing a breakpoint can reveal links whose final font/image dimensions 426 // settle after the resize callback. Refit when the rendered row changes, 427 // including its children: the row itself can stay the same width while its 428 // links grow and push the menu button out of view. 429 let overflowFrame = null; 430 function scheduleOverflow() { 431 if (overflowFrame !== null) return; 432 overflowFrame = requestAnimationFrame(() => { 433 overflowFrame = null; 434 syncOverflow(); 435 }); 436 } 437 if (window.ResizeObserver) { 438 const observer = new ResizeObserver(scheduleOverflow); 439 observer.observe(row); 440 [...row.children].forEach((child) => observer.observe(child)); 441 } 442 window.addEventListener('resize', scheduleOverflow); 443 document.fonts?.addEventListener('loadingdone', scheduleOverflow); 444 document.fonts?.ready.then(scheduleOverflow); 445 syncOverflow(); 446})(); 447</script>
447 448 449 450<style data-pv-player-offset> 451 /* A FLOW SPACER, not `padding-bottom` on the body. `<body class="h-full">` is 452 `height: 100%` and Tailwind's preflight makes everything `border-box`, so 453 body padding is consumed by that fixed height and reserves exactly nothing â 454 the footer's last link sat under the bar with a 157px "reserve" in the 455 computed styles. Found in browser QA; it also silently defeated `floating`'s 456 own 6rem mobile clearance, which had shipped that way. A block-level ::after 457 is a real child in normal flow, so it extends the scrollable content. */ 458 body::after { 459 content: ""; 460 display: block; 461 height: var(--pv-player-offset, 0px); 462 /* Matches the bar's own 200ms rise, so the page does not jolt open under it. */ 463 transition: height 200ms ease-out; 464 } 465 @media (prefers-reduced-motion: reduce) { 466 body::after { transition: none; } 467 } 468 469</style> 470 471 472 473 474 475 476 <main id="pv-public-content" tabindex="-1"> 477 478<div class="mx-auto max-w-2xl px-4 py-12 sm:px-6 lg:px-8"> 479 <article class="bg-theme-surface rounded-xl shadow-sm border border-theme-border overflow-hidden"> 480 <div class="p-6 sm:p-8 text-center"> 481 482 483 484 485<img src="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/e6ba8897445c11735ef9cde1ad7a0aad.jpg" alt="The Strange History Podcast" width="512" height="512" loading="lazy" decoding="async" 486 class="h-32 w-32 rounded-xl shrink-0 object-cover mx-auto shadow-lg"> 487 488 489 490 491 492 493 <h1 class="mt-6 text-3xl font-bold text-theme-text font-heading">Follow The Strange History Podcast</h1> 494 <p class="mt-2 text-theme-text-muted"> 495 Subscribe to never miss an episode 496 </p> 497 498 499 500 <div class="mt-8 space-y-3"> 501 502 503<a href="https://podcasts.apple.com/podcast/id1668145478" target="_blank" rel="noopener" 504 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 505 <div class="flex items-center gap-4"> 506 507 508 509<img src="/static/images/platform-logos/apple.81fb483bafac.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 510 511 512 <span class="text-lg font-medium">Apple Podcasts</span> 513 </div> 514 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 515 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 516</svg> 517</a> 518 519 520 521<a href="https://castbox.fm/vic/1668145478" target="_blank" rel="noopener" 522 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 523 <div class="flex items-center gap-4"> 524 525 526 527<img src="/static/images/platform-logos/castbox.b6404094c983.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 528 529 530 <span class="text-lg font-medium">Castbox</span> 531 </div> 532 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 533 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 534</svg> 535</a> 536 537 538 539<a href="https://castro.fm/itunes/1668145478" target="_blank" rel="noopener" 540 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 541 <div class="flex items-center gap-4"> 542 543 544 545<img src="/static/images/platform-logos/castro.932428c9f6cf.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 546 547
548 <span class="text-lg font-medium">Castro</span> 549 </div> 550 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 551 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 552</svg> 553</a> 554 555 556 557<a href="https://www.goodpods.com/podcasts-aid/1668145478" target="_blank" rel="noopener" 558 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 559 <div class="flex items-center gap-4"> 560 561 562 563<img src="/static/images/platform-logos/goodpods.d8bfe98d88ce.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 564 565 566 <span class="text-lg font-medium">Goodpods</span> 567 </div> 568 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 569 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 570</svg> 571</a> 572 573 574 575<a href="https://moon.fm/itunes/1668145478" target="_blank" rel="noopener" 576 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 577 <div class="flex items-center gap-4"> 578 579 580 581<img src="/static/images/platform-logos/moonfm.993f7bbd4ed7.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 582 583 584 <span class="text-lg font-medium">Moon FM</span> 585 </div> 586 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 587 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 588</svg> 589</a> 590 591 592 593<a href="https://overcast.fm/itunes1668145478" target="_blank" rel="noopener" 594 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 595 <div class="flex items-center gap-4"> 596 597 598 599<img src="/static/images/platform-logos/overcast.7dd3d35b2224.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 600 601 602 <span class="text-lg font-medium">Overcast</span> 603 </div> 604 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 605 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 606</svg> 607</a> 608 609 610 611<a href="https://pca.st/itunes/1668145478" target="_blank" rel="noopener" 612 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 613 <div class="flex items-center gap-4"> 614 615 616 617<img src="/static/images/platform-logos/pocketcasts.7da8fbe40791.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 618 619 620 <span class="text-lg font-medium">Pocket Casts</span> 621 </div> 622 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 623 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 624</svg> 625</a> 626 627 628 629<a href="https://www.podbean.com/itunes/1668145478" target="_blank" rel="noopener" 630 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 631 <div class="flex items-center gap-4"> 632 633 634 635<img src="/static/images/platform-logos/podbean.53ea8dc2b09b.png" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 636 637
638 <span class="text-lg font-medium">Podbean</span> 639 </div> 640 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 641 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 642</svg> 643</a> 644 645 646 647<a href="https://podcastaddict.com/feed/https%3A%2F%2Fwww.spreaker.com%2Fshow%2F5773362%2Fepisodes%2Ffeed" target="_blank" rel="noopener" 648 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 649 <div class="flex items-center gap-4"> 650 651 652 653<img src="/static/images/platform-logos/podcastaddict.9deff13d511d.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 654 655 656 <span class="text-lg font-medium">Podcast Addict</span> 657 </div> 658 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 659 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 660</svg> 661</a> 662 663 664 665<a href="https://www.podcastrepublic.net/podcast/1668145478" target="_blank" rel="noopener" 666 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 667 <div class="flex items-center gap-4"> 668 669 670 671<img src="/static/images/platform-logos/podcastrepublic.a178b7a80b54.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 672 673 674 <span class="text-lg font-medium">Podcast Republic</span> 675 </div> 676 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 677 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 678</svg> 679</a> 680 681 682 683<a href="https://open.spotify.com/show/0rZxENLsTXyA0J60sP5N1z" target="_blank" rel="noopener" 684 class="flex items-center justify-between w-full px-6 py-4 rounded-lg bg-theme-bg border border-theme-border text-theme-text hover:border-theme-primary hover:bg-theme-primary/5 transition group"> 685 <div class="flex items-center gap-4"> 686 687 688 689<img src="/static/images/platform-logos/spotify.14dc2fed5342.svg" alt="" class="w-8 h-8 rounded-lg" loading="lazy"> 690 691 692 <span class="text-lg font-medium">Spotify</span> 693 </div> 694 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5 text-theme-text-muted group-hover:text-theme-primary transition"> 695 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /> 696</svg> 697</a> 698 699 700 </div> 701 702 703 704 705 <div class="mt-8 pt-8 border-t border-theme-border"> 706 <p class="text-sm text-theme-text-muted mb-3">Or subscribe via RSS</p> 707 <a href="https://www.spreaker.com/show/5773362/episodes/feed" target="_blank" rel="noopener" 708 class="tap-target-mobile inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-orange-500/10 text-orange-600 hover:bg-orange-500/20 transition"> 709 <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="24" height="24" class="w-5 h-5"> 710 <path fill-rule="evenodd" d="M3.75 4.5a.75.75 0 0 1 .75-.75h.75c8.284 0 15 6.716 15 15v.75a.75.75 0 0 1-.75.75h-.75a.75.75 0 0 1-.75-.75v-.75C18 11.708 12.292 6 5.25 6H4.5a.75.75 0 0 1-.75-.75V4.5Zm0 6.75a.75.75 0 0 1 .75-.75h.75a8.25 8.25 0 0 1 8.25 8.25v.75a.75.75 0 0 1-.75.75H12a.75.75 0 0 1-.75-.75v-.75a6 6 0 0 0-6-6H4.5a.75.75 0 0 1-.75-.75v-.75Zm0 7.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z" clip-rule="evenodd" /> 711</svg> 712 RSS Feed 713 </a> 714 </div> 715 716 </div> 717 </article> 718</div> 719 720 721 722 723 724 725 726 727 728 729 730 731 </main> 732 733 734 735 736 737 738 739 740 741<footer class="relative mt-auto overflow-hidden border-t border-theme-border bg-theme-surface"> 742 <div class="pointer-events-none absolute inset-x-0 top-0 h-px bg-theme-primary/40" aria-hidden="true"></div> 743 744 <div class="relative mx-auto max-w-5xl px-4 py-16 sm:px-6 lg:px-8"> 745 746 <div class="text-center"> 747 <p class="font-heading text-4xl font-bold leading-[1.05] tracking-tight text-theme-text sm:text-5xl"> 748 The Strange History Podcast 749 </p> 750 <p class="mx-auto mt-4 max-w-xl text-sm leading-relaxed text-theme-text-muted sm:text-base"> 751 The Strange History Podcast explores the forgotten, bizarre, and mysterious stories that history left behind. Each episode uncovers strange but true tales from the pastâunsolved mysteries, unusual events, ⦠752 </p> 753 754 </div> 755 756 757 <nav class="mt-10 flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm font-medium"> 758 <a href="/" class="tap-target-mobile text-theme-text transition-colors hover:text-theme-primary">Home</a>
759 <span aria-hidden="true" class="hidden h-3 w-px bg-theme-border sm:block"></span><a href="/episodes/" class="tap-target-mobile text-theme-text transition-colors hover:text-theme-primary">Episodes</a> 760 <span aria-hidden="true" class="hidden h-3 w-px bg-theme-border sm:block"></span><a href="/about/" class="tap-target-mobile text-theme-text transition-colors hover:text-theme-primary">About</a> 761 <span aria-hidden="true" class="hidden h-3 w-px bg-theme-border sm:block"></span><a href="/follow/" class="tap-target-mobile text-theme-text transition-colors hover:text-theme-primary">Follow</a> 762 763 764 765 766 </nav> 767 768 769 770 <div class="mt-8 flex flex-wrap items-center justify-center gap-2"> 771 772 <a href="https://podcasts.apple.com/podcast/id1668145478" target="_blank" rel="noopener" 773 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 774 775 776 777<img src="/static/images/platform-logos/apple.81fb483bafac.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 778 779 780 <span>Apple Podcasts</span> 781 </a> 782 783 <a href="https://castbox.fm/vic/1668145478" target="_blank" rel="noopener" 784 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 785 786 787 788<img src="/static/images/platform-logos/castbox.b6404094c983.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 789 790 791 <span>Castbox</span> 792 </a> 793 794 <a href="https://castro.fm/itunes/1668145478" target="_blank" rel="noopener" 795 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 796 797 798 799<img src="/static/images/platform-logos/castro.932428c9f6cf.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 800 801 802 <span>Castro</span> 803 </a> 804 805 <a href="https://www.goodpods.com/podcasts-aid/1668145478" target="_blank" rel="noopener" 806 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 807 808 809 810<img src="/static/images/platform-logos/goodpods.d8bfe98d88ce.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 811 812 813 <span>Goodpods</span> 814 </a> 815 816 <a href="https://moon.fm/itunes/1668145478" target="_blank" rel="noopener" 817 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 818 819 820 821<img src="/static/images/platform-logos/moonfm.993f7bbd4ed7.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 822 823 824 <span>Moon FM</span> 825 </a> 826 827 <a href="https://overcast.fm/itunes1668145478" target="_blank" rel="noopener" 828 class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg/50 px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 829 830 831 832<img src="/static/images/platform-logos/overcast.7dd3d35b2224.svg" alt="" class="w-3.5 h-3.5 rounded shrink-0" loading="lazy"> 833 834 835 <span>Overcast</span> 836 </a> 837 838 839 840<a href="/follow/" class="tap-target-mobile inline-flex items-center gap-1.5 rounded-full border border-theme-border bg-theme-bg px-3 py-1.5 text-xs text-theme-text-muted transition-colors hover:border-theme-primary hover:text-theme-primary"> 841 <span>All listening apps</span> 842 <svg fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" width="24" height="24" class="h-3.5 w-3.5 shrink-0"> 843 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 844</svg> 845</a> 846 847 848 </div> 849 850 851 852 853 854 855 856 </div> 857 858 859 <div class="relative border-t border-theme-border bg-theme-bg"> 860 <div class="mx-auto flex max-w-7xl flex-col items-start justify-between gap-2 px-4 py-4 text-xs text-theme-text-subtle sm:flex-row sm:items-center sm:px-6 lg:px-8"> 861 862 863 864 865<p>© The Strange History Podcast. 866 867 868 869 870 871Powered by <a href="https://podview.com/?ref=site&s=thestrangehistorypodcast" class="text-theme-primary hover:opacity-80 transition">PodView</a>. <a href="https://podseo.com/?ref=site&s=thestrangehistorypodcast" class="text-theme-primary hover:opacity-80 transition">Get Podcast SEO</a> 872</p> 873<a href="/privacy/" class="tap-target-mobile hover:text-theme-primary transition">Privacy Policy</a> 874 875 </div> 876 </div> 877</footer> 878 879 880 881 </div> 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899<div id="pv-showcase-modal" hidden role="dialog" aria-modal="true" aria-labelledby="pv-showcase-modal-title"> 900 <style> 901 #pv-showcase-modal[hidden] { display: none !important; } 902 #pv-showcase-modal { 903 position: fixed; inset: 0; z-index: 2147483000; 904 display: flex; align-items: center; justify-content: center; 905 background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); 906 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 907 animation: pv-fade-in 240ms ease-out; 908 } 909 @keyframes pv-fade-in { from { opacity: 0; } to { opacity: 1; } } 910 @keyframes pv-pop-in { 911 from { opacity: 0; transform: translateY(20px) scale(0.96); } 912 to { opacity: 1; transform: translateY(0) scale(1); } 913 } 914 #pv-showcase-modal .pv-card { 915 position: relative; 916 max-width: 440px; width: calc(100% - 32px); 917 background: #ffffff; color: #111827; 918 border-radius: 16px; padding: 32px 28px 28px; 919 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3); 920 animation: pv-pop-in 280ms cubic-bezier(0.16, 1, 0.3, 1); 921 } 922 #pv-showcase-modal .pv-close { 923 position: absolute; top: 12px; right: 12px; 924 width: 32px; height: 32px; border: 0; border-radius: 50%; 925 background: transparent; cursor: pointer; color: #6b7280; 926 font-size: 20px; line-height: 1; display: flex; 927 align-items: center; justify-content: center; 928 } 929 #pv-showcase-modal .pv-close:hover { background: #f3f4f6; color: #111827; } 930 #pv-showcase-modal .pv-eyebrow { 931 font-size: 11px; font-weight: 700; letter-spacing: 0.08em; 932 text-transform: uppercase; color: #f97316; margin-bottom: 12px; 933 } 934 #pv-showcase-modal h2 { 935 margin: 0 0 12px; font-size: 24px; font-weight: 700; 936 line-height: 1.2; color: #111827; 937 } 938 #pv-showcase-modal p { 939 margin: 0 0 24px; font-size: 15px; line-height: 1.55; 940 color: #4b5563; 941 } 942 #pv-showcase-modal .pv-cta { 943 display: inline-flex; align-items: center; justify-content: center; 944 width: 100%; padding: 14px 20px; 945 background: #f97316; color: #fff; 946 border-radius: 10px; text-decoration: none; 947 font-size: 15px; font-weight: 600; 948 transition: background 160ms ease; 949 } 950 #pv-showcase-modal .pv-cta:hover { background: #ea580c; } 951 #pv-showcase-modal .pv-fineprint { 952 margin-top: 14px; font-size: 12px; color: #9ca3af; text-align: center; 953 } 954 </style> 955 <div class="pv-card" role="document"> 956 <button type="button" class="pv-close" aria-label="Close" data-pv-dismiss>×</button> 957 <div class="pv-eyebrow">Built with PodView</div> 958 <h2 id="pv-showcase-modal-title">Want a podcast site like this?</h2> 959 <p>
959Build your own in under 5 minutes. Preview before you sign up â no credit card needed.</p> 960 <a class="pv-cta" 961 href="https://podview.com/onboarding/get-started/?utm_source=podview&utm_medium=showcase_modal&utm_campaign=showcase" 962 data-pv-cta 963 rel="noopener"> 964 Create your free site → 965 </a> 966 <div class="pv-fineprint">Powered by PodView</div> 967 </div> 968</div>
969<script> 970(function () { 971 var STORAGE_KEY = "pv_showcase_modal_seen"; 972 var DELAY_MS = 25000; 973 var SCROLL_THRESHOLD = 0.5; 974 975 try { 976 var params = new URLSearchParams(window.location.search); 977 if (params.get("ref") !== "showcase") return; 978 if (window.localStorage && window.localStorage.getItem(STORAGE_KEY)) return; 979 } catch (e) { 980 return; 981 } 982 983 var modal = document.getElementById("pv-showcase-modal"); 984 if (!modal) return; 985 986 var shown = false; 987 function show() { 988 if (shown) return; 989 shown = true; 990 modal.hidden = false; 991 document.body.style.overflow = "hidden"; 992 try { window.localStorage.setItem(STORAGE_KEY, "1"); } catch (e) {} 993 } 994 function dismiss() { 995 modal.hidden = true; 996 document.body.style.overflow = ""; 997 window.removeEventListener("scroll", onScroll); 998 window.removeEventListener("keydown", onKey); 999 if (timer) clearTimeout(timer); 1000 } 1001 function onScroll() { 1002 var top = window.pageYOffset || document.documentElement.scrollTop; 1003 var docH = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) - window.innerHeight; 1004 if (docH > 0 && top / docH >= SCROLL_THRESHOLD) show(); 1005 } 1006 function onKey(e) { if (e.key === "Escape") dismiss(); } 1007 1008 modal.addEventListener("click", function (e) { 1009 if (e.target === modal) dismiss(); 1010 if (e.target.closest("[data-pv-dismiss]")) dismiss(); 1011 if (e.target.closest("[data-pv-cta]")) { 1012 // Keep the modal flag set; visitor heading off-site. 1013 try { window.localStorage.setItem(STORAGE_KEY, "1"); } catch (err) {} 1014 } 1015 }); 1016 1017 var timer = setTimeout(show, DELAY_MS); 1018 window.addEventListener("scroll", onScroll, { passive: true }); 1019 window.addEventListener("keydown", onKey); 1020})(); 1021</script>
1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 <p class="sr-only" aria-live="polite" data-pv-route-announce></p> 1031 1032
1032<script src="/static/js/transcript-toggle.2caf56525409.js"></script>
1032 1033
1033<script src="/static/js/pv-boost-nav.2f011fe57dd9.js" defer></script>
1033 1034
1034<script src="/static/js/chapter_seek.df6e32ab809f.js" defer></script>
1034 1035
1035<script src="/static/js/chaptered_player.20b62baf4764.js" defer></script>
1035 1036
1036<script src="/static/js/hls-player.7e1cd4eb69de.js" defer></script>
1036 1037
1037<script src="/static/js/episode_tabs.a0e8bc4376fd.js" defer></script>
1037 1038
1038<script src="/static/js/host-player.a243d8a07ae2.js" defer></script>
1038 1039
1039<script src="/static/js/pv-hero-motion.2f219bb77669.js" defer></script>
1039 1040 1041 <!-- email-signup-guard-hydrator:start --> 1042 <template id="email-signup-bot-fields-template"> 1043 1044<!-- email-signup-bot-fields:start --> 1045<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;"> 1046 <label> 1047 Website 1048 <input type="text" 1049 name="website" 1050 value="" 1051 tabindex="-1" 1052 autocomplete="off"> 1053 </label> 1054</div> 1055<input type="hidden" name="signup_timing_token" value="eyJpc3N1ZWRfYXQiOjE3OTEwODkzNjYuNzA5OTI5N30:1xDEAA:KpTn1aq71t1J3P_CjXX19jBBUlEMBoO019rzQxTDTpY"> 1056 1057<input type="hidden" name="cf-turnstile-response" value=""> 1058 1059<iframe class="email-signup-turnstile-frame" 1060 data-src="https://podview.com/_turnstile/email-signup/?embed=Imh0dHBzOi8vc3RyYW5nZWhpc3Rvcnlwb2QuY29tIg%3A1xDEAA%3A1I9AAGaLYpc08bidtO4O7t6g_ziz0sHJ8Ndxzc6685I" 1061 title="Security verification" 1062 scrolling="no" 1063 style="position:absolute;width:1px;height:1px;border:0;clip-path:inset(50%);overflow:hidden;"></iframe> 1064 1065<p class="email-signup-challenge-error w-full text-xs text-theme-text-muted" role="alert" hidden>Verification couldn't load. Please refresh and try again.</p> 1066 1067<!-- email-signup-bot-fields:end --> 1068 1069 </template> 1070
1070<script src="/static/js/email-signup-guards.2dfe65de62dc.js"></script>
1070 1071 <!-- email-signup-guard-hydrator:end --> 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
1100<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4518f5d7bd77ce0',t:'MTc5MTA4OTM2Ng=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
1100<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"512eef4f250244daad5aa4c2fdbacceb","r":1,"spa":2}' crossorigin="anonymous"></script>
1100 1101</body> 1102</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.