PageSourceSearch

https://douglaswolk.com/all-of-the-marvels/

html douglaswolk.com collected 2026-10-08 20:02:12 UTC 54,450 bytes, 477 lines download raw bytes

1<!DOCTYPE html>
2
3<html lang="en-US">
4
5<head>
6	<title>All of the Marvels &#8211; Douglas Wolk</title>
7<meta name='robots' content='max-image-preview:large' />
8<meta charset="UTF-8" />
9<meta name="viewport" content="width=device-width, initial-scale=1" />
10<meta name="template" content="Author 1.57" />
11<link rel='dns-prefetch' href='//fonts.googleapis.com' />
12<link rel="alternate" type="application/rss+xml" title="Douglas Wolk &raquo; Feed" href="https://douglaswolk.com/feed/" />
13<link rel="alternate" type="application/rss+xml" title="Douglas Wolk &raquo; Comments Feed" href="https://douglaswolk.com/comments/feed/" />
14<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://douglaswolk.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdouglaswolk.com%2Fall-of-the-marvels%2F" />
15<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://douglaswolk.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdouglaswolk.com%2Fall-of-the-marvels%2F&#038;format=xml" />
16<style id="wp-img-auto-sizes-contain-inline-css">
17img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
18/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
19</style>
20<style id="wp-emoji-styles-inline-css">
21
22	img.wp-smiley, img.emoji {
23		display: inline !important;
24		border: none !important;
25		box-shadow: none !important;
26		height: 1em !important;
27		width: 1em !important;
28		margin: 0 0.07em !important;
29		vertical-align: -0.1em !important;
30		background: none !important;
31		padding: 0 !important;
32	}
33/*# sourceURL=wp-emoji-styles-inline-css */
34</style>
35<style id="wp-block-library-inline-css">
36:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
36--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
37
38/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
39</style>
40<style id="wp-block-image-inline-css">
41.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
41cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
41@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
42/*# sourceURL=https://douglaswolk.com/wp-includes/blocks/image/style.min.css */
43</style>
44<style id="wp-block-paragraph-inline-css">
45.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
46/*# sourceURL=https://douglaswolk.com/wp-includes/blocks/paragraph/style.min.css */
47</style>
48<style id="wp-block-search-inline-css">
49.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
50/*# sourceURL=https://douglaswolk.com/wp-includes/blocks/search/style.min.css */
51</style>
52<style id="wp-block-group-inline-css">
53.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}
54/*# sourceURL=https://douglaswolk.com/wp-includes/blocks/group/style.min.css */
55</style>
56
57<style id="classic-theme-styles-inline-css">
58/*! This file is auto-generated */
59.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;
59padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
60/*# sourceURL=/wp-includes/css/classic-themes.min.css */
61</style>
62
63<style id="global-styles-inline-css">
64:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
64--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 12px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 21px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--regular: 16px;--wp--preset--font-size--larger: 37px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
64.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-regular-font-size{font-size: var(--wp--preset--font-size--regular) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}
65/*# sourceURL=global-styles-inline-css */
66</style>
67
68<link rel='stylesheet' id='ct-author-google-fonts-css' href='//fonts.googleapis.com/css?family=Rokkitt%3A400%2C700%7CLato%3A400%2C700&#038;subset=latin%2Clatin-ext&#038;display=swap&#038;ver=7.1.3' media='all' />
69<link rel='stylesheet' id='ct-author-font-awesome-css' href='https://douglaswolk.com/wp-content/themes/author/assets/font-awesome/css/all.min.css?ver=7.1.3' media='all' />
70<link rel='stylesheet' id='ct-author-style-css' href='https://douglaswolk.com/wp-content/themes/author/style.css?ver=7.1.3' media='all' />
71<script id="jquery-core-js" src="https://douglaswolk.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 71
71
72<script id="jquery-migrate-js" src="https://douglaswolk.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
72
73<link rel="https://api.w.org/" href="https://douglaswolk.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://douglaswolk.com/wp-json/wp/v2/pages/46" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://douglaswolk.com/xmlrpc.php?rsd" />
74<link rel="canonical" href="https://douglaswolk.com/all-of-the-marvels/" />
75<link rel='shortlink' href='https://douglaswolk.com/?p=46' />
76<link rel="icon" href="https://douglaswolk.com/wp-content/uploads/2021/10/cropped-brick4-32x32.jpg" sizes="32x32" />
77<link rel="icon" href="https://douglaswolk.com/wp-content/uploads/2021/10/cropped-brick4-192x192.jpg" sizes="192x192" />
78<link rel="apple-touch-icon" href="https://douglaswolk.com/wp-content/uploads/2021/10/cropped-brick4-180x180.jpg" />
79<meta name="msapplication-TileImage" content="https://douglaswolk.com/wp-content/uploads/2021/10/cropped-brick4-270x270.jpg" />
80</head>
81
82<body id="author" class="wp-singular page-template-default page page-id-46 wp-theme-author singular singular-page singular-page-46">
83			<a class="skip-content" href="#main">Skip to content</a>
84		<div id="overflow-container" class="overflow-container">
85			<div class="max-width">
86				<div id="main-sidebar" class="main-sidebar">
87																<header class="site-header" id="site-header" role="banner">
88							<div id="title-container" class="title-container">
89																<div class="container">
90									<div id='site-title' class='site-title'><a href='https://douglaswolk.com'><span class='screen-reader-text'>Douglas Wolk</span><img class='logo' src='http://douglaswolk.com/wp-content/uploads/2021/10/ddwsquare.jpg' alt='Douglas Wolk' /></a></div>									<p class="tagline">writes things</p>								</div>
91							</div>
92							<button id="toggle-navigation" class="toggle-navigation" aria-expanded="false">
93								<span class="screen-reader-text">open primary menu</span>
94								<i class="fas fa-bars"></i>
95							</button>
96							<div class='social-media-icons'><ul>						<li>
97							<a class="twitter" target="_blank"
98							   href="https://twitter.com/douglaswolk" 
99                               >
100								<i class="fab fa-square-x-twitter"></i>
101								<span class="screen-reader-text">twitter</span>
102															</a>
103						</li>
104						</ul></div>							<div id="menu-primary" class="menu-container menu-primary" role="navigation">
105	<nav class="menu"><ul id="menu-primary-items" class="menu-primary-items"><li id="menu-item-49" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-46 current_page_item menu-item-49"><a href="https://douglaswolk.com/all-of-the-marvels/" aria-current="page">All of the Marvels</a></li>
106<li id="menu-item-33" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33"><a href="https://douglaswolk.com/press-and-reviews/">Press and Reviews</a></li>
107<li id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65"><a href="https://douglaswolk.com/online-work/">Online Work</a></li>
108<li id="menu-item-51" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51"><a href="https://douglaswolk.com/other-projects/">Other Projects</a></li>
109<li id="menu-item-108" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108"><a href="https://douglaswolk.com/buy-my-books/">Buy My Books</a></li>
110<li id="menu-item-57" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57"><a href="https://douglaswolk.com/about/">About</a></li>
111<li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41"><a href="https://douglaswolk.com/contact/">Contact</a></li>
112</ul></nav></div>						</header>
113																<aside class="sidebar sidebar-primary" id="sidebar-primary" role="complementary">
114		<h1 class="screen-reader-text">Sidebar</h1>
115		<section id="block-2" class="widget widget_block widget_search"><form role="search" method="get" action="https://douglaswolk.com/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></section><section id="block-3" class="widget widget_block">
116<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"></div></div>
117</section>	</aside>
118									</div>
119								<section id="main" class="main" role="main">
120						<div id="loop-container" class="loop-container">
121		<div class="post-46 page type-page status-publish hentry entry">
122			<article>
123		<div class='post-header'>
124			<h1 class='post-title'>All of the Marvels</h1>
125		</div>
126		<div class="post-content">
127			
128<p class="wp-block-paragraph"><em>All of the Marvels</em> is my most recent book: a guided tour of 27,000 Marvel superhero comic books and what they look like as a single narrative. You can read the first few pages of the first chapter <a href="https://ew.com/books/all-of-the-marvels-douglas-wolk-excerpt/" data-type="URL" data-id="https://ew.com/books/all-of-the-marvels-douglas-wolk-excerpt/" target="_blank" rel="noreferrer noopener">at EW.com</a>.</p>
129
130
131
132<p class="wp-block-paragraph"><a rel="noreferrer noopener" href="https://www.penguinrandomhouse.com/books/549063/all-of-the-marvels-by-douglas-wolk/" data-type="URL" data-id="https://www.penguinrandomhouse.com/books/549063/all-of-the-marvels-by-douglas-wolk/" target="_blank">Penguin Random House</a> published the U.S. edition on October 12, 2021. You can <a href="https://bookshop.org/books/all-of-the-marvels-a-journey-to-the-ends-of-the-biggest-story-ever-told/9780735222168?aid=63702&amp;listref=douglas-wolk-s-booklist" data-type="URL" data-id="https://bookshop.org/books/all-of-the-marvels-a-journey-to-the-ends-of-the-biggest-story-ever-told/9780735222168?aid=63702&amp;listref=douglas-wolk-s-booklist">buy it here</a>! (That&#8217;s my affiliate link; I get a commission from them.)</p>
133
134
135<p>      
135<script
136      src="https://bookshop.org/widgets.js"
137      data-type="book_button" 
138      data-affiliate-id="63702" 
139      data-sku="9780735222168"></script>
139      </p>
140
141
142
143<p class="wp-block-paragraph">I also narrated the <a rel="noreferrer noopener" href="https://www.penguinrandomhouseaudio.com/book/549063/all-of-the-marvels/" data-type="URL" data-id="https://www.penguinrandomhouseaudio.com/book/549063/all-of-the-marvels/" target="_blank">audiobook version</a>.</p>
144
145
146
147<p class="wp-block-paragraph"><a rel="noreferrer noopener" href="https://profilebooks.com/work/all-of-the-marvels/" data-type="URL" data-id="https://profilebooks.com/work/all-of-the-marvels/" target="_blank">Profile Books</a> published the U.K. edition on October 7, 2021.</p>
148
149
150
151<figure class="wp-block-image size-large is-style-default"><img fetchpriority="high" decoding="async" width="674" height="1024" src="https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-674x1024.jpg" alt="" class="wp-image-75" srcset="https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-674x1024.jpg 674w, https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-197x300.jpg 197w, https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-768x1167.jpg 768w, https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-1011x1536.jpg 1011w, https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-1347x2048.jpg 1347w, https://douglaswolk.com/wp-content/uploads/2021/10/aotm-front-cover-scaled.jpg 1684w" sizes="(max-width: 674px) 100vw, 674px" /></figure>
152					</div>
153	</article>
154		</div>	</div>
155</section><!-- .main -->
156    <footer class="site-footer" role="contentinfo">
157                <div class="design-credit">
158            <span>
159                <a href="https://www.competethemes.com/author/" rel="nofollow">Author WordPress Theme</a> by Compete Themes            </span>
160        </div>
161    </footer>
162</div><!-- .max-width -->
163</div><!-- .overflow-container -->
164<script type="speculationrules">
165{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/author/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
166</script>
166
167        
167<script id="independent-analytics-script"   >
168            // Do not change this comment line otherwise Speed Optimizer won't be able to detect this script
169
170            (function () {
171                function sendRequest(url, body) {
172                    if(!window.fetch) {
173                        const xhr = new XMLHttpRequest();
174                        xhr.open("POST", url, true);
175                        xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
176                        xhr.send(JSON.stringify(body))
177                        return
178                    }
179
180                    const request = fetch(url, {
181                        method: 'POST',
182                        body: JSON.stringify(body),
183                        keepalive: true,
184                        headers: {
185                            'Content-Type': 'application/json;charset=UTF-8'
186                        }
187                    });
188                }
189                const calculateParentDistance = (child, parent) => {
190                    let count = 0;
191                    let currentElement = child;
192
193                    // Traverse up the DOM tree until we reach parent or the top of the DOM
194                    while (currentElement && currentElement !== parent) {
195                        currentElement = currentElement.parentNode;
196                        count++;
197                    }
198
199                    // If parent was not found in the hierarchy, return -1
200                    if (!currentElement) {
201                        return -1; // Indicates parent is not an ancestor of element
202                    }
203
204                    return count; // Number of layers between element and parent
205                }
206                const isMatchingClass = (linkRule, href, classes, ids) => {
207                    return classes.includes(linkRule.value)
208                }
209                const isMatchingId = (linkRule, href, classes, ids) => {
210                    return ids.includes(linkRule.value)
211                }
212                const isMatchingDomain = (linkRule, href, classes, ids) => {
213                    if(!URL.canParse(href)) {
214                        return false
215                    }
216
217                    const url = new URL(href)
218                    const host = url.host
219                    const hostsToMatch = [host]
220
221                    if(host.startsWith('www.')) {
222                        hostsToMatch.push(host.substring(4))
223                    } else {
224                        hostsToMatch.push('www.' + host)
225                    }
226
227                    return hostsToMatch.includes(linkRule.value)
228                }
229                const isMatchingExtension = (linkRule, href, classes, ids) => {
230                    if(!URL.canParse(href)) {
231                        return false
232                    }
233
234                    const url = new URL(href)
235
236                    return url.pathname.endsWith('.' + linkRule.value)
237                }
238                const isMatchingSubdirectory = (linkRule, href, classes, ids) => {
239                    if(!URL.canParse(href)) {
240                        return false
241                    }
242
243                    const url = new URL(href)
244
245                    return url.pathname.startsWith('/' + linkRule.value + '/')
246                }
247                const isMatchingProtocol = (linkRule, href, classes, ids) => {
248                    if(!URL.canParse(href)) {
249                        return false
250                    }
251
252                    const url = new URL(href)
253
254                    return url.protocol === linkRule.value + ':'
255                }
256                const isMatchingExternal = (linkRule, href, classes, ids) => {
257                    if(!URL.canParse(href) || !URL.canParse(document.location.href)) {
258                        return false
259                    }
260
261                    const matchingProtocols = ['http:', 'https:']
262                    const siteUrl = new URL(document.location.href)
263                    const linkUrl = new URL(href)
264
265                    // Links to subdomains will appear to be external matches according to JavaScript,
266                    // but the PHP rules will filter those events out.
267                    return matchingProtocols.includes(linkUrl.protocol) && siteUrl.host !== linkUrl.host
268                }
269                const isMatch = (linkRule, href, classes, ids) => {
270                    switch (linkRule.type) {
271                        case 'class':
272                            return isMatchingClass(linkRule, href, classes, ids)
273                        case 'id':
274                            return isMatchingId(linkRule, href, classes, ids)
275                        case 'domain':
276                            return isMatchingDomain(linkRule, href, classes, ids)
277                        case 'extension':
278                            return isMatchingExtension(linkRule, href, classes, ids)
279                        case 'subdirectory':
280                            return isMatchingSubdirectory(linkRule, href, classes, ids)
281                        case 'protocol':
282                            return isMatchingProtocol(linkRule, href, classes, ids)
283                        case 'external':
284                            return isMatchingExternal(linkRule, href, classes, ids)
285                        default:
286                            return false;
287                    }
288                }
289                const track = (element) => {
290                    const href = element.href ?? null
291                    const classes = Array.from(element.classList)
292                    const ids = [element.id]
293                    const linkRules = [{"type":"extension","value":"pdf"},{"type":"extension","value":"zip"},{"type":"protocol","value":"mailto"},{"type":"protocol","value":"tel"}]
294                    if(linkRules.length === 0) {
295                        return
296                    }
297
298                    // For link rules that target an id, we need to allow that id to appear
299                    // in any ancestor up to the 7th ancestor. This loop looks for those matches
300                    // and counts them.
301                    linkRules.forEach((linkRule) => {
302                        if(linkRule.type !== 'id') {
303                            return;
304                        }
305
306                        const matchingAncestor = element.closest('#' + linkRule.value)
307
308                        if(!matchingAncestor || matchingAncestor.matches('html, body')) {
309                            return;
310                        }
311
312                        const depth = calculateParentDistance(element, matchingAncestor)
313
314                        if(depth < 7) {
315                            ids.push(linkRule.value)
316                        }
317                    });
318
319                    // For link rules that target a class, we need to allow that class to appear
320                    // in any ancestor up to the 7th ancestor. This loop looks for those matches
321                    // and counts them.
322                    linkRules.forEach((linkRule) => {
323                        if(linkRule.type !== 'class') {
324                            return;
325                        }
326
327                        const matchingAncestor = element.closest('.' + linkRule.value)
328
329                        if(!matchingAncestor || matchingAncestor.matches('html, body')) {
330                            return;
331                        }
332
333                        const depth = calculateParentDistance(element, matchingAncestor)
334
335                        if(depth < 7) {
336                            classes.push(linkRule.value)
337                        }
338                    });
339
340                    const hasMatch = linkRules.some((linkRule) => {
341                        return isMatch(linkRule, href, classes, ids)
342                    })
343
344                    if(!hasMatch) {
345                        return
346                    }
347
348                    const url = "https://douglaswolk.com/wp-content/plugins/independent-analytics/iawp-click-endpoint.php";
349                    const body = {
350                        href: href,
351                        classes: classes.join(' '),
352                        ids: ids.join(' '),
353                        ...{"payload":{"resource":"singular","singular_id":46,"page":1},"signature":"292259734c1a7a527a0d7c325176a97a"}                    };
354
355                    sendRequest(url, body)
356                }
357                let hasSearched = false;
358                function search() {
359                    if(hasSearched) {
360                        return;
361                    }
362                    hasSearched = true;
363
364                    if (document.hasOwnProperty("visibilityState") && document.visibilityState === "prerender") {
365                        return;
366                    }
367
368                                            if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
369                            return;
370                        }
371                    
372                    let referrer_url = null;
373
374                    if (typeof document.referrer === 'string' && document.referrer.length > 0) {
375                        referrer_url = document.referrer;
376                    }
377
378                    const params = location.search.slice(1).split('&').reduce((acc, s) => {
379                        const [k, v] = s.split('=');
380                        return Object.assign(acc, {[k]: v});
381                    }, {});
382
383                    const url = "https://douglaswolk.com/wp-json/iawp/search";
384                    const body = {
385                        referrer_url,
386                        utm_source: params.utm_source,
387                        utm_medium: params.utm_medium,
388                        utm_campaign: params.utm_campaign,
389                        utm_term: params.utm_term,
390                        utm_content: params.utm_content,
391                        gclid: params.gclid,
392                        ...{"payload":{"resource":"singular","singular_id":46,"page":1},"signature":"292259734c1a7a527a0d7c325176a97a"}                    };
393
394                    sendRequest(url, body)
395                }
396                document.addEventListener('mousedown', function (event) {
397                                        if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
398                        return;
399                    }
400                    
401                    const element = event.target.closest('a')
402
403                    if(!element) {
404                        return
405                    }
406
407                    const isPro = false
408                    if(!isPro) {
409                        return
410                    }
411
412                    // Don't track left clicks with this event. The click event is used for that.
413                    if(event.button === 0) {
414                        return
415                    }
416
417                    track(element)
418                })
419                document.addEventListener('click', function (event) {
420                                        if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
421                        return;
422                    }
423                    
424                    const element = event.target.closest('a, button, input[type="submit"], input[type="button"]')
425
426                    if(!element) {
427                        return
428                    }
429
430                    const isPro = false
431                    if(!isPro) {
432                        return
433                    }
434
435                    track(element)
436                })
437                document.addEventListener('play', function (event) {
438                                        if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
439                        return;
440                    }
441                    
442                    const element = event.target.closest('audio, video')
443
444                    if(!element) {
445                        return
446                    }
447
448                    const isPro = false
449                    if(!isPro) {
450                        return
451                    }
452
453                    track(element)
454                }, true)
455                document.addEventListener("DOMContentLoaded", function (e) {
456                    search();
457                });
458                document.addEventListener("iawpSearch", function (e) {
459                    search();
460                });
461            })();
462        </script>
462
463        
463<script id="ct-author-js-js-extra">
464var ct_author_objectL10n = {"openPrimaryMenu":"open primary menu","closePrimaryMenu":"close primary menu","openChildMenu":"open child menu","closeChildMenu":"close child menu"};
465//# sourceURL=ct-author-js-js-extra
466</script>
vendor: 1 bytes, line 466
466
467<script id="ct-author-js-js" src="https://douglaswolk.com/wp-content/themes/author/js/build/production.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 467
467
468<script id="wp-emoji-settings" type="application/json">
469{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://douglaswolk.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}}
470</script>
vendor: 1 bytes, line 470
470
471<script type="module">
472/*! This file is auto-generated */
473var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
474//# sourceURL=https://douglaswolk.com/wp-includes/js/wp-emoji-loader.min.js
475</script>
475
476</body>
477</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.