1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 6<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> 7 <!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https://yoast.com/product/yoast-seo-premium-wordpress/ --> 8 <title>Our Capabilities | About ISW | Institute for the Study of War</title> 9 <meta name="description" content="ISWâs comparative advantage comes from synergistic capabilities it has cultivated throughout its history. Read about ISW's capabilities." /> 10 <link rel="canonical" href="https://understandingwar.org/about-isw/our-capabilities/" /> 11 <meta property="og:locale" content="en_US" /> 12 <meta property="og:type" content="article" /> 13 <meta property="og:title" content="Our Capabilities" /> 14 <meta property="og:description" content="ISWâs comparative advantage comes from synergistic capabilities it has cultivated throughout its history. Read about ISW's capabilities." /> 15 <meta property="og:url" content="https://understandingwar.org/about-isw/our-capabilities/" /> 16 <meta property="og:site_name" content="Institute for the Study of War" /> 17 <meta property="article:publisher" content="https://www.facebook.com/InstitutefortheStudyofWar" /> 18 <meta property="article:modified_time" content="2025-10-31T19:02:10+00:00" /> 19 <meta property="og:image" content="https://understandingwar.org/wp-content/uploads/2025/05/DualMission_Impact_Reuters_RTS8QOIY_crop1-1024x801.jpg" /> 20 <meta property="og:image:width" content="1024" /> 21 <meta property="og:image:height" content="801" /> 22 <meta property="og:image:type" content="image/jpeg" /> 23 <meta name="twitter:card" content="summary_large_image" /> 24 <meta name="twitter:label1" content="Est. reading time" /> 25 <meta name="twitter:data1" content="10 minutes" /> 26
26<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/","url":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/","name":"Our Capabilities | About ISW | Institute for the Study of War","isPartOf":{"@id":"https:\/\/understandingwar.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/#primaryimage"},"image":{"@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/#primaryimage"},"thumbnailUrl":"https:\/\/understandingwar.org\/wp-content\/uploads\/2025\/08\/DualMission_Impact_Reuters_RTS8QOIY_crop1-1024x801.jpg","datePublished":"2025-01-17T19:14:30+00:00","dateModified":"2025-10-31T19:02:10+00:00","description":"ISWâs comparative advantage comes from synergistic capabilities it has cultivated throughout its history. Read about ISW's capabilities.","breadcrumb":{"@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/understandingwar.org\/about-isw\/our-capabilities\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/#primaryimage","url":"https:\/\/understandingwar.org\/wp-content\/uploads\/2025\/05\/DualMission_Impact_Reuters_RTS8QOIY_crop1-scaled.jpg","contentUrl":"https:\/\/understandingwar.org\/wp-content\/uploads\/2025\/05\/DualMission_Impact_Reuters_RTS8QOIY_crop1-scaled.jpg","width":2560,"height":2002,"caption":"Ukrainian Minister for Communities and Territories Development Oleksiy Chernyshov shows a wartime map to French President Emmanuel Macron, German Chancellor Olaf Scholz, Italian Prime Minister Mario Draghi and Romanian President Klaus Iohannis (partially obscured) during their visit, as Russia's attack on Ukraine continues, in Irpin, near Kyiv, Ukraine June 16, 2022. REUTERS\/Viacheslav Ratynskyi TPX IMAGES OF THE DAY"},{"@type":"BreadcrumbList","@id":"https:\/\/understandingwar.org\/about-isw\/our-capabilities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/understandingwar.org\/"},{"@type":"ListItem","position":2,"name":"About ISW","item":"https:\/\/understandingwar.org\/about-isw\/"},{"@type":"ListItem","position":3,"name":"Our Capabilities"}]},{"@type":"WebSite","@id":"https:\/\/understandingwar.org\/#website","url":"https:\/\/understandingwar.org\/","name":"Institute for the Study of War","description":"","publisher":{"@id":"https:\/\/understandingwar.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/understandingwar.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/understandingwar.org\/#organization","name":"Understanding War","alternateName":"Institute for the Study of War","url":"https:\/\/understandingwar.org\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/understandingwar.org\/#\/schema\/logo\/image\/","url":"https:\/\/understandingwar.org\/wp-content\/uploads\/2025\/08\/25-240-07-ISW-Research-Library-Graphic_1080x1080.webp","contentUrl":"https:\/\/understandingwar.org\/wp-content\/uploads\/2025\/08\/25-240-07-ISW-Research-Library-Graphic_1080x1080.webp","width":1080,"height":1080,"caption":"Understanding War"},"image":{"@id":"https:\/\/understandingwar.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/InstitutefortheStudyofWar"]}]}</script>
26 27 <!-- / Yoast SEO Premium plugin. --> 28 29 30<link rel='dns-prefetch' href='//www.google.com' /> 31<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> 32<link href='https://fonts.googleapis.com' crossorigin rel='preconnect' /> 33<style id="wp-img-auto-sizes-contain-inline-css"> 34img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 35/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 36</style> 37<style id="wp-block-library-inline-css"> 38: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;
38--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}.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]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([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}} 39 40/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 41</style> 42<style id="wp-block-image-inline-css"> 43.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:#5a5a5a40;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 #5a5a5a40;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:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;
43cursor: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}}
43@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}} 44/*# sourceURL=https://understandingwar.org/wp-includes/blocks/image/style.min.css */ 45</style> 46<style id="wp-block-list-inline-css"> 47ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} 48/*# sourceURL=https://understandingwar.org/wp-includes/blocks/list/style.min.css */ 49</style> 50<style id="wp-block-navigation-inline-css"> 51.wp-block-navigation{position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block;z-index:1}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;opacity:0;position:absolute;z-index:2}@media not (prefers-reduced-motion){.wp-block-navigation .has-child .wp-block-navigation__submenu-container{transition:opacity .1s linear}}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{height:0;overflow:hidden;visibility:hidden;width:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1;padding:.5em 1em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{left:-1px;top:100%}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:#0000;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}@media (hover:hover){.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;
51min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child.open-always{align-items:var(--navigation-layout-align,initial);flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always,.wp-block-navigation .has-child.open-always .wp-block-navigation-item{justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation-item,.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{padding-bottom:0;padding-top:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container{padding-left:var(--wp--style--block-gap,2em);padding-right:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.wp-block-navigation .has-child.open-always>.wp-block-navigation-item__content{flex-grow:0}.wp-block-navigation .has-child.open-always>.wp-block-navigation__submenu-container{background-color:initial;border:none;color:inherit;flex-basis:100%;height:auto;opacity:1;overflow:visible;position:static;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:initial;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-submenu__toggle[aria-expanded=true]+.wp-block-navigation__submenu-icon>svg,.wp-block-navigation-submenu__toggle[aria-expanded=true]>svg{transform:rotate(180deg)}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:0;padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid #00000026}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{c
51olor:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{background-color:inherit;display:flex;flex-direction:column}@media not (prefers-reduced-motion){.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards}}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-container.is-menu-open{overflow:auto;z-index:100000}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:calc(2rem
51+ 24px)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;
51min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list{background:#0000!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container{display:none;width:100%}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close{max-width:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content>:not(.wp-block-navigation__overlay-container){display:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container{display:block}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container{left:0;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:#0000;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.disable-default-overlay .wp-block-navigation__responsive-container-close{right:clamp(1rem,var(--wp--style--root--padding-left),20rem);top:clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}
51.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} 52/*# sourceURL=https://understandingwar.org/wp-includes/blocks/navigation/style.min.css */ 53</style> 54<style id="wp-block-navigation-link-inline-css"> 55.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase} 56/*# sourceURL=https://understandingwar.org/wp-includes/blocks/navigation-link/style.min.css */ 57</style> 58<style id="wp-block-paragraph-inline-css"> 59.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} 60/*# sourceURL=https://understandingwar.org/wp-includes/blocks/paragraph/style.min.css */ 61</style> 62<link rel='stylesheet' id='wp-block-search-css' href='https://understandingwar.org/wp-includes/blocks/search/style.min.css?ver=7.0.5' media='all' /> 63 64<style id="classic-theme-styles-inline-css"> 65/*! This file is auto-generated */ 66.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 67/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 68</style> 69 70<style id="global-styles-inline-css"> 71: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--color--primary-blue: var(--primary-blue);--wp--preset--color--primary-gold: var(--primary-gold);--wp--preset--color--main-white: var(--main-white);--wp--preset--color--secondary-blue: var(--secondary-blue);--wp--preset--color--secondary-gold: var(--secondary-gold);--wp--preset--color--secondary-navy: var(--secondary-navy);--wp--preset--color--secondary-seafoam: var(--secondary-seafoam);--wp--preset--color--paragraph-black: var(--paragraph-black);--wp--preset--color--secondary-grey: var(--secondary-grey);--wp--preset--color--text-brown: var(--text-brown);--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%);
71--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: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--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);}: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-primary-blue-color{color: var(--wp--preset--color--primary-blue) !important;}.has-primary-gold-color{color: var(--wp--preset--color--primary-gold) !important;}.has-main-white-color{color: var(--wp--preset--color--main-white) !important;}.has-secondary-blue-color{color: var(--wp--preset--color--secondary-blue) !important;}.has-secondary-gold-color{color: var(--wp--preset--color--secondary-gold) !important;}.has-secondary-navy-color{color: var(--wp--preset--color--secondary-navy) !important;}.has-secondary-seafoam-color{color: var(--wp--preset--color--secondary-seafoam) !important;}.has-paragraph-black-color{color: var(--wp--preset--color--paragraph-black) !important;}.has-secondary-grey-color{color: var(--wp--preset--color--secondary-grey) !important;}.has-text-brown-color{color: var(--wp--preset--color--text-brown) !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-primary-blue-background-color{background-color: var(--wp--preset--color--primary-blue) !important;}.has-primary-gold-background-color{background-color: var(--wp--preset--color--primary-gold) !important;}.has-main-white-background-color{background-color: var(--wp--preset--color--main-white) !important;}.has-secondary-blue-background-color{background-color: var(--wp--preset--color--secondary-blue) !important;}.has-secondary-gold-background-color{background-color: var(--wp--preset--color--secondary-gold) !important;}.has-secondary-navy-background-color{background-color: var(--wp--preset--color--secondary-navy) !important;}.has-secondary-seafoam-background-color{background-color: var(--wp--preset--color--secondary-seafoam) !important;}.has-paragraph-black-background-color{background-color: var(--wp--preset--color--paragraph-black) !important;}.has-secondary-grey-background-color{background-color: var(--wp--preset--color--secondary-grey) !important;}.has-text-brown-background-color{background-color: var(--wp--preset--color--text-brown) !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-primary-blue-border-color{border-color: var(--wp--preset--color--primary-blue) !important;}.has-primary-gold-border-color{border-color: var(--wp--preset--color--primary-gold) !important;}.has-main-white-border-color{border-color: var(--wp--preset--color--main-white) !important;}.has-secondary-blue-border-color{border-color: var(--wp--preset--color--secondary-blue) !important;}.has-secondary-gold-border-color{border-color: var(--wp--preset--color--secondary-gold) !important;}.has-secondary-navy-border-color{border-color: var(--wp--preset--color--secondary-navy) !important;}.has-secondary-seafoam-border-color{border-color: var(--wp--preset--color--secondary-seafoam) !important;}.has-paragraph-black-border-color{border-color: var(--wp--preset--color--paragraph-black) !important;}.has-secondary-grey-border-color{border-color: var(--wp--preset--color--secondary-grey) !important;}.has-text-brown-border-color{border-color: var(--wp--preset--color--text-brown) !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;}
71.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;} 72/*# sourceURL=global-styles-inline-css */ 73</style> 74 75<link rel='stylesheet' id='generate-style-css' href='https://understandingwar.org/wp-content/themes/generatepress/assets/css/main.min.css?ver=3.6.1' media='all' /> 76<style id="generate-style-inline-css"> 77.generate-page-header, .page-header-image, .page-header-image-single {display:none} 78body{background-color:var(--main-white);color:var(--paragraph-black);}a{color:#396f84;}a:hover, a:focus, a:active{color:var(--secondary-seafoam);}.grid-container{max-width:1280px;}.wp-block-group__inner-container{max-width:1280px;margin-left:auto;margin-right:auto;}.site-header .header-image{width:175px;}:root{--primary-blue:#003E5F;--primary-gold:#83663E;--main-white:#ffffff;--secondary-blue:#5293AD;--secondary-gold:#a68f6e;--secondary-navy:#042E4E;--secondary-seafoam:#3399A5;--paragraph-black:#494949;--secondary-grey:#F4F4F4;--text-brown:#2b241b;}:root .has-primary-blue-color{color:var(--primary-blue);}:root .has-primary-blue-background-color{background-color:var(--primary-blue);}:root .has-primary-gold-color{color:var(--primary-gold);}:root .has-primary-gold-background-color{background-color:var(--primary-gold);}:root .has-main-white-color{color:var(--main-white);}:root .has-main-white-background-color{background-color:var(--main-white);}:root .has-secondary-blue-color{color:var(--secondary-blue);}:root .has-secondary-blue-background-color{background-color:var(--secondary-blue);}:root .has-secondary-gold-color{color:var(--secondary-gold);}:root .has-secondary-gold-background-color{background-color:var(--secondary-gold);}:root .has-secondary-navy-color{color:var(--secondary-navy);}:root .has-secondary-navy-background-color{background-color:var(--secondary-navy);}:root .has-secondary-seafoam-color{color:var(--secondary-seafoam);}:root .has-secondary-seafoam-background-color{background-color:var(--secondary-seafoam);}:root .has-paragraph-black-color{color:var(--paragraph-black);}:root .has-paragraph-black-background-color{background-color:var(--paragraph-black);}:root .has-secondary-grey-color{color:var(--secondary-grey);}:root .has-secondary-grey-background-color{background-color:var(--secondary-grey);}:root .has-text-brown-color{color:var(--text-brown);}:root .has-text-brown-background-color{background-color:var(--text-brown);}.gp-modal:not(.gp-modal--open):not(.gp-modal--transition){display:none;}.gp-modal--transition:not(.gp-modal--open){pointer-events:none;}.gp-modal-overlay:not(.gp-modal-overlay--open):not(.gp-modal--transition){display:none;}.gp-modal__overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.2);display:flex;justify-content:center;align-items:center;z-index:10000;backdrop-filter:blur(3px);transition:opacity 500ms ease;opacity:0;}.gp-modal--open:not(.gp-modal--transition) .gp-modal__overlay{opacity:1;}.gp-modal__container{max-width:100%;max-height:100vh;transform:scale(0.9);transition:transform 500ms ease;padding:0 10px;}.gp-modal--open:not(.gp-modal--transition) .gp-modal__container{transform:scale(1);}.search-modal-fields{display:flex;}.gp-search-modal .gp-modal__overlay{align-items:flex-start;padding-top:25vh;background:var(--gp-search-modal-overlay-bg-color);}.search-modal-form{width:500px;max-width:100%;background-color:var(--gp-search-modal-bg-color);color:var(--gp-search-modal-text-color);}.search-modal-form .search-field, .search-modal-form .search-field:focus{width:100%;height:60px;background-color:transparent;border:0;appearance:none;color:currentColor;}.search-modal-fields button, .search-modal-fields button:active, .search-modal-fields button:focus, .search-modal-fields button:hover{background-color:transparent;border:0;color:currentColor;width:60px;}h1{font-family:Libre Baskerville, serif;font-weight:bold;text-transform:uppercase;font-size:4.1rem;line-height:175%;margin-bottom:0px;}@media (max-width: 1024px){h1{font-size:3.438rem;}}@media (max-width:768px){h1{font-size:2.5rem;}}h2{font-family:Libre Baskerville, serif;font-weight:bold;text-transform:uppercase;font-size:35px;line-height:45px;margin-bottom:0px;}@media (max-width: 1024px){h2{font-size:1.938rem;}}@media (max-width:768px){h2{font-size:1.75rem;}}h3{font-family:Libre Baskerville, serif;font-weight:bold;text-transform:uppercase;font-size:30px;line-height:1.2em;margin-bottom:0px;}@media (max-width: 1024px){h3{font-size:1.75rem;}}@media (max-width:768px){h3{font-size:1.25rem;}}h4{font-family:Libre Baskerville, serif;font-weight:bold;font-size:25px;line-height:1.2em;margin-bottom:0px;}@media (max-width:768px){h4{font-size:1.125rem;}}h5{font-family:Libre Baskerville, serif;font-weight:bold;text-transform:uppercase;font-size:22px;line-height:1.2em;margin-bottom:0px;}@media (max-width:768px){h5{font-size:4.063rem;}}h6{font-family:Montserrat, sans-serif;font-weight:700;text-transform:uppercase;font-size:20px;letter-spacing:0.2em;line-height:25px;margin-bottom:0px;}@media (max-width: 1024px){h6{font-size:1.3rem;}}@media (max-width:768px){h6{font-size:1.25rem;}}body, button, input, select, textarea{font-family:Montserrat, sans-serif;font-weight:500;font-size:1rem;}body{line-height:1.75;}p{margin-bottom:0em;}@media (max-width:768px){body, button, input, select, textarea{font-size:1rem;}}#drawer a{font-family:Montserrat, sans-serif;font-weight:bold;text-decoration:none;font-size:13px;}#drawer h4{font-family:Libre Baskerville, serif;font-weight:bold;font-size:15px;}.main-navigation a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items{font-family:Montserrat, sans-serif;font-weight:700;text-transform:uppercase;font-size:16px;letter-spacing:1px;line-height:1rem;}.drawer{text-transform:uppercase;}.top-bar{background-color:rgba(255,255,255,0);color:var(--main-white);}.top-bar a{color:var(--primary-blue);}.top-bar a:hover{color:var(--primary-gold);}.site-header{background-color:rgba(0,0,0,0);color:var(--paragraph-black);}.site-header a{color:var(--primary-blue);}.site-header a:hover{color:var(--primary-gold);}.main-title a,.main-title a:hover{color:var(--main-white);}.site-description{color:var(--main-white);}.main-navigation,.main-navigation ul ul{background-color:rgba(255,255,255,0);}.main-navigation .main-nav ul li a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items{color:var(--primary-blue);}.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a, .main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a{color:var(--primary-gold);}button.menu-toggle:hover,button.menu-toggle:focus{color:var(--primary-blue);}.main-navigation .main-nav ul li[class*="current-menu-"] > a{color:var(--secondary-blue);}.navigation-search input[type="search"],.navigation-search input[type="search"]:active, .navigation-search input[type="search"]:focus, .main-navigation .main-nav ul li.search-item.active > a, .main-navigation .menu-bar-items .search-item.active > a{color:var(--primary-gold);}.main-navigation ul ul{background-color:var(--main-white);}.main-navigation .main-nav ul ul li a{color:var(--primary-blue);}.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a{color:var(--primary-gold);}.main-navigation .main-nav ul ul li[class*="current-menu-"] > a{color:var(--secondary-blue);}.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header{color:var(--paragraph-black);background-color:var(--main-white);}.entry-header h1,.page-header h1{color:var(--secondary-navy);}.entry-title a{color:var(--secondary-navy);}.entry-title a:hover{color:var(--primary-gold);}.entry-meta{color:var(--contrast-2);}h1{color:var(--main-white);}h2{color:var(--secondary-navy);}h3{color:var(--secondary-navy);}h4{color:var(--secondary-navy);}h5{color:var(--secondary-navy);}h6{color:var(--secondary-gold);}.sidebar .widget{background-color:var(--base-3);}.footer-widgets{background-color:var(--base-3);}.site-info{background-color:var(--base-3);}input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],textarea,select{color:var(--contrast);background-color:var(--base-2);border-color:var(--base);}input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="number"]:focus,textarea:focus,select:focus{color:var(--contrast);background-color:var(--base-2);border-color:var(--contrast-3);}button,html input[type="button"],input[type="reset"],input[type="submit"],a.button,a.wp-block-button__link:not(.has-background){color:var(--main-white);background-color:var(--secondary-blue);}button:hover,html input[type="button"]:hover,input[type="reset"]:hover,input[type="submit"]:hover,a.button:hover,button:focus,html input[type="button"]:focus,input[type="reset"]:focus,input[type="submit"]:focus,a.button:focus,a.wp-block-button__link:not(.has-background):active,a.wp-block-button__link:not(.has-background):focus,a.wp-block-button__link:not(.has-background):hover{color:var(--secondary-blue);background-color:var(--main-white);}a.generate-back-to-top{background-color:rgba( 0,0,0,0.4 );color:#ffffff;}a.generate-back-to-top:hover,a.generate-back-to-top:focus{background-color:rgba( 0,0,0,0.6 );color:#ffffff;}:root{--gp-search-modal-bg-color:var(--main-white);--gp-search-modal-text-color:var(--paragraph-black);--gp-search-modal-overlay-bg-color:rgba(0,36,64,0.9);}@media (max-width: 1060px){.main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a{background:none;color:var(--primary-blue);}}.inside-top-bar.grid-container{max-width:1360px;}.inside-header{padding:0px;}.inside-header.grid-container{max-width:1280px;}.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header{padding:0px;}.site-main .wp-block-group__inner-container{padding:0px;}.separate-containers .paging-navigation{padding-top:20px;padding-bottom:20px;}.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull{margin-left:-0px;width:calc(100% + 0px);max-width:calc(100% + 0px);}.one-container.right-sidebar .site-main,.one-container.both-right .site-main{margin-right:0px;}.one-container.left-sidebar .site-main,.one-container.both-left .site-main{margin-left:0px;}.one-container.both-sidebars .site-main{margin:0px;}.sidebar .widget, .page-header, .widget-area .main-navigation, .site-main > *{margin-bottom:0px;}.separate-containers .site-main{margin:0px;}.both-right .inside-left-sidebar,.both-left .inside-left-sidebar{margin-right:0px;}.both-right .inside-right-sidebar,.both-left .inside-right-sidebar{margin-left:0px;}.one-container.archive .post:not(:last-child):not(.is-loop-template-item), .one-container.blog .post:not(:last-child):not(.is-loop-template-item){padding-bottom:0px;}.separate-containers .featured-image{margin-top:0px;}.separate-containers .inside-right-sidebar, .separate-containers .inside-left-sidebar{margin-top:0px;margin-bottom:0px;}.rtl .menu-item-has-children .dropdown-menu-toggle{padding-left:20px;}.rtl .main-navigation .main-nav ul li.menu-item-has-children > a{padding-right:20px;}.footer-widgets-container.grid-container{max-width:1360px;}.inside-site-info.grid-container{max-width:1360px;}@media (max-width:768px){.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header{padding:0px;}.site-main .wp-block-group__inner-container{padding:0px;}.inside-top-bar{padding-right:30px;padding-left:30px;}.inside-header{padding-right:30px;padding-left:30px;}.widget-area .widget{padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px;}.footer-widgets-container{padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px;}.inside-site-info{padding-right:30px;padding-left:30px;}.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull{margin-left:-0px;width:calc(100% + 0px);max-width:calc(100% + 0px);}.one-container .site-main .paging-navigation{margin-bottom:0px;}}.is-right-sidebar{width:30%;}.is-left-sidebar{width:30%;}.site-content .content-area{width:100%;}@media (max-width: 1060px){.main-navigation .menu-toggle,.sidebar-nav-mobile:not(#sticky-placeholder){display:block;}.main-navigation ul,.gen-sidebar-nav,.main-navigation:not(.slideout-navigation):not(.toggled) .main-nav > ul,.has-inline-mobile-toggle #site-navigation .inside-navigation > *:not(.navigation-search):not(.main-nav){display:none;}.nav-align-right .inside-navigation,.nav-align-center .inside-navigation{justify-content:space-between;}.has-inline-mobile-toggle .mobile-menu-control-wrapper{display:flex;flex-wrap:wrap;}
78.has-inline-mobile-toggle .inside-header{flex-direction:row;text-align:left;flex-wrap:wrap;}.has-inline-mobile-toggle .header-widget,.has-inline-mobile-toggle #site-navigation{flex-basis:100%;}.nav-float-left .has-inline-mobile-toggle #site-navigation{order:10;}} 79.dynamic-author-image-rounded{border-radius:100%;}.dynamic-featured-image, .dynamic-author-image{vertical-align:middle;}.one-container.blog .dynamic-content-template:not(:last-child), .one-container.archive .dynamic-content-template:not(:last-child){padding-bottom:0px;}.dynamic-entry-excerpt > p:last-child{margin-bottom:0px;} 80.main-navigation .main-nav ul li a,.menu-toggle,.main-navigation .menu-bar-item > a{transition: line-height 300ms ease}.main-navigation.toggled .main-nav > ul{background-color: rgba(255,255,255,0)}.sticky-enabled .gen-sidebar-nav.is_stuck .main-navigation {margin-bottom: 0px;}.sticky-enabled .gen-sidebar-nav.is_stuck {z-index: 500;}.sticky-enabled .main-navigation.is_stuck {box-shadow: 0 2px 2px -2px rgba(0, 0, 0, .2);}.navigation-stick:not(.gen-sidebar-nav) {left: 0;right: 0;width: 100% !important;}.both-sticky-menu .main-navigation:not(#mobile-header).toggled .main-nav > ul,.mobile-sticky-menu .main-navigation:not(#mobile-header).toggled .main-nav > ul,.mobile-header-sticky #mobile-header.toggled .main-nav > ul {position: absolute;left: 0;right: 0;z-index: 999;}@media (max-width: 1060px){#sticky-placeholder{height:0;overflow:hidden;}.has-inline-mobile-toggle #site-navigation.toggled{margin-top:0;}.has-inline-mobile-menu #site-navigation.toggled .main-nav > ul{top:1.5em;}}.nav-float-right .navigation-stick {width: 100% !important;left: 0;}.nav-float-right .navigation-stick .navigation-branding {margin-right: auto;}.main-navigation.has-sticky-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding{margin-left: 10px;} 81.inside-page-hero > *:last-child{margin-bottom:0px;}.header-wrap{position:absolute;left:0px;right:0px;z-index:10;}.header-wrap .site-header{background:transparent;} 82@media (max-width: 1024px),(min-width:1025px){.main-navigation.sticky-navigation-transition .main-nav > ul > li > a,.sticky-navigation-transition .menu-toggle,.main-navigation.sticky-navigation-transition .menu-bar-item > a, .sticky-navigation-transition .navigation-branding .main-title{line-height:66px;}.main-navigation.sticky-navigation-transition .site-logo img, .main-navigation.sticky-navigation-transition .navigation-search input[type="search"], .main-navigation.sticky-navigation-transition .navigation-branding img{height:66px;}}.main-navigation.slideout-navigation .main-nav > ul > li > a{line-height:20px;} 83/*# sourceURL=generate-style-inline-css */ 84</style> 85<link rel='stylesheet' id='generate-google-fonts-css' href='https://fonts.googleapis.com/css?family=Libre+Baskerville:regular,italic,700|Montserrat:100,100italic,200,200italic,300,300italic,regular,italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=auto&ver=3.6.1' media='all' /> 86<link rel='stylesheet' id='tooltip-css-css' href='https://understandingwar.org/wp-content/plugins/tooltips-for-gravity-forms-free/assests/css/easytp.bundle.min.css?ver=7.0.5' media='all' /> 87<link rel='stylesheet' id='tooltip-css-themes-css' href='https://understandingwar.org/wp-content/plugins/tooltips-for-gravity-forms-free/assests/css/themes/easytp-themes.min.css?ver=7.0.5' media='all' /> 88<style id="generateblocks-global-inline-css"> 89.paragraph-body-hero{color:var(--main-white);font-family:montserrat;font-size:1.25rem;font-weight:400;line-height:1.7em}.btn-primary-white{background-color:var(--main-white);color:var(--secondary-navy);font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;transition:all 0.5s ease 0s;border:1px solid #ffffff;border-radius:6px;padding:8px 20px}.btn-primary-white:hover{background-color:var(--secondary-blue);color:#ffffff;border:1px solid var(--secondary-blue)}.btn-primary-white a{color:var(--secondary-navy);column-gap:.5em}.btn-primary-white a:hover{color:var(--main-white)}.btn-secondary-gold{background-color:var(--secondary-gold);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;border:1px solid var(--secondary-gold);color:#2b241b;font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;padding:8px 20px;text-transform:uppercase;transition:all 0.5s ease 0s}.btn-secondary-gold:hover{color:var(--main-white);border:1px solid var(--primary-gold);background-color:var(--primary-gold)}.card-conflict-expanded{align-items:center;background-color:rgba(0,0,0,0);border-left-style:solid;border-left-width:0px;border-right-style:solid;border-right-width:0px;display:flex;flex-direction:column;height:100%;justify-content:flex-end;min-height:175px;width:300px;border-top:0px solid var(--secondary-gold);border-bottom:2px solid var(--secondary-gold)}@media (max-width:767px){.card-conflict-expanded{border-left-style:solid;border-left-width:0px;border-right-style:solid;border-right-width:0px}}.btn-tag{background-color:#ffffff;color:var(--secondary-navy);font-family:montserrat;font-size:0.75rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;transition:all 0.5s ease 0s;white-space:nowrap;border-radius:48px;padding:3px 10px}.txt-link{color:#ffffff;font-family:montserrat;font-size:0.875rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;transform:translate3d(0px,0px,0px);transition:all 0.5s ease 0s}.txt-link:hover{color:#cccccc;transition:all 0.5s ease 0s;transform:translate3d(10px,0px,0px)}.stat-number{font-size:40px;font-weight:bold;text-transform:uppercase}.stat-number h5.stat-number{font-size:clamp(36px,3vw,60px);white-space:nowrap}.stat-label{color:#494949;font-family:montserrat;font-size:1.125rem;font-weight:500;line-height:1.5em;text-align:center}@media (max-width:1024px){.stat-label{font-size:16px}}.stats-headline{color:var(--primary-blue);font-size:25px;font-weight:bold;letter-spacing:10px;text-transform:uppercase}@media (max-width:1024px){.stats-headline{font-size:22px;letter-spacing:6px}}.btn-tertiary-navy{background-color:var(--primary-blue);color:#ffffff;font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;transition:all 0.5s ease 0s;border-radius:6px;padding:10px 20px}.btn-tertiary-navy.map-series-conditional{margin-bottom:10px}.btn-tertiary-navy.map-series-conditional .gb-button-text{width:269px;min-height:53px;display:flex;align-items:center;max-width:100%}.btn-tertiary-navy.map-series-conditional:last-child{margin-bottom:0px}.btn-tertiary-navy:hover{color:var(--main-white);background-color:var(--secondary-blue)}.txt-link-navy{color:var(--primary-blue);font-family:montserrat;font-size:0.875rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;transform:translate3d(0px,0px,0px);transition:all 0.5s ease 0s}.txt-link-navy:hover{color:var(--secondary-blue);transition:all 0.5s ease 0s;transform:translate3d(10px,0px,0px)}.media-date{color:var(--secondary-seafoam);font-family:montserrat;font-size:14px;font-weight:bold;letter-spacing:1px;line-height:1.5em;text-align:left;text-transform:uppercase}.media-title{color:var(--secondary-navy);font-size:20px;font-weight:bold;line-height:1.4em}.media-quote{color:#494949;font-family:montserrat;font-size:16px;font-style:italic;font-weight:500;line-height:1.6em}.media-person{color:var(--secondary-navy);font-size:13px;font-weight:bold;letter-spacing:2px;line-height:1.4em;text-transform:uppercase}.btn-tag-navy{background-color:#2D748F;color:var(--main-white);font-family:montserrat;font-size:0.75rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;transition:all 0.5s ease 0s;border-radius:48px;padding:3px 10px}.btn-donate-lrg{background-color:#ad9777;color:#2b241b;font-family:montserrat;font-size:20px;font-weight:700;letter-spacing:3px;text-transform:uppercase;transition:all 0.5s ease 0s;border:1px solid #ad9777;border-radius:9px;padding:10px 25px}.btn-donate-lrg:hover{background-color:var(--primary-gold);color:#ffffff;transition:all 0.5s ease 0s;border:1px solid var(--secondary-gold)}@media (max-width:1024px){.btn-donate-lrg{font-size:18px;padding-left:30px;padding-right:30px}}.empty-divider.slick-slide{display:none !important}.gb-stats{margin-left:auto;margin-right:auto;position:relative}.gb-stats.slick-slider{border-bottom-width:0px;border-bottom-style:solid;padding:15px 0px 40px 0px}.gb-stats .slick-dots{text-align:center;max-width:100%;border-top:2px solid #ad9777;margin:15px auto 0px auto;padding:15px 0px 0px 0px}.gb-stats .slick-dots li{display:inline-block;margin-right:10px}.gb-stats .slick-dots li button{border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;background-color:#cccccc;width:18px;height:18px;opacity:0.5;transition:opacity 0.3s,background 0.3s ease 0s;font-size:0px;padding:0px}.gb-stats .slick-dots li.slick-active button{background-color:#01415d;opacity:1}.gb-stats .slick-dots li:last-child{margin-right:0px}@media screen and (max-width:1280px){.gb-stats{display:flex;flex-wrap:wrap;row-gap:20px}}@media (max-width:1024px){.gb-stats{min-height:200px}}@media (max-width:767px){.gb-stats{opacity:0;transition:all opacity 0.5s ease,visibility 0s linear 0.5s ease 0s}.gb-stats.slick-loaded{opacity:1}.gb-stats .slick-dots{margin-top:0px}}.testimonial-carousel{display:flex;margin-left:auto;margin-right:auto;max-width:100%;position:relative}
89.testimonial-carousel .slick-dots{top:0%;left:0px;display:flex !important;column-gap:10px;row-gap:10px;padding:0px;margin:30px auto 0px;z-index:10;transform:translateY(-50%);position:relative;width:100px;flex-direction:row}.testimonial-carousel .slick-dots li{display:block;width:14px;height:14px}.testimonial-carousel .slick-dots li button{border-width:0px;border-style:solid;width:100%;height:100%;padding:0px;border-top-left-radius:0%;border-top-right-radius:0%;border-bottom-left-radius:0%;border-bottom-right-radius:0%;background-color:#cccccc;opacity:0.5;transition:opacity 0.3s,background 0.3s ease-in-out 0s}.testimonial-carousel .slick-dots li.slick-active button{background-color:#9d7d51;opacity:1}.testimonial-carousel .testimonial{display:flex;align-items:center;justify-content:center;padding:20px}.testimonial-carousel .testimonial>.gb-container{width:1280px;max-width:100%}@media (max-width:1024px){.testimonial-carousel:before{content:'';background-color:var(--main-white);position:absolute;top:0px;left:0px;width:100%;height:80px}}@media (max-width:767px){.testimonial-carousel .slick-dots{position:relative;top:0px;left:0px;transform:none;flex-direction:row;width:100%;align-items:center;justify-content:center}.testimonial-carousel .testimonial{padding:20px 30px}}.h4-1440px{font-family:libre franklin;font-size:1rem}@media (min-width:1440px){.h4-1440px{font-family:libre franklin;font-size:1.2rem}}@media (max-width:1440px){.fa-cards-columns{width:32%}}.card-conflicts-overlay{background-color:var(--primary-blue);display:flex;flex-direction:column;height:100%;left:0px;position:absolute;row-gap:8px;top:0px;width:100%}@media (max-width:767px){.card-conflicts-overlay{margin-top:10px}}.endnote-accordion-container{align-items:flex-start;border-bottom:1px solid var(--paragraph-black);border-top:1px solid var(--paragraph-black);display:flex;flex-direction:column;justify-content:flex-start;padding-bottom:30px;padding-top:30px;width:100%}.endnote-accordion{width:100%}.endnote-accordion-btn{align-items:center;background-color:var(--main-white);color:var(--primary-blue);column-gap:0.5em;display:inline-flex;font-weight:bold;justify-content:space-between;padding:0px;text-align:left;text-decoration:none;text-transform:uppercase;width:100%}.endnote-accordion-btn:hover{background-color:var(--main-white)}.endnote-accordion-content{font-size:15px;margin-bottom:20px;padding-top:10px}.endnote-accordion-content-p{font-size:15px}.nav-posts{align-items:center;column-gap:30px;display:flex;justify-content:flex-start;margin-top:20px;position:relative;z-index:5}.btn-post-nav__prev{color:var(--primary-blue);font-family:montserrat;font-size:0.875rem;font-weight:800;letter-spacing:1px;text-transform:uppercase}.btn-post-nav__next{color:var(--primary-blue);font-family:montserrat;font-size:0.875rem;font-weight:800;letter-spacing:1px;text-transform:uppercase}.conflict-area-names{color:#ffffff;font-size:16px;font-weight:600;letter-spacing:1px}.star-svg{color:var(--main-white);line-height:0;max-width:100%;width:19px}.eyebrow{color:var(--secondary-gold);font-family:montserrat;font-size:20px;font-weight:700;letter-spacing:0.2em;line-height:1.2;margin-bottom:10px;text-transform:uppercase}@media (max-width:1024px){.eyebrow{font-size:18px}}@media (max-width:767px){.eyebrow{font-size:18px}}.block-quote{color:var(--primary-blue);font-family:libre franklin;font-weight:bold;letter-spacing:1px;line-height:1.1em}.research-card-title{color:var(--secondary-navy);font-size:18px;font-weight:bold;line-height:153%;padding-bottom:20px;padding-top:20px;text-transform:none;width:100%}.research-card-title a{color:var(--secondary-navy)}.research-card-title a:hover{color:var(--secondary-blue)}.tag-cloud-on-cards{align-items:center;column-gap:2px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin-bottom:0px;row-gap:2px}.tag-cloud-on-cards Span{background-color:#407e96;color:var(--main-white);font-size:11px;font-weight:700;text-transform:uppercase;line-height:1.25;border-radius:48px;padding:6px 12px}.tag-cloud-in-header{align-items:center;column-gap:2px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:0px;row-gap:2px}.tag-cloud-in-header Span{background-color:var(--main-white);color:var(--secondary-navy);font-size:11px;font-weight:700;text-transform:uppercase;margin-right:4px;margin-bottom:4px;border-radius:48px;padding:4px 8px}.research-card-loop-item{background-color:var(--main-white);box-shadow:0px 9px 20px 0px rgba(0,0,0,0.1);display:flex;flex-direction:column;overflow-x:hidden;overflow-y:hidden;width:25%;border-radius:10px}.research-card-loop-item:hover{box-shadow:0px 9px 20px 0px rgba(0,0,0,0.25);
89transition:box-shadow 0.3s ease 0s}@media (max-width:1190px) and (min-width:768px){.research-card-loop-item{flex-grow:1;width:45%}}@media (max-width:767px){.research-card-loop-item{max-width:370px;width:100%}}.research-card-full-width-content{align-items:center;display:flex;flex-direction:column;justify-content:flex-start;width:100%}.research-card-type-label{align-items:flex-start;background-color:#407e96;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%;padding:8px 15px}.research-card-category-label{color:var(--main-white);display:flex;flex-direction:row;font-size:13px;font-weight:800;line-height:135%;margin-bottom:0px;text-transform:uppercase}.research-card-post-date{color:var(--main-white);display:flex;flex-direction:column;font-size:13px;font-weight:400;line-height:135%;margin-bottom:0px;text-transform:uppercase}.research-card-padded-content{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:space-between;padding-left:15px;padding-right:15px;width:100%}.research-card-title-tags-wrapper{align-items:flex-start;display:flex;flex-direction:column;width:100%}.research-card-taxonomy-list-wrapper{align-items:flex-start;column-gap:4px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;padding-bottom:20px;padding-top:8px;row-gap:4px;width:100%;border-bottom:1px solid #dcdcdc}.research-card-btn-wrapper{display:flex;justify-content:flex-end;width:100%;border-top:1px solid #dcdcdc}.research-card-btn{align-items:center;column-gap:.5em;display:inline-flex;flex-direction:row;justify-content:flex-end;margin-bottom:20px;margin-top:8px;width:100%}.map-card-type-label{align-items:flex-start;background-color:var(--primary-gold);display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%;padding:8px 15px}.map-card-image-wrapper{display:flex;flex-direction:column;margin-bottom:10px;max-height:160px;min-height:160px;overflow-x:hidden;overflow-y:hidden;width:100%}.map-card-image-wrapper a>img{width:100%}.map-card-padded-content{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-between;padding-left:15px;padding-right:15px;width:100%}.map-card-taxonomy-list-wrapper{align-items:flex-start;column-gap:4px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;padding-bottom:20px;padding-top:8px;row-gap:4px;width:100%}.map-card-update-label-wrapper{align-items:center;column-gap:4px;display:flex;flex-direction:row;justify-content:flex-start;width:100%}.map-card-update-label{align-items:center;color:var(--paragraph-black);column-gap:0.5em;display:inline-flex;font-size:12px;font-weight:800;letter-spacing:1px;margin-bottom:0px;text-transform:uppercase}.map-card-update-line{width:100%;border-top:1px solid #dcdcdc}.map-card-title{color:var(--secondary-navy);font-size:18px;font-weight:bold;line-height:153%;padding-bottom:20px;padding-top:20px;text-transform:none;width:100%}.map-card-title a{color:var(--secondary-navy)}.map-card-title a:hover{color:var(--secondary-blue)}.team-research-listing{width:100%}.team-research-listing .facetwp-template{display:flex;align-items:stretch;justify-content:flex-start;column-gap:20px;flex-direction:row;flex-wrap:wrap;row-gap:20px}.team-research-listing .research-card-loop-item{width:calc(25% - 15px)}.filter-head-gold{font-size:16px;font-weight:800;margin-bottom:8px;text-transform:uppercase}.research-card-loop-item-3colgrid{background-color:var(--main-white);box-shadow:0px 9px 20px 0px rgba(0,0,0,0.1);display:flex;flex-direction:column;overflow-x:hidden;overflow-y:hidden;width:30%;border-radius:10px}.research-card-loop-item-3colgrid:hover{box-shadow:0px 9px 20px 0px rgba(0,0,0,0.25);transition:box-shadow 0.3s ease 0s}@media (max-width:1190px) and (min-width:768px){.research-card-loop-item-3colgrid{flex-grow:1;width:45%}}@media (max-width:767px){.research-card-loop-item-3colgrid{max-width:370px;width:100%}}.paragraph{color:var(--main-white)}.h1-interior-page{font-size:3rem;line-height:120%;text-transform:capitalize}@media (max-width:1024px){.h1-interior-page{font-size:2.5rem}}@media (max-width:767px){.h1-interior-page{font-size:2rem}}.latest-update-link-container{position:relative}.latest-update-link-container a:before{position:absolute;top:0px;right:0px;bottom:0px;left:0px}.h1-interior-page-caps{line-height:120%}.pills-nowrap{white-space:nowrap}.pl-menu-focusarea{color:var(--primary-blue);font-size:18px;font-weight:700;letter-spacing:1px;margin-bottom:10px;text-transform:uppercase}.pl-menu-productline{color:var(--paragraph-black);font-size:16px;font-weight:600;line-height:28px;margin-bottom:0px}.pl-menu-productline a{color:var(--paragraph-black)}.pl-menu-productline a:hover{color:var(--secondary-blue);text-decoration:underline}.conflict-drawer-link{color:var(--main-white);font-size:12px;font-weight:600;text-transform:uppercase}.conflict-drawer-link a{color:var(--main-white)}.conflict-drawer-link a:hover{color:var(--secondary-blue)}.btn-tertiary-navy-v2{background-color:var(--primary-blue);color:#ffffff;cursor:pointer;font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;transition:all 0.5s ease 0s;border-radius:6px;padding:10px 20px}.btn-tertiary-navy-v2:after{background-size:contain;background-repeat:no-repeat;background-position:100% 38%;background-blend-mode:normal;background-image:url('https://understandingwar.org/wp-content/uploads/2025/05/button-arrow.svg');background-attachment:local;content:"";margin-left:5px;width:30px;height:25px}.btn-tertiary-navy-v2:hover{color:var(--main-white);background-color:var(--secondary-blue)}.research-sidebar-author-name{margin-bottom:0px}@media screen and (min-width:1025px) and (max-width:1280px){.stat-card{width:30%}}@media screen and (max-width:1024px){.stat-card{width:32%}}.team-featured-bio{align-items:center;column-gap:60px;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:60px;margin-left:auto;margin-right:auto;max-width:var(--gb-container-width);padding-left:20px;padding-right:20px;position:relative;width:100%;z-index:1}@media (max-width:1024px){.team-featured-bio{align-items:center;flex-wrap:wrap;row-gap:40px;text-align:center}}@media (max-width:767px){.team-featured-bio{flex-wrap:wrap;justify-content:center;row-gap:30px}}.team-featured-bio-h6{color:var(--secondary-seafoam);font-size:14px;letter-spacing:0em;margin-bottom:10px;text-align:left;text-transform:initial;width:100%}@media (max-width:1024px){.team-featured-bio-h6{align-items:center;text-align:center}}.team-featured-bio-h3{font-size:25px;line-height:35px;margin-bottom:5px}@media (max-width:1024px){.team-featured-bio-h3{align-items:center;font-size:22px;text-align:center}}@media (max-width:767px){.team-featured-bio-h3{font-size:20px;text-align:center;width:100%}}.team-featured-bio-right-col{align-items:flex-start;display:flex;flex-direction:column;width:75%}@media (max-width:1024px){.team-featured-bio-right-col{align-items:center;justify-content:space-between;text-align:center;width:100%}}@media (max-width:767px){.team-featured-bio-right-col{width:100%}}.team-featured-bio-left-col{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:hidden;width:20%}@media (max-width:1024px){.team-featured-bio-left-col{align-items:center;width:100%}}@media (max-width:767px){.team-featured-bio-left-col{align-items:center;max-width:300px;width:100%}}.team-featured-image{width:350px;border-radius:10px}.testimonial-para{color:var(--main-white);font-size:20px;font-weight:400;line-height:35px;margin-bottom:20px;position:relative}@media (max-width:1024px){.testimonial-para{font-size:18px}}.researchers_sidebar .researcher-card>a{display:flex;column-gap:20px}.researchers_sidebar .researcher-card>a>div.researcher-info{display:flex;flex-direction:column;justify-content:center}.researchers_sidebar .researcher-card>a>div.researcher-info>h3{font-size:16px;margin-bottom:0px;line-height:1.5rem}.researchers_sidebar .researcher-card>a>div.researcher-info>span{font-size:12px;margin-bottom:0px;font-weight:bold;line-height:110%}.researchers_sidebar .researcher-card>a div>img{height:75px;width:75px;min-width:75px;box-shadow:2px 2px 5px 2px rgba(0,0,0,0.1);border-radius:50%}.researchers_sidebar .researcher-card:hover>a>div.researcher-info>h3{color:var(--secondary-blue)}.researchers_sidebar .researchers-cards{display:flex;flex-direction:column}.related-reports-link a{color:var(--secondary-navy)}.related-reports-link a:hover{color:var(--secondary-blue)}.split-tag{display:flex;flex-wrap:wrap;row-gap:10px}.split-tag span{background-color:var(--main-white);color:var(--secondary-navy);font-size:0.75rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;font-family:montserrat;transition:all 0.5s ease 0s;border-radius:48px;padding:3px 10px}.maps-related-research a{color:var(--secondary-navy);font-size:16px;line-height:1.75;font-weight:bold;font-family:Libre Baskerville,serif}.maps-related-research a:hover{color:var(--secondary-blue)}.maps-related-research p:empty{display:none}.feat-btn-tag{align-items:center;column-gap:10px;display:flex;flex-direction:row}.feat-btn-tag span{font-family:montserrat;font-size:0.75rem;font-weight:800;text-transform:uppercase;color:var(--secondary-navy);background-color:var(--main-white);white-space:nowrap;transform-origin:all 0.5s ease 0s;border-radius:48px;padding:3px 10px}.gb-button-5efe6117 a{color:var(--main-white)} 90/*# sourceURL=generateblocks-global-inline-css */ 91</style> 92<link rel='stylesheet' id='generateblocks-css' href='https://understandingwar.org/wp-content/uploads/generateblocks/style-9058.css?ver=1789730416' media='all' /> 93<link rel='stylesheet' id='generate-offside-css' href='https://understandingwar.org/wp-content/plugins/gp-premium/menu-plus/functions/css/offside.min.css?ver=2.5.6' media='all' /> 94<style id="generate-offside-inline-css"> 95:root{--gp-slideout-width:265px;}.slideout-navigation.main-navigation{background-color:var(--primary-blue);}.slideout-navigation.main-navigation .main-nav ul li a{color:var(--main-white);}.slideout-navigation.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .slideout-navigation.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .slideout-navigation.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a{color:var(--secondary-gold);}.slideout-navigation.main-navigation .main-nav ul li[class*="current-menu-"] > a{color:var(--secondary-gold);}.slideout-navigation, .slideout-navigation a{color:var(--main-white);}.slideout-navigation button.slideout-exit{color:var(--main-white);padding-left:20px;padding-right:20px;}.slide-opened nav.toggled .menu-toggle:before{display:none;}@media (max-width: 1060px){.menu-bar-item.slideout-toggle{display:none;}} 96/*# sourceURL=generate-offside-inline-css */ 97</style> 98<link rel='stylesheet' id='generate-navigation-branding-css' href='https://understandingwar.org/wp-content/plugins/gp-premium/menu-plus/functions/css/navigation-branding-flex.min.css?ver=2.5.6' media='all' /> 99<style id="generate-navigation-branding-inline-css"> 100.main-navigation.has-branding.grid-container .navigation-branding, .main-navigation.has-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding{margin-left:10px;}.main-navigation .sticky-navigation-logo, .main-navigation.navigation-stick .site-logo:not(.mobile-header-logo){display:none;}.main-navigation.navigation-stick .sticky-navigation-logo{display:block;}.navigation-branding img, .site-logo.mobile-header-logo img{height:60px;width:auto;}.navigation-branding .main-title{line-height:60px;}@media (max-width: 1290px){#site-navigation .navigation-branding, #sticky-navigation .navigation-branding{margin-left:10px;}}@media (max-width: 1060px){.main-navigation.has-branding.nav-align-center .menu-bar-items, .main-navigation.has-sticky-branding.navigation-stick.nav-align-center .menu-bar-items{margin-left:auto;}.navigation-branding{margin-right:auto;margin-left:10px;}.navigation-branding .main-title, .mobile-header-navigation .site-logo{margin-left:10px;}} 101/*# sourceURL=generate-navigation-branding-inline-css */ 102</style>
103<script id="jquery-core-js" src="https://understandingwar.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 103
103
104<script id="tooltip-script-js" src="https://understandingwar.org/wp-content/plugins/tooltips-for-gravity-forms-free/assests/js/easytp.bundle.min.js?ver=7.0.5"></script>
104 105<meta name="generator" content="performance-lab 4.2.0; plugins: embed-optimizer, webp-uploads"> 106<meta name="generator" content="webp-uploads 2.7.1"> 107<style> 108 #footer-to-top { 109 cursor: pointer; 110 } 111 112 /*Clamp large headlines*/ 113 .h1-clamp { 114 font-size: clamp(20px, 4vw + 1rem, 75px); 115 /*white-space: nowrap;*/ 116 overflow: hidden; 117 } 118 119 .btn-primary-white > .gb-icon > svg > path, .btn-secondary-gold > .gb-icon > svg > path { 120 transition: all 0.5s ease 0s; 121 } 122 123 /* global button overrides */ 124 .btn-primary-white:hover > .gb-icon > svg > path { 125 fill: white; 126 } 127 128 .btn-secondary-gold:hover > .gb-icon > svg > path { 129 fill: white; 130 } 131 132 article p { 133 margin-bottom: 1.5rem; 134 } 135</style> 136
137<script> 138 function loadFundraiseUp(w, d) { 139 console.log('Loading Fundraise Up'); 140 // Guard against duplicate loads 141 // if (w.FundraiseUp && w.FundraiseUp.v) return; 142 143 // Vendor bootstrap (unchanged) 144 (function(w,d,s,n,a){ 145 if(!w[n]){ 146 var l='call,catch,on,once,set,then,track,openCheckout'.split(','), 147 i,o=function(n){return'function'==typeof n?o.l.push([arguments])&&o 148 :function(){return o.l.push([n,arguments])&&o}},t=d.getElementsByTagName(s)[0], 149 j=d.createElement(s);j.async=!0;j.src='https://cdn.fundraiseup.com/widget/ACTZXKNA'; 150 t.parentNode.insertBefore(j,t);o.s=Date.now();o.v=5;o.h=w.location.href;o.l=[]; 151 for(i=0;i<8;i++)o[l[i]]=o(l[i]);w[n]=o 152 } 153 })(w,d,'script','FundraiseUp','ACTZXKNA'); 154 } 155 document.addEventListener('DOMContentLoaded', function () { 156 (function (w, d) { 157 var MQ = '(min-width: 280px)'; 158 // Initial check 159 // 160 if (Number(w.innerWidth) > 280) { 161 loadFundraiseUp(w,d); 162 } 163 })(window, document); 164 }); 165 166 var onResize = function () { 167 // if (w.FundraiseUp && w.FundraiseUp.v) return; 168 const el = document.getElementById('XHFMZLLG'); 169 170 if (Number(window.innerWidth) > 1060) { 171 loadFundraiseUp(window, document); 172 console.log('resizing logic over width' + Number(window.innerWidth)); 173 console.log('resizing show'); 174 el.style.opacity = "1"; 175 // window.removeEventListener('resize', onResize); 176 } else { 177 console.log('resizing hide'); 178 console.log('resizing logic under width' + Number(window.innerWidth)); 179 180 // set visilility to 0; 181 el.style.opacity = "0"; 182 } 183 } 184 185 window.addEventListener('resize', onResize); 186</script>
186 187 188 189<!-- Google Tag Manager -->
190<script>
vendor: 331 bytes, lines 190-194
190(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 191new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 192j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 193'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 194})(window,document,'script','dataLayer','
194GTM-WZN7GMVX
vendor: 3 bytes, line 194
194');
194</script>
194 195<!-- End Google Tag Manager --> 196
197<script> 198document.addEventListener('DOMContentLoaded', function() { 199 // Force set favicon via JavaScript 200 var link = document.querySelector("link[rel~='icon']"); 201 if (!link) { 202 link = document.createElement('link'); 203 link.rel = 'icon'; 204 document.head.appendChild(link); 205 } 206 link.href = '/wp-content/uploads/2024/10/cropped-ISW-Favicon-180x180.png?v=' + Date.now(); 207 208 // Also set shortcut icon 209 var shortcut = document.querySelector("link[rel='shortcut icon']"); 210 if (!shortcut) { 211 shortcut = document.createElement('link'); 212 shortcut.rel = 'shortcut icon'; 213 document.head.appendChild(shortcut); 214 } 215 shortcut.href = '/wp-content/uploads/2024/10/cropped-ISW-Favicon-180x180.png?v=' + Date.now(); 216}); 217</script>
217 <style id="isw-search-highlight-css"> 218 mark.search-highlight, 219 mark.search-highlight a { 220 background: #fef08a; 221 padding: 1px 2px; 222 border-radius: 2px; 223 font-weight: 600; 224 display: inline-block; 225 } 226 227 @keyframes highlight-pulse { 228 0% { background-color: #fde047; } 229 100% { background-color: #fef08a; } 230 } 231 232 mark.search-highlight.highlight-new { 233 animation: highlight-pulse 0.4s ease-out; 234 } 235 </style> 236 <style> 237 .facetwp-type-checkboxes .facetwp-expand span { 238 display: inline-block; 239 position: relative; 240 top: -0.1em; 241 } 242 .facetwp-type-checkboxes .facetwp-expand span.closed { 243 transform: rotate(180deg); 244 top: -0.1em; 245 } 246 a.facetwp-toggle { 247 color: #94d5e5 !important; 248 } 249 </style> 250<style>.map-series-container{display:none!important;}</style> <style> 251 .banner-end { flex: 0 0 134px; } .banner-mid { flex: 1; } @media (max-width: 768px) { .banner-end { display: none; } } 252 </style> 253 <meta data-od-replaced-content="optimization-detective 1.0.0-beta6" name="generator" content="optimization-detective 1.0.0-beta6; url_metric_groups={0:populated, 480:populated, 600:complete, 782:complete}"> 254<meta name="generator" content="embed-optimizer 1.0.0-beta5">
255<script>document.addEventListener('DOMContentLoaded', function () { 256 // Select all menu items with .menu-item-has-children, excluding those inside .slideout-navigation.main-navigation 257 const menuItems = document.querySelectorAll('.main-navigation:not(.slideout-navigation) .menu-item-has-children > a' 258 ); 259 const menuItemDropdowns = document.querySelectorAll('.main-navigation:not(.slideout-navigation) .menu-item-has-children > a > .dropdown-menu-toggle' 260 ); 261 262 const normalIcon = ` 263 <svg width="1em" height="1em" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg"> 264<path d="M9.55723 1.15931C9.55723 1.23011 9.52183 1.30975 9.46872 1.36283L5.34494 5.48664C5.29182 5.53975 5.21219 5.57512 5.14139 5.57512C5.0706 5.57512 4.99096 5.53972 4.93785 5.48664L0.814064 1.36283C0.760952 1.30972 0.725586 1.23011 0.725586 1.15931C0.725586 1.08852 0.760952 1.00885 0.814064 0.95577L1.25652 0.513283C1.30963 0.460202 1.38043 0.424805 1.46006 0.424805C1.53086 0.424805 1.6105 0.460202 1.66361 0.513283L5.14139 3.9911L8.61917 0.513283C8.67228 0.460202 8.75192 0.424805 8.82272 0.424805C8.89351 0.424805 8.97315 0.460202 9.02626 0.513283L9.46872 0.95577C9.52183 1.00888 9.55723 1.08852 9.55723 1.15931Z" fill="currentColor"/> 265</svg>`; 266 const clickedIcon = ` 267 <svg width="1em" height="1em" viewBox="0 0 9 6" fill="none" xmlns="http://www.w3.org/2000/svg"> 268<path d="M0.132227 4.84068C0.132227 4.76989 0.167625 4.69025 0.220737 4.63717L4.34452 0.51336C4.39763 0.460248 4.47727 0.424882 4.54806 0.424882C4.61886 0.424882 4.69849 0.460279 4.75161 0.51336L8.87539 4.63717C8.9285 4.69028 8.96387 4.76989 8.96387 4.84069C8.96387 4.91148 8.9285 4.99115 8.87539 5.04423L8.43293 5.48672C8.37982 5.5398 8.30903 5.5752 8.22939 5.5752C8.15859 5.5752 8.07896 5.5398 8.02584 5.48672L4.54806 2.0089L1.07028 5.48672C1.01717 5.5398 0.937531 5.57519 0.866736 5.57519C0.79594 5.57519 0.716304 5.5398 0.663192 5.48672L0.220737 5.04423C0.167625 4.99112 0.132227 4.91148 0.132227 4.84068Z" fill="currentColor"/> 269</svg>`; 270 271 //Set up the menu dropdowns initially 272 menuItemDropdowns.forEach(function (menuItemDropdown) { 273 const iconContainer = menuItemDropdown.querySelector('.gp-icon.icon-arrow'); 274 if (iconContainer) {iconContainer.innerHTML = normalIcon;} 275 }); 276 277 // Loop through each menu item and find which item was clicked, then toggle the menu on 278 menuItems.forEach(function (menuItem) { 279 menuItem.addEventListener('click', function (event) { 280 event.preventDefault(); // Prevent link navigation 281 282 const parentMenuItem = this.parentElement; // Parent menu item 283 const submenu = parentMenuItem.querySelector('.sub-menu'); // The submenu of this item 284 const iconContainer = menuItem.querySelector('.gp-icon.icon-arrow'); 285 286 // Close all other open submenus 287 document.querySelectorAll('.menu-item-has-children.toggled').forEach(function (item) { 288 if (item !== parentMenuItem) { 289 item.classList.remove('toggled'); 290 const siblingIconContainer = item.querySelector('.gp-icon.icon-arrow'); 291 if (siblingIconContainer) {siblingIconContainer.innerHTML = normalIcon;} 292 const openSubmenu = item.querySelector('.sub-menu'); 293 if (openSubmenu) openSubmenu.style.display = 'none'; 294 } 295 }); 296 297 // Toggle visibility of the clicked menu's dropdown 298 if (parentMenuItem.classList.contains('toggled')) { 299 parentMenuItem.classList.remove('toggled'); 300 submenu.style.display = 'none'; 301 iconContainer.innerHTML = normalIcon; // Update the icon based on the toggled state 302 } else { 303 parentMenuItem.classList.add('toggled'); 304 submenu.style.display = 'block'; 305 iconContainer.innerHTML = clickedIcon; // Update the icon based on the toggled state 306 } 307 }); 308 }); 309 310 // Loop through each DROPDOWN icon and find which item was clicked, then toggle the menu on 311 // This separate loop exists because WP treats dropdown icons as a separate element from the A tag, 312 // even though both elements exist inside the same parent .menu-item-has-children element 313 menuItemDropdowns.forEach(function (menuItemDropdown) { 314 menuItemDropdown.addEventListener('click', function (event) { 315 event.preventDefault(); // Prevent link navigation 316 317 const parentMenuItem = this.parentElement.parentElement; // Parent menu item 318 const submenu = parentMenuItem.querySelector('.sub-menu'); // The submenu of this item 319 const iconContainer = menuItemDropdown.querySelector('.gp-icon.icon-arrow'); 320 321 // Close all other open submenus 322 document.querySelectorAll('.menu-item-has-children.toggled').forEach(function (item) { 323 if (item !== parentMenuItem) { 324 item.classList.remove('toggled'); 325 const siblingIconContainer = item.querySelector('.gp-icon.icon-arrow'); 326 if (siblingIconContainer) {siblingIconContainer.innerHTML = normalIcon;} 327 const openSubmenu = item.querySelector('.sub-menu'); 328 if (openSubmenu) openSubmenu.style.display = 'none'; 329 } 330 }); 331 332 // Toggle visibility of the clicked menu's dropdown 333 if (parentMenuItem.classList.contains('toggled')) { 334 parentMenuItem.classList.remove('toggled'); 335 submenu.style.display = 'none'; 336 iconContainer.innerHTML = normalIcon; // Update the icon based on the toggled state 337 } else { 338 parentMenuItem.classList.add('toggled'); 339 submenu.style.display = 'block'; 340 iconContainer.innerHTML = clickedIcon; // Update the icon based on the toggled state 341 } 342 }); 343 });
344 345 // Close the menu if clicking outside the navigation 346 document.addEventListener('click', function (event) { 347 const clickedInsideNav = event.target.closest('.main-navigation') !== null; 348 349 if (!clickedInsideNav) { 350 document.querySelectorAll('.menu-item-has-children.toggled').forEach(function (item) { 351 item.classList.remove('toggled'); 352 const iconContainer = item.querySelector('.gp-icon.icon-arrow'); 353 if (iconContainer) {iconContainer.innerHTML = normalIcon;} 354 const openSubmenu = item.querySelector('.sub-menu'); 355 if (openSubmenu) openSubmenu.style.display = 'none'; 356 }); 357 console.log("Clicked outside the menu"); 358 } else { 359 console.log("Clicked inside the menu"); 360 } 361 }); 362});</script>
362<style> 363 .main-navigation li, .inside-navigation { 364 position: unset; 365 } 366 367 .main-navigation ul ul { 368 width: 100vw; /* Full viewport width */ 369 left: 50%; 370 right: calc(50% - 37px); 371 margin-left: -50vw; 372 margin-right: -50vw; 373 background-color: var(--primary-blue); 374 } 375 376 .main-navigation.is_stuck ul ul { 377 right: calc(50% - 27px); 378 } 379 380 /* Style for the mega menu container */ 381/* .about-mega-menu { 382 display: none; 383 position: absolute; 384 top: 100%; 385 left: 0; 386 background: var(--primary-blue); 387 width: 100%; 388 z-index: 999; 389 padding: 20px; 390 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); 391 } */ 392 393 /* Show the mega menu on hover */ 394 .menu-item-about:hover .about-mega-menu { 395 display: block; 396 } 397 398 @media (max-width: 1365px) { 399 .main-navigation ul ul { 400 right: calc(50% - 59px); 401 } 402 } 403</style><style class="wpcode-css-snippet">.gb-element-81531bb9 { 404 display: flex; 405 justify-self: center; 406 width: 100%; 407 max-width: 1280px; 408 padding-inline: 30px; 409} 410 411.gb-element-1d0fa0d8 { 412 position: relative; 413 z-index: 1; 414 display: flex; 415 align-items: center; 416 flex-direction: row; 417 column-gap: 30px; 418 width: 100%; 419 max-width: 1280px; 420 margin: -30px auto 70px; 421 background-color: var(--main-white); 422 border-radius: 10px; 423} 424 425.gb-text-8084a6b5 { 426 padding: 14px 50px; 427 background: #c82027; 428 color: var(--main-white); 429 font-size: 20px; 430 font-weight: 700; 431 text-transform: uppercase; 432 white-space: nowrap; 433 border-radius: 10px 0 0 10px; 434} 435 436.gb-element-85d7b981 { 437 display: flex; 438 align-items: center; 439 justify-content: space-between; 440 flex: 1 1 auto; 441 min-width: 0; 442 padding-right: 30px; 443} 444 445.gb-text-c13f5a23, 446.gb-text-896c4d5e { 447 color: var(--paragraph-black); 448 font-size: 18px; 449 font-weight: 700; 450} 451 452.gb-text-c13f5a23 { 453 line-height: 1.2rem; 454} 455 456.gb-text-896c4d5e { 457 display: flex; 458 flex: 0 0 auto; 459 margin-left: 8px; 460} 461 462.gb-text-c13f5a23 .gb-shape svg, 463.gb-text-896c4d5e .gb-shape svg { 464 width: 2.5em; 465 height: 2.5em; 466 fill: currentColor; 467} 468 469/* ========================================================================== 470 1024px 471 ========================================================================== */ 472 473@media (max-width: 1024px) { 474 475 .gb-text-8084a6b5 { 476 padding-inline: 30px; 477 } 478 479} 480 481/* ========================================================================== 482 1060px 483 ========================================================================== */ 484 485@media (max-width: 1060px) { 486 487 .gb-element-81531bb9 { 488 padding-inline: 0; 489 } 490 491} 492 493/* ========================================================================== 494 767px 495 ========================================================================== */ 496 497@media (max-width: 767px) { 498 499 .gb-element-1d0fa0d8 { 500 column-gap: 12px; 501 } 502 503 .gb-text-8084a6b5 { 504 padding-inline: 12px; 505 font-size: 18px; 506 } 507 508 .gb-element-85d7b981 { 509 padding-right: 12px; 510 } 511 512 .gb-text-c13f5a23, 513 .gb-text-896c4d5e { 514 font-size: 16px; 515 } 516 517 .gb-text-c13f5a23 .gb-shape svg, 518 .gb-text-896c4d5e .gb-shape svg { 519 width: 2em; 520 height: 2em; 521 } 522 523} 524 525/* ========================================================================== 526 480px 527 ========================================================================== */ 528 529@media (max-width: 480px) { 530 531 .gb-element-1d0fa0d8 { 532 flex-direction: column; 533 row-gap: 8px; 534 min-width: 0; 535 } 536 537 .gb-text-8084a6b5 { 538 width: 100%; 539 padding-top: 8px; 540 padding-bottom: 4px; 541 font-size: 16px; 542 text-align: center; 543 border-radius: 0 10px 0 0; 544 } 545 546 .gb-element-85d7b981 { 547 flex-direction: row; 548 padding-left: 12px; 549 } 550 551 .gb-text-c13f5a23 { 552 font-size: 14px; 553 margin-bottom: 14px; 554 } 555 556 .gb-text-896c4d5e .gb-shape svg { 557 margin-bottom: 14px; 558 } 559 560}</style><style class="wpcode-css-snippet">.facetwp-facet input::placeholder, #wp-block-search__input-7::placeholder{ 561 color:var(--primary-blue) !important; 562}</style>
562<script>// Create global function for reuse 563window.formatMapDates = function() { 564 // Function to format date to full format 565 function formatToFullDate(dateString) { 566 // Handle abbreviated months first 567 const monthMap = { 568 'JAN': 'January', 'FEB': 'February', 'MAR': 'March', 569 'APR': 'April', 'MAY': 'May', 'JUN': 'June', 570 'JUL': 'July', 'AUG': 'August', 'SEP': 'September', 571 'OCT': 'October', 'NOV': 'November', 'DEC': 'December' 572 }; 573 574 // Replace abbreviated months 575 let processedString = dateString; 576 for (let [abbr, full] of Object.entries(monthMap)) { 577 processedString = processedString.replace(new RegExp(abbr, 'i'), full); 578 } 579 580 // Parse the date string 581 const date = new Date(processedString); 582 583 // Check if date is valid 584 if (isNaN(date.getTime())) { 585 return dateString; // Return original if parsing fails 586 } 587 588 // Array of month names 589 const months = [ 590 'January', 'February', 'March', 'April', 'May', 'June', 591 'July', 'August', 'September', 'October', 'November', 'December' 592 ]; 593 594 // Format: November 12, 2025
595 const month = months[date.getMonth()]; 596 const day = date.getDate(); 597 const year = date.getFullYear(); 598 599 return `${month} ${day}, ${year}`; 600 } 601 602 // Find all elements with map-date class that haven't been formatted yet 603 const dateElements = document.querySelectorAll('.map-date:not([data-formatted])'); 604 605 // Process each date element 606 dateElements.forEach(function(element) { 607 const currentText = element.textContent.trim(); 608 609 if (currentText) { 610 let formattedDate = ''; 611 612 // Handle common WordPress date formats 613 // APR 8, 2025 format 614 if (/^[A-Z]{3}\s+\d{1,2},\s+\d{4}$/i.test(currentText)) { 615 formattedDate = formatToFullDate(currentText); 616 } 617 // 04/08/2025 or 4/8/2025 format 618 else if (/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(currentText)) { 619 formattedDate = formatToFullDate(currentText); 620 } 621 // 2025-04-08 format 622 else if (/^\d{4}-\d{2}-\d{2}$/.test(currentText)) { 623 formattedDate = formatToFullDate(currentText); 624 } 625 // Try parsing as-is 626 else { 627 formattedDate = formatToFullDate(currentText); 628 } 629 630 // Update the element with formatted date 631 if (formattedDate && formattedDate !== currentText) { 632 element.textContent = formattedDate; 633 element.setAttribute('data-formatted', 'true'); // Mark as formatted 634 } 635 } 636 }); 637 638 // Return number of elements processed (useful for debugging) 639 return dateElements.length; 640}; 641 642// Strategy 1: Run immediately when script loads 643window.formatMapDates(); 644 645// Strategy 2: Run at various DOM ready states 646if (document.readyState === 'loading') { 647 document.addEventListener('DOMContentLoaded', window.formatMapDates); 648} else { 649 // DOM already loaded, run immediately 650 window.formatMapDates(); 651} 652 653// Strategy 3: Run when DOM is interactive (before images load) 654document.addEventListener('readystatechange', function() { 655 if (document.readyState === 'interactive' || document.readyState === 'complete') { 656 window.formatMapDates(); 657 } 658}); 659 660// Strategy 4: Watch for new elements being added (for dynamic content) 661const observer = new MutationObserver(function(mutations) { 662 // Only run if we find elements with map-date class 663 if (document.querySelector('.map-date:not([data-formatted])')) { 664 window.formatMapDates(); 665 } 666}); 667 668// Start observing as soon as possible 669if (document.body) { 670 observer.observe(document.body, { 671 childList: true, 672 subtree: true 673 }); 674} else { 675 // If body doesn't exist yet, wait for it 676 document.addEventListener('DOMContentLoaded', function() { 677 observer.observe(document.body, { 678 childList: true, 679 subtree: true 680 }); 681 }); 682} 683 684// Strategy 5: Run multiple times in quick succession at start 685let runCount = 0; 686const quickRun = setInterval(function() { 687 window.formatMapDates(); 688 runCount++; 689 if (runCount > 10) { 690 clearInterval(quickRun); 691 } 692}, 10); // Run every 10ms for the first 100ms 693 694// Strategy 6: Also catch any that might be added via AJAX later 695document.addEventListener('ajaxComplete', window.formatMapDates); 696window.addEventListener('load', window.formatMapDates);</script>
696<style class="wpcode-css-snippet">@media (min-width: 481px) { 697.alert-banner-text { 698 flex: 1 1 auto; 699 min-width: 0; 700 overflow: hidden; 701 white-space: nowrap; 702 text-overflow: ellipsis; 703} 704} 705@media (max-width: 480px) { 706 .alert-banner-text { 707 display: -webkit-box; 708 -webkit-line-clamp: 2; 709 -webkit-box-orient: vertical; 710 overflow: hidden; 711 text-overflow: ellipsis; 712 white-space: normal; 713 max-width: 100%; 714 min-width: 0; 715 } 716}</style><style> 717.full-width-content #right-sidebar, 718.tax-map-series #jump-menu-links.loaded { 719 display: none !important; 720} 721.full-width-content #primary { 722 width: 100%; 723} 724.tax-map-series .gb-container-0aa2080b { 725 padding-bottom: 0px; 726} 727</style>
728<script>function updateJumpMenuWrapStatus() { 729 const jumpMenu = document.querySelector('.jump-menu'); 730 const items = document.querySelectorAll('.jump-menu li'); 731 732 if (!jumpMenu || items.length === 0) return; 733 734 let firstTop = null; 735 let hasSecondLine = false; 736 737 items.forEach(item => { 738 const top = item.getBoundingClientRect().top; 739 740 if (firstTop === null) { 741 firstTop = top; 742 } 743 744 if (top > firstTop) { 745 hasSecondLine = true; 746 } 747 }); 748 749 if (hasSecondLine) { 750 jumpMenu.classList.add('has-second-line'); 751 } else { 752 jumpMenu.classList.remove('has-second-line'); 753 } 754} 755 756// Run after layout 757window.addEventListener('load', updateJumpMenuWrapStatus); 758window.addEventListener('resize', updateJumpMenuWrapStatus);</script>
758<style class="wpcode-scss-compiled-snippet">.researchers_sidebar .researcher-card.no-image,.researchers_sidebar .researcher-card.no-link,.researchers_sidebar .researcher-card.draft-post{display:flex;column-gap:20px}.researchers_sidebar .researcher-card.no-image .researcher-thumbnail img,.researchers_sidebar .researcher-card.no-link .researcher-thumbnail img,.researchers_sidebar .researcher-card.draft-post .researcher-thumbnail img{height:75px;width:75px;min-width:75px;box-shadow:2px 2px 5px 2px rgba(0,0,0,0.1);border-radius:50%;object-fit:scale-down}.researchers_sidebar .researcher-card.no-image .researcher-info,.researchers_sidebar .researcher-card.no-link .researcher-info,.researchers_sidebar .researcher-card.draft-post .researcher-info{display:flex;flex-direction:column;justify-content:center}.researchers_sidebar .researcher-card.no-image .researcher-info h3,.researchers_sidebar .researcher-card.no-link .researcher-info h3,.researchers_sidebar .researcher-card.draft-post .researcher-info h3{font-size:16px;margin-bottom:0px;line-height:1.5rem}.researchers_sidebar .researcher-card.no-image .researcher-info span,.researchers_sidebar .researcher-card.no-link .researcher-info span,.researchers_sidebar .researcher-card.draft-post .researcher-info span{font-size:12px;margin-bottom:0px;font-weight:bold;line-height:110%}</style>
758<script>document.addEventListener('DOMContentLoaded', function () { 759 document.body.addEventListener('click', function (e) { 760 const anchor = e.target.closest('a[href]'); 761 762 if (!anchor) return; 763 764 const href = anchor.getAttribute('href'); 765 766 // Match criticalthreats.org and ignore already-set target attributes 767 if ( 768 href.startsWith('https://www.criticalthreats.org') && 769 !anchor.hasAttribute('target') 770 ) { 771 e.preventDefault(); 772 window.open(href, '_blank', 'noopener'); 773 } 774 }); 775});</script>
775<script>document.addEventListener('DOMContentLoaded', function () { 776 if (window.jumpMenuInitialized) { 777 console.log('Jump menu already initialized by another script'); 778 return; 779 } 780 781 window.jumpMenuInitialized = true; 782 initializeDynamicJumpMenu(); 783 784 // Handle mobile positioning on load 785 handleMobileJumpMenu(); 786 787 // Initialize smart sticky visibility (mobile only) 788 initSmartStickyVisibility(); 789}); 790 791function initializeDynamicJumpMenu() { 792 // Only target jump menus within the main content area (where blocks are placed) 793 const jumpMenuContainers = document.querySelectorAll('#jump-menu-links'); 794 if (jumpMenuContainers.length === 0) return; 795 796 jumpMenuContainers.forEach(function(jumpMenuContainer) { 797 processJumpMenuContainer(jumpMenuContainer); 798 }); 799 800 // Handle mobile positioning after processing 801 handleMobileJumpMenu(); 802} 803 804function processJumpMenuContainer(jumpMenuContainer) { 805 // CAPTURE ACF TITLE FIRST - before any processing 806 const existingTitle = jumpMenuContainer.querySelector('.jump-menu__title'); 807 const acfTitle = existingTitle ? existingTitle.textContent.trim() : ''; 808 809 // Check if user added content manually 810 const hasManualContent = 811 jumpMenuContainer.querySelector('.jump-menu li') || 812 jumpMenuContainer.querySelector('.jump-menu-select option[value^="#"]'); 813 814 if (hasManualContent) { 815 jumpMenuContainer.classList.add('loaded'); 816 initializeJumpMenuFeatures(); // enable click handlers on manual content 817 return; 818 } 819 820 // Scan for auto-generation targets 821 const allTargets = document.querySelectorAll('main.site-main [data-id][title]'); 822 const jumpTargets = []; 823 824 for (let i = 0; i < allTargets.length; i++) { 825 const target = allTargets[i];
826 const id = target.getAttribute('data-id'); 827 const title = target.getAttribute('title'); 828 829 if (id && title && id.trim() && title.trim() && !id.startsWith('$')) { 830 if (!target.id) target.id = id; 831 jumpTargets.push(target); 832 } 833 } 834 835 if (jumpTargets.length === 0) { 836 jumpMenuContainer.classList.remove('loaded'); 837 838 // Add no-jump class for mobile when there are no targets 839 const mobileBreakpoint = 768; 840 const isMobile = window.innerWidth <= mobileBreakpoint; 841 if (isMobile) { 842 jumpMenuContainer.classList.add('no-jump'); 843 } 844 845 // Only clear content on posts, leave pages alone 846 const isPost = document.body.classList.contains('single-post'); 847 if (isPost) { 848 jumpMenuContainer.innerHTML = ''; 849 } 850 return; 851 } 852 853 // Remove no-jump class if it exists (in case of dynamic updates) 854 jumpMenuContainer.classList.remove('no-jump'); 855 856 // Pass the captured ACF title to buildJumpMenu 857 jumpMenuContainer.innerHTML = buildJumpMenu(jumpTargets, acfTitle); 858 jumpMenuContainer.classList.add('loaded'); 859 //document.getElementsByTagName('nav')[0].appenchChild(buildJumpMenu(jumpTargets, acfTitle)); 860 initializeJumpMenuFeatures(); 861} 862 863function buildJumpMenu(targets, acfTitle) { 864 if (!targets || targets.length === 0) return ''; 865 866 let html = '<div class="container">'; 867 868 // Only add title if ACF title exists 869 if (acfTitle) { 870 html += '<h2 class="jump-menu__title">' + escapeHtml(acfTitle) + '</h2>'; 871 } 872 873 html += '<ul class="jump-menu">'; 874 for (let i = 0; i < targets.length; i++) { 875 const target = targets[i]; 876 const title = target.getAttribute('title'); 877 const dataId = target.getAttribute('data-id'); 878 html += '<li><a href="#' + dataId + '" data-target="' + dataId + '">' + escapeHtml(title) + '</a></li>'; 879 } 880 html += '</ul>'; 881 882 html += '<div class="jump-menu-mobile">'; 883// html += '<select class="jump-menu-select">'; 884 html += '<select class="jump-menu-select" aria-label="' + escapeHtml(acfTitle || 'Jump to section') + '">'; 885// html += '<option value="">' + escapeHtml(acfTitle) + 'â¦</option>'; 886 html += '<option value="" disabled selected>' + escapeHtml(acfTitle) + 'â¦</option>'; 887 for (let i = 0; i < targets.length; i++) { 888 const target = targets[i]; 889 const title = target.getAttribute('title'); 890 const dataId = target.getAttribute('data-id'); 891 html += '<option value="#' + dataId + '">' + escapeHtml(title) + '</option>'; 892 } 893 html += '</select></div>'; 894 895 html += '</div>'; 896 return html; 897} 898 899function initializeJumpMenuFeatures() { 900 const links = document.querySelectorAll('.jump-menu a[href^="#"]'); 901 for (let i = 0; i < links.length; i++) { 902 links[i].addEventListener('click', function (e) { 903 e.preventDefault(); 904 const targetId = this.getAttribute('href').substring(1); 905 smoothScrollToElement(targetId); 906 }); 907 } 908 909 const mobileSelects = document.querySelectorAll('.jump-menu-select'); 910 for (let i = 0; i < mobileSelects.length; i++) { 911 mobileSelects[i].addEventListener('change', function () { 912 if (this.value) { 913 const targetId = this.value.substring(1); 914 smoothScrollToElement(targetId); 915 } 916 }); 917 } 918 919 // Only apply sticky behavior and scroll spy on single posts, not pages 920 const isPost = document.body.classList.contains('single-post'); 921 if (isPost) { 922 initStickyBehavior(); 923 initScrollSpy(); 924 } 925} 926 927function initStickyBehavior() { 928 const jumpMenus = document.querySelectorAll('#jump-menu-links'); 929 const mobileBreakpoint = 768; 930 931 for (let i = 0; i < jumpMenus.length; i++) { 932 const jumpMenu = jumpMenus[i];
933 if (!jumpMenu || jumpMenu.style.display === 'none') continue; 934 935 const existingSpacer = jumpMenu.parentNode.querySelector('.jump-menu-spacer'); 936 if (existingSpacer) { 937 existingSpacer.remove(); 938 } 939 940 const spacer = document.createElement('div'); 941 spacer.className = 'jump-menu-spacer'; 942 jumpMenu.parentNode.insertBefore(spacer, jumpMenu.nextSibling); 943 944 const menuOffset = jumpMenu.offsetTop; 945 const menuHeight = jumpMenu.offsetHeight; 946 spacer.style.height = menuHeight + 'px'; 947 948 window.addEventListener('scroll', function () { 949 // Skip sticky behavior on mobile 950 if (window.innerWidth <= mobileBreakpoint) return; 951 952 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 953 954 if (scrollTop > menuOffset - 66) { 955 jumpMenu.classList.add('fixed'); 956 position_jumplinks(); 957 } else { 958 reset_jump_links(); 959 jumpMenu.classList.remove('fixed'); 960 } 961 }); 962 } 963} 964 965function smoothScrollToElement(targetId) { 966 let target = document.querySelector('#' + targetId) || document.querySelector('[data-id="' + targetId + '"]'); 967 if (!target) return; 968 969 const jumpMenu = document.querySelector('#jump-menu-links'); 970 const jumpMenuHeight = jumpMenu && jumpMenu.classList.contains('fixed') ? jumpMenu.offsetHeight : 0; 971 const offset = 115 + jumpMenuHeight + 135; 972 const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset; 973 974 window.scrollTo({ 975 top: targetPosition, 976 behavior: 'smooth' 977 }); 978} 979 980function initScrollSpy() { 981 const sections = document.querySelectorAll('main.site-main [id], main.site-main [data-id][title]'); 982 const navLinks = document.querySelectorAll('.jump-menu a'); 983 984 if (sections.length === 0 || navLinks.length === 0) return; 985 986 const observerOptions = { 987 rootMargin: '-20% 0px -70% 0px' 988 }; 989 990// const observer = new IntersectionObserver(function(entries) { 991// for (let i = 0; i < entries.length; i++) { 992// const entry = entries[i]; 993// if (entry.isIntersecting) { 994 995// const dataId = entry.target.getAttribute('id') || entry.target.getAttribute('data-id'); 996// const activeLink = document.querySelector('.jump-menu a[href="#' + dataId + '"]'); 997// const title = entry.target.getAttribute('title'); 998// if (dataId && title && activeLink) { 999// // add active link 1000// activeLink.classList.add('active'); 1001 1002// // select menu 1003// const mobileSelects = document.querySelectorAll('.jump-menu-select'); 1004// for (let k = 0; k < mobileSelects.length; k++) { 1005// mobileSelects[k].value = '#' + dataId; 1006// } 1007// } 1008// } 1009// } 1010// }, observerOptions); 1011 1012// for (let i = 0; i < sections.length; i++) { 1013// observer.observe(sections[i]); 1014// } 1015} 1016 1017function escapeHtml(text) { 1018 const div = document.createElement('div'); 1019 div.textContent = text; 1020 return div.innerHTML; 1021} 1022 1023let reInitTimeout; 1024function watchForChanges() { 1025 const observer = new MutationObserver(function() { 1026 clearTimeout(reInitTimeout); 1027 reInitTimeout = setTimeout(initializeDynamicJumpMenu, 500); 1028 }); 1029 1030 observer.observe(document.body, { 1031 childList: true, 1032 subtree: true, 1033 attributes: true, 1034 attributeFilter: ['data-id', 'title'] 1035 }); 1036} 1037 1038function isVisibleElement(el) { 1039 if (!el) return false; 1040 1041 const style = window.getComputedStyle(el); 1042 if (style.display === 'none') return false; 1043 if (style.visibility === 'hidden') return false; 1044 if (parseFloat(style.opacity) === 0) return false; 1045 1046 // Check size 1047 if (el.offsetWidth <= 0 && el.offsetHeight <= 0) return false; 1048 1049 // Optionally ensure it's in the DOM, in case it's detached 1050 if (!el.isConnected) return false; 1051 1052 return true; 1053} 1054 1055/** 1056 * Check if element is visible (same as before, maybe with modifications). 1057 */ 1058function isVisibleElement(el, opts = {}) { 1059 if (!el || !el.isConnected) return false; 1060 const style = window.getComputedStyle(el); 1061 if (style.display === 'none') return false; 1062 if (style.visibility === 'hidden') return false; 1063 if (parseFloat(style.opacity) === 0) return false; 1064 if (el.offsetWidth <= 0 || el.offsetHeight <= 0) return false; 1065 1066 // Optionally check if part of it is in the viewport: 1067 if (opts.requireInViewport) { 1068 const rect = el.getBoundingClientRect(); 1069 const vpWidth = window.innerWidth || document.documentElement.clientWidth; 1070 const vpHeight = window.innerHeight || document.documentElement.clientHeight; 1071 if (rect.bottom < 0 || rect.top > vpHeight) return false; 1072 if (rect.right < 0 || rect.left > vpWidth) return false; 1073 } 1074 1075 return true; 1076} 1077 1078/** 1079 * Returns the nav.main-navigation element that's visible, 1080 * preferring fixed-positioned ones if present. 1081 * @param {Object} opts 1082 * @param {boolean} opts.requireInViewport - whether visibility needs intersection with viewport 1083 * @returns {Element|null} 1084 */ 1085function getVisibleMainNav(opts = {}) { 1086 const navs = Array.from(document.querySelectorAll('nav.main-navigation')); 1087 if (navs.length === 0) return null; 1088 1089 // 1) Look for one that is fixed + visible 1090 for (const nav of navs) { 1091 const style = window.getComputedStyle(nav); 1092 if (style.position === 'fixed' && isVisibleElement(nav, opts)) { 1093 return nav; 1094 } 1095 } 1096 1097 // 2) If none fixed, fallback to any visible one 1098 for (const nav of navs) { 1099 if (isVisibleElement(nav, opts)) { 1100 return nav; 1101 } 1102 } 1103 1104 return null; 1105} 1106 1107function rectRelativeToDocument(el) { 1108 const r = el.getBoundingClientRect(); 1109 return { 1110 top: r.top + window.scrollY, 1111 left: r.left + window.scrollX, 1112 right: r.right + window.scrollX, 1113 bottom: r.bottom + window.scrollY, 1114 width: r.width, 1115 height: r.height 1116 }; 1117} 1118 1119function reset_jump_links() { 1120 console.log('resetting jumplinks'); 1121 var target = document.getElementById('jump-menu-links'); // adjust selector 1122 if (!target) { 1123 console.warn("Target element not found"); 1124 return; 1125 } 1126 1127 target.style.position = 'relative'; 1128 target.style.top = 'unset'; 1129 1130 console.log('position reset'); 1131} 1132 1133function position_jumplinks() { 1134// Grab the nav and the element you want to position below it 1135 var nav = getVisibleMainNav(document.querySelector('nav.main-navigation')); 1136 var target = document.getElementById('jump-menu-links'); // adjust selector 1137 1138 console.log('Found Nav Element ' + nav.id); 1139 1140 // Error checks 1141 if (!nav) { 1142 console.warn("nav.main-navigation not found"); 1143 return; 1144 } 1145 1146 if (!target) { 1147 console.warn("Target element not found"); 1148 return; 1149 } 1150 1151 // Function to reposition the target 1152 function positionTargetBelowNav() { 1153 // Get bounding rect of nav 1154 var navRect = nav.getBoundingClientRect(); 1155 1156 // The bottom relative to viewport 1157 var navBottom = navRect.bottom; 1158 1159 // To set top relative to document, add scroll offset 1160 var navBottomDoc = navBottom; 1161 1162 // Set the target's CSS 1163 target.style.position = 'fixed'; // or fixed/relative depending on context 1164 target.style.top = navBottomDoc + 'px'; 1165 } 1166 1167 // Call initially 1168 positionTargetBelowNav(); 1169 1170 // Optional: reposition on window resize / scroll 1171 //window.addEventListener('resize', positionTargetBelowNav); 1172 //window.addEventListener('scroll', positionTargetBelowNav); 1173} 1174 1175// ========== NEW MOBILE HANDLING FUNCTIONS ========== 1176 1177/** 1178 * Handle mobile jump menu positioning 1179 * Moves the jump menu into the .has-sticky-branding container on mobile 1180 */ 1181function handleMobileJumpMenu() { 1182 // Define breakpoint for mobile (adjust as needed) 1183 const mobileBreakpoint = 768; 1184 1185 // Check if we're on mobile 1186 const isMobile = window.innerWidth <= mobileBreakpoint; 1187 1188 if (!isMobile) { 1189 // If not mobile, ensure jump menu is in original position 1190 restoreJumpMenuPosition(); 1191 // Remove no-jump class on desktop 1192 const jumpMenuContainer = document.getElementById('jump-menu-links'); 1193 if (jumpMenuContainer) { 1194 jumpMenuContainer.classList.remove('no-jump'); 1195 } 1196 return; 1197 } 1198 1199 // Get the jump menu container 1200 const jumpMenuContainer = document.getElementById('jump-menu-links'); 1201 if (!jumpMenuContainer) return; 1202 1203 // Check if jump menu has no items and add no-jump class for mobile 1204 const hasJumpItems = jumpMenuContainer.querySelector('.jump-menu li') || 1205 jumpMenuContainer.querySelector('.jump-menu-select option[value^="#"]'); 1206 if (!hasJumpItems && jumpMenuContainer.innerHTML.trim() === '') { 1207 jumpMenuContainer.classList.add('no-jump'); 1208 } 1209 1210 // Target the .has-sticky-branding container 1211 const stickyBrandingContainer = document.querySelector('.has-sticky-branding'); 1212 1213 if (!stickyBrandingContainer) { 1214 console.warn('Sticky branding container not found'); 1215 return; 1216 } 1217 1218 // Store original parent for restoration 1219 if (!jumpMenuContainer.hasAttribute('data-original-parent')) { 1220 jumpMenuContainer.setAttribute('data-original-parent-id', 1221 jumpMenuContainer.parentElement.id || ''); 1222 jumpMenuContainer.setAttribute('data-original-parent-class', 1223 jumpMenuContainer.parentElement.className || ''); 1224 jumpMenuContainer.setAttribute('data-original-next-sibling-id', 1225 jumpMenuContainer.nextElementSibling ? jumpMenuContainer.nextElementSibling.id || '' : ''); 1226 } 1227 1228 // Move jump menu directly into .has-sticky-branding (no wrapper) 1229 if (jumpMenuContainer.parentElement !== stickyBrandingContainer) { 1230 // Remove any existing wrapper if it exists 1231 const existingWrapper = jumpMenuContainer.closest('.mobile-jump-menu-wrapper'); 1232 if (existingWrapper) { 1233 // Move jumpMenuContainer out of wrapper before removing wrapper 1234 existingWrapper.parentElement.insertBefore(jumpMenuContainer, existingWrapper); 1235 existingWrapper.remove(); 1236 } 1237 1238 // Find the nav element inside sticky-branding to insert after it 1239 const navElement = stickyBrandingContainer.querySelector('nav.main-navigation'); 1240 1241 if (navElement && navElement.nextSibling) { 1242 // Insert after the nav element 1243 stickyBrandingContainer.insertBefore(jumpMenuContainer, navElement.nextSibling); 1244 } else { 1245 // Otherwise append to the end of sticky-branding 1246 stickyBrandingContainer.appendChild(jumpMenuContainer); 1247 } 1248 1249 // Add mobile-specific classes 1250 jumpMenuContainer.classList.add('is-mobile', 'in-mobile-container'); 1251 1252 // Disable sticky behavior on mobile 1253 jumpMenuContainer.classList.remove('fixed'); 1254 1255 console.log('Jump menu moved into .has-sticky-branding'); 1256 } 1257} 1258 1259/** 1260 * Restore jump menu to original position (for desktop view) 1261 */ 1262function restoreJumpMenuPosition() { 1263 const jumpMenuContainer = document.getElementById('jump-menu-links'); 1264 if (!jumpMenuContainer) return; 1265 1266 // Check if we need to restore 1267 if (!jumpMenuContainer.classList.contains('in-mobile-container')) return; 1268 1269 // Find original parent 1270 const originalParentId = jumpMenuContainer.getAttribute('data-original-parent-id'); 1271 const originalParentClass = jumpMenuContainer.getAttribute('data-original-parent-class'); 1272 const originalNextSiblingId = jumpMenuContainer.getAttribute('data-original-next-sibling-id'); 1273 1274 let originalParent; 1275 if (originalParentId) { 1276 originalParent = document.getElementById(originalParentId); 1277 } else if (originalParentClass) { 1278 originalParent = document.querySelector('.' + originalParentClass.split(' ')[0]); 1279 } 1280
1281 // If we can't find original parent, look for common content areas 1282 if (!originalParent) { 1283 originalParent = 1284 document.querySelector('main.site-main') || 1285 document.querySelector('.content-area') || 1286 document.querySelector('#content') || 1287 document.querySelector('article'); 1288 } 1289 1290 if (originalParent) { 1291 // Try to restore to original position (before the original next sibling if it exists) 1292 if (originalNextSiblingId) { 1293 const originalNextSibling = document.getElementById(originalNextSiblingId); 1294 if (originalNextSibling && originalNextSibling.parentElement === originalParent) { 1295 originalParent.insertBefore(jumpMenuContainer, originalNextSibling); 1296 } else { 1297 originalParent.appendChild(jumpMenuContainer); 1298 } 1299 } else { 1300 originalParent.appendChild(jumpMenuContainer); 1301 } 1302 1303 // Remove mobile classes 1304 jumpMenuContainer.classList.remove('is-mobile', 'in-mobile-container'); 1305 1306 console.log('Jump menu restored to original position'); 1307 } 1308} 1309 1310/** 1311 * Smart sticky navigation visibility - MOBILE ONLY 1312 * Hides navigation when scrolling down past content, shows immediately when scrolling up 1313 */ 1314function initSmartStickyVisibility() { 1315 let lastScrollTop = 0; 1316 let isHidden = false; 1317 const mobileBreakpoint = 768; // Define mobile breakpoint 1318 1319 let stickyNav = document.getElementById('sticky-navigation') || 1320 document.querySelector('.has-sticky-branding'); 1321 1322 if (!stickyNav) { 1323 console.error('Sticky navigation not found'); 1324 return; 1325 } 1326 1327 window.addEventListener('scroll', function() { 1328 // Check if we're on mobile - if not, exit early 1329 const isMobile = window.innerWidth <= mobileBreakpoint; 1330 if (!isMobile) { 1331 // Make sure to remove the hidden class if switching from mobile to desktop 1332 if (stickyNav.classList.contains('sticky-nav-hidden')) { 1333 stickyNav.classList.remove('sticky-nav-hidden'); 1334 isHidden = false; 1335 } 1336 return; // Exit if not mobile 1337 } 1338 1339 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 1340 1341 const isStickyActive = stickyNav.classList.contains('sticky-navigation-transition') || 1342 stickyNav.classList.contains('is_stuck'); 1343 1344 if (!isStickyActive) return; 1345 1346 const isPost = document.body.classList.contains('single-post'); 1347 const isPage = document.body.classList.contains('page'); 1348 1349 let triggerElement; 1350 1351 if (isPost) { 1352 // For posts, use the existing container logic 1353 triggerElement = document.querySelector('.site.grid-container.container') || 1354 document.querySelector('main.site-main'); 1355 } else if (isPage) { 1356 // More flexible approach for pages - look for meaningful content containers 1357 const entryContent = document.querySelector('.entry-content'); 1358 1359 if (entryContent) { 1360 // Look for gb-containers within entry-content 1361 const gbContainers = entryContent.querySelectorAll('.gb-container'); 1362 1363 // Find the first gb-container that has substantial content 1364 for (let gb of gbContainers) { 1365 // Check if this container has actual height and is positioned meaningfully 1366 if (gb.offsetHeight > 300 && gb.offsetTop > 400) { 1367 triggerElement = gb; 1368 break; 1369 } 1370 } 1371 1372 // If no suitable gb-container, use entry-content itself 1373 if (!triggerElement) { 1374 triggerElement = entryContent; 1375 } 1376 } 1377 1378 // Fallback to standard container 1379 if (!triggerElement) { 1380 triggerElement = document.querySelector('.site.grid-container.container'); 1381 } 1382 } else { 1383 // For other page types (archives, etc.) 1384 triggerElement = document.querySelector('.site.grid-container.container') || 1385 document.querySelector('main.site-main'); 1386 } 1387 1388 if (triggerElement) { 1389 const triggerTop = triggerElement.offsetTop; 1390 1391 // Scrolling down 1392 if (scrollTop > lastScrollTop) { 1393 if (scrollTop > triggerTop + 100) {
1394 if (!isHidden) { 1395 stickyNav.classList.add('sticky-nav-hidden'); 1396 isHidden = true; 1397 } 1398 } 1399 } 1400 // Scrolling up - show immediately 1401 else if (scrollTop < lastScrollTop) { 1402 if (isHidden) { 1403 stickyNav.classList.remove('sticky-nav-hidden'); 1404 isHidden = false; 1405 } 1406 } 1407 } 1408 1409 lastScrollTop = scrollTop; 1410 }); 1411 1412 // Also handle resize events to check mobile status 1413 window.addEventListener('resize', function() { 1414 const isMobile = window.innerWidth <= mobileBreakpoint; 1415 if (!isMobile && stickyNav.classList.contains('sticky-nav-hidden')) { 1416 stickyNav.classList.remove('sticky-nav-hidden'); 1417 isHidden = false; 1418 } 1419 }); 1420} 1421 1422// Add resize listener to handle orientation changes and responsive behavior 1423let mobileResizeTimeout; 1424window.addEventListener('resize', function() { 1425 clearTimeout(mobileResizeTimeout); 1426 mobileResizeTimeout = setTimeout(function() { 1427 handleMobileJumpMenu(); 1428 }, 250); 1429}); 1430 1431// Add mobile-specific CSS 1432(function injectMobileStyles() { 1433 const style = document.createElement('style'); 1434 style.textContent = ` 1435 /* Smart sticky navigation hiding - MOBILE ONLY */ 1436 @media (max-width: 768px) { 1437 #sticky-navigation.sticky-navigation-transition { 1438 transition: opacity 0.3s ease, transform 0.3s ease; 1439 } 1440 1441 #sticky-navigation.sticky-navigation-transition.sticky-nav-hidden { 1442 opacity: 0; 1443 pointer-events: none; 1444 } 1445 1446 /* Hide jump menu when it has no-jump class on mobile */ 1447 #jump-menu-links.no-jump { 1448 display: none !important; 1449 } 1450 } 1451 1452 /* Even more minimal for very small screens */ 1453 @media (max-width: 500px) { 1454 #sticky-navigation.sticky-navigation-transition.sticky-nav-hidden { 1455 opacity: 0; 1456 transform: translateY(-100%); 1457 } 1458 } 1459 1460 /* Ensure smooth reappearance on mobile */ 1461 @media (max-width: 768px) { 1462 #sticky-navigation.sticky-navigation-transition:not(.sticky-nav-hidden) { 1463 opacity: 1; 1464 transform: translateY(0); 1465 } 1466 } 1467 `; 1468 document.head.appendChild(style); 1469})();</script>
1469<script> document.addEventListener('DOMContentLoaded', function () { 1470 const container = document.querySelector('.gb-element-ed820b31'); 1471 if (container) { 1472 const emptyPs = container.querySelectorAll('p'); 1473 emptyPs.forEach(p => { 1474 if (p.innerHTML.trim() === '') { 1475 p.style.display = 'none'; 1476 } 1477 }); 1478 } 1479 });</script>
1479<style class="wpcode-css-snippet">.donate-form{position:relative;}.donate-form .gfield_label{display:block !important;color:var(--secondary-gold);font-family:montserrat;font-size:12px !important;font-weight:700 !important;letter-spacing:1px;line-height:1.2;text-transform:uppercase;text-align:left;}.donate-form input[type=text],.donate-form input[type=email],.donate-form select{border-radius:8px;border:1px solid;background:#fff;font-size:12px!important;}.donate-form .gfield_required{display:none !important;}.donate-form .gfield_radio{display:flex;align-items:center;flex-wrap:wrap;}.donate-form .gfield_radio .gform-field-label{font-size:12px !important;font-weight:700;}.donate-form .gfield_radio > div{width:calc(25% - (25px));}@media only screen and (max-width:767px){.donate-form .gfield_radio > div{width:calc(50% - (25px));}}.donate-form .button{background-color:var(--secondary-gold);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;color:var(--text-brown) !important;font-family:montserrat;font-size:1.05rem;font-weight:bold;letter-spacing:2px;padding-left:35px;padding-right:35px;text-transform:uppercase;margin:0 auto;line-height:40px !important;transition:all 0.5s ease 0s !important;text-align:center;}.donate-form .button:hover{color:var(--main-white) !important;background-color:var(--primary-gold) !important;}</style><style class="wpcode-css-snippet">.facetwp-checkbox{background:url(/wp-content/plugins/facetwp/assets/images/checkbox.png) no-repeat 0 0.4em !important;background-size:14px 14px !important;margin-bottom:4px !important;padding-left:20px !important;cursor:pointer !important;vertical-align:top !important;}.facetwp-checkbox.checked{background-image:url(/wp-content/plugins/facetwp/assets/images/checkbox-on.png) !important;}#button_8_select_all{font-size:0.938rem !important;margin-top:30px;}@media only screen and (max-width:768px){.gb-headline.gb-headline-8de2bd96.gb-headline-text.eyebrow{margin-bottom:0 !important;}.facetwp-facet.facetwp-facet-date_from.facetwp-type-date_range{display:inline-grid;}}.facetwp-facet{margin-bottom:0px !important;}</style><style class="wpcode-css-snippet">.endnotes-wrapper{border-top:0 !important;margin:0 !important;padding-top:0 !important;}.endnotes-accordion{margin-top:-1px !important;border-top:1px solid var(--secondary-gold) !important;border-bottom:1px solid var(--secondary-gold) !important;}.endnotes-accordion summary{align-items:center !important;justify-content:space-between !important;column-gap:0.5em !important;font-weight:bold !important;text-transform:uppercase !important;background:var(--main-white) !important;text-decoration:none !important;display:flex !important;border:none !important;}.endnotes-accordion summary span{align-items:center !important;background-color:var(--main-white) !important;color:var(--primary-blue) !important;column-gap:0.5em !important;display:inline-flex !important;font-weight:bold !important;justify-content:space-between !important;padding:0px !important;text-align:left !important;text-decoration:none !important;text-transform:uppercase !important;}.endnotes-accordion summary span:nth-of-type(2){color:#fff !important;}.endnotes-accordion summary:hover{background:none !important;}.endnotes-accordion > div{padding:inherit !important;background:transparent !important;border:none !important;max-height:none !important;overflow-y:unset !important;}.endnotes-accordion summary span:last-child::after{content:'';display:inline-block;width:1em;height:1em;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" width="1em" height="1em"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" fill="currentColor"/></svg>');background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform 0.3s;}.endnotes-accordion:not([open]) summary span:last-child::after{transform:rotate(0deg);}.endnotes-accordion[open] summary span:last-child{transform:rotate(0deg) !important;transform:scaleY(-1) !important;}</style><style class="wpcode-scss-compiled-snippet">#gform_wrapper_3{color:#fff}#gform_wrapper_3 form .gform-body label{color:#d2bb99;font-weight:800;font-size:15px;line-height:1.2;letter-spacing:0.2em;margin-bottom:10px;font-family:montserrat;text-transform:uppercase}#gform_wrapper_3 form .gform-body label span.gfield_required{display:none !important}#gform_wrapper_3 form .gform-body input[type=text],#gform_wrapper_3 form .gform-body input[type=email]{background-color:var(--main-white);color:#757575;text-decoration:none;font-size:14px;padding-top:10px;padding-right:12px;padding-bottom:10px;padding-left:12px;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;display:inline-flex;align-items:center;justify-content:space-between;column-gap:0.5em;width:100%;min-width:180px;min-height:30px}#gform_wrapper_3 form .gform-footer .button{background-color:var(--secondary-gold);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;color:var(--text-brown) !important;font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;padding-left:10px !important;padding-right:10px !important;padding-top:0 !important;text-transform:uppercase;width:100px;height:40px;line-height:40px !important;transition:all 0.5s ease 0s !important;text-align:center}#gform_wrapper_3 form .gform-footer .button:hover{color:var(--main-white) !important;background-color:var(--primary-gold)}</style><style class="wpcode-css-snippet">#generate-slideout-menu .slide-out-footer button#cta-print img{width:16px;}.slideout-navigation.main-navigation{overflow-x:hidden;}nav#site-navigation{position:relative;}.slideout-donate{order:4;display:block;flex:1 1 100%;width:100%;}
1479#generate-slideout-menu .inside-navigation{display:flex;flex-wrap:wrap;align-items:center;padding-top:13vw;justify-content:space-between;flex-direction:unset;gap:25px;width:1000px;max-width:100%;}.slideout-navigation.do-overlay .inside-navigation{padding:10% 15% 0;}#generate-slideout-menu .mobile-menu-logo{order:1;flex:0 0 auto;}#generate-slideout-menu .slideout-exit{order:2;flex:0 0 auto;position:relative;top:0;right:0;margin:0;padding:0;}#generate-slideout-menu #site-navigation{display:block;order:3;flex:1 1 100%;margin-top:0;}#generate-slideout-menu .slideout-exit .gp-icon svg{height:1.5em;width:1.5em;top:0;}#generate-slideout-menu .slide-out-footer{order:6;display:flex;justify-content:space-around;align-items:center;margin:auto;column-gap:20px;flex-wrap:wrap;}#generate-slideout-menu .slide-out-footer button{color:var(--secondary-navy);background-color:white;border-radius:10px;font-family:montserrat,'Seriff';font-size:15px;font-weight:600;padding:10px 10px;cursor:pointer;display:flex;column-gap:5px;align-items:center;}#generate-slideout-menu .slide-out-footer button:hover{background-color:var(--secondary-navy);color:white;}#generate-slideout-menu .slide-out-footer button:hover > span.btn-icon{filter:brightness(0) invert(1);}#generate-slideout-menu .slide-out-footer button > span.btn-icon{display:flex;border-left:2px solid #dcdcdc;padding-left:5px;}#generate-slideout-menu .share-icons{order:5;text-align:center;width:100%;margin-top:50px;}#generate-slideout-menu .share-icons h3{color:white;font-size:18px;font-weight:600;margin-bottom:10px;}#generate-slideout-menu .share-icons .social-icons{margin:auto;display:flex;flex-wrap:wrap;column-gap:10px;justify-content:center;}#generate-slideout-menu .share-icons .social-icons > a:hover > img{filter:brightness(1) invert(1);}.mobile-menu-logo{width:85px;}.slideout-navigation.do-overlay .slideout-menu li.menu-item-has-children,.slideout-navigation ul.slideout-menu .menu-item-has-children.has-dropdown{border-bottom:0 !important;}.slideout-menu > li{padding:8px 0;}.slideout-menu .menu-item-wrapper,.slideout-menu .menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;border-bottom:solid var(--secondary-gold);}.slideout-menu .menu-item a{font-family:Libre Baskerville,serif;font-size:18px;width:100%;text-align:left;}.slideout-menu .dropdown-toggle{background:none;border:none;padding:10px 0;cursor:pointer;display:flex;align-items:center;justify-content:end;min-width:44px;}.slideout-menu .dropdown-icon{position:relative;width:20px;height:20px;}.slideout-menu .dropdown-icon::before,.slideout-menu .dropdown-icon::after{content:'';position:absolute;background-color:#fff;transition:all 0.3s ease;}.slideout-menu .dropdown-icon::before{width:20px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%);}.slideout-menu .dropdown-icon::after{width:2px;height:20px;top:50%;left:50%;transform:translate(-50%,-50%);}.slideout-menu .dropdown-toggle[aria-expanded="true"] .dropdown-icon::after{height:0;}.slideout-navigation ul.slideout-menu ul.sub-menu{transition:all 0.5s;top:0;left:0 !important;right:0;margin:0;}.slideout-navigation ul.slideout-menu ul.sub-menu li{margin:25px 0 15px auto;padding-left:0 !important;padding-bottom:15px;width:95% !important;}.slideout-navigation ul.slideout-menu ul.sub-menu li:last-child{border-bottom:solid 1px #3A6D82 !important;}.slideout-navigation ul.slideout-menu ul.sub-menu li a{text-align:left;width:100%;}.slideout-navigation ul.slideout-menu .is-expanded ul.sub-menu{display:block !important;opacity:1;height:auto;position:relative;width:100%;padding:0;}.slideout-navigation ul.slideout-menu .is-expanded ul.sub-menu li a{position:relative;}.slideout-navigation ul.slideout-menu .is-expanded ul.sub-menu li a:after{content:"";display:inline-block;width:8px;height:12px;background-image:url("data:image/svg+xml,%3Csvg%20width%3D%228%22%20height%3D%2212%22%20viewBox%3D%220%200%208%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.43934%205.56066L0%202.12132L2.12132%200L7.68198%205.56066L2.12132%2011.1213L0%209L3.43934%205.56066Z%22%20fill%3D%22%23AC977A%22/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;position:absolute;right:0px;top:3px;}.slideout-navigation ul.slideout-menu li.mobile-donate-btn{margin-top:65vw;}</style><style class="wpcode-css-snippet">.banner-end{flex:0 0 134px;}.banner-mid{flex:1;}@media (max-width:768px){.banner-end{display:none;}}</style><style class="wpcode-css-snippet">.page > #jump-menu-links.loaded{display:none;}
1479.page .inside-article #jump-menu-links.loaded{display:block;}#jump-menu-links{position:sticky;position:-webkit-sticky;top:66px;z-index:10;width:100%;max-width:100%;padding:20px 20px 0px 20px;margin-bottom:50px;background-color:#ffffff;transition:all 0.3s ease;display:none;}#jump-menu-links.loaded{display:block;}#jump-menu-links.fixed{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;margin-bottom:0;z-index:9999 !important;}.jump-menu-spacer{display:none;height:90px;}.jump-menu-spacer.active{display:block;}#jump-menu-links .container{width:1280px;max-width:100%;display:flex;flex-direction:row;align-items:flex-start;justify-content:start;column-gap:20px;margin:0 auto 0px;}.jump-menu__title{display:none;color:var(--secondary-gold);font-family:montserrat;font-weight:700;letter-spacing:0.2em;margin-bottom:10px;text-transform:uppercase;font-size:16px;line-height:25px;white-space:nowrap;text-transform:uppercase !important;}.jump-menu{margin:0;padding:0;list-style:none;display:none;flex-wrap:wrap;row-gap:10px;flex-direction:row;align-items:center;justify-content:space-around;column-gap:10px;padding-bottom:10px;width:100%;}ul.jump-menu.has-second-line{justify-content:flex-start;column-gap:20px;}.jump-menu li a{column-gap:0.5em;font-family:Libre Baskerville,serif;font-weight:700;border:var(--secondary-gold);color:var(--primary-blue);text-decoration:none;cursor:pointer;white-space:nowrap;}.jump-menu li a:hover{color:var(--secondary-blue);}.jump-menu-mobile{display:block;width:100%;max-width:100%;}.jump-menu-mobile select{width:100%;max-width:100%;padding-right:40px;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a961' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 65px center;background-size:20px;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--primary-gold);text-align:center;color:var(--secondary-gold);font-family:montserrat;font-weight:700;letter-spacing:0.2em;margin-bottom:10px;text-transform:uppercase;font-size:16px;line-height:25px;white-space:nowrap;}@media (max-width:1060px){#jump-menu-links{top:86px;}}@media only screen and (max-width:1024px),only screen and (min-height:1200px){#jump-menu-links .container{display:block;}#jump-menu-links{padding:20px 20px 0px 20px;}.jump-menu__title{width:100%;text-align:center;}.jump-menu{justify-content:center;}}@media only screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){#jump-menu-links .container{border:none;}.jump-menu,.jump-menu__title,.page .inside-article #jump-menu-links.loaded{display:none!important;opacity:0!important;}.jump-menu-mobile{display:block;width:100%;max-width:100%;}.jump-menu-mobile select{width:100%;max-width:100%;padding-right:40px;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a961' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 65px center;background-size:20px;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--primary-gold);text-align:center;color:var(--secondary-gold);font-family:montserrat;font-weight:700;letter-spacing:0.2em;margin-bottom:10px;text-transform:uppercase;font-size:16px;line-height:25px;white-space:nowrap;}#jump-menu-links{padding:5px 10px 0;}}@media screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape) and (-webkit-min-device-pixel-ratio:1){#jump-menu-links .container{border:none;}.jump-menu,.jump-menu__title,.page .inside-article #jump-menu-links.loaded{display:none!important;opacity:0!important;}.jump-menu-mobile{display:block;width:100%;max-width:100%;}.jump-menu-mobile select{width:100%;max-width:100%;padding-right:40px;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a961' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;
1479background-position:right 65px center;background-size:20px;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--primary-gold);text-align:center;color:var(--secondary-gold);font-family:montserrat;font-weight:700;letter-spacing:0.2em;margin-bottom:10px;text-transform:uppercase;font-size:16px;line-height:25px;white-space:nowrap;}#jump-menu-links{padding:5px 10px 0;}}@media (max-width:767px){#jump-menu-links .container{border:none;}.jump-menu,.jump-menu__title,.page .inside-article #jump-menu-links.loaded{display:none!important;opacity:0!important;}.jump-menu-mobile{display:block;width:100%;max-width:100%;}.jump-menu-mobile select{width:100%;max-width:100%;padding-right:40px;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a961' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 65px center;background-size:20px;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--primary-gold);text-align:center;color:var(--secondary-gold);font-family:montserrat;font-weight:700;letter-spacing:0.2em;margin-bottom:10px;text-transform:uppercase;font-size:16px;line-height:25px;white-space:nowrap;}#jump-menu-links{padding:5px 10px 0;}}#jump-menu-links.in-mobile-container,#sticky-navigation.sticky-navigation-transition #jump-menu-links.in-mobile-container:empty{display:none;opacity:0;transition:all 0.5s;}#sticky-navigation.sticky-navigation-transition{transition:all 0.5s;}#sticky-navigation.sticky-navigation-transition #jump-menu-links.in-mobile-container{display:block;opacity:1;}.inside-article #jump-menu-links{display:none;}</style><style class="wpcode-css-snippet">.home .gb-looper-899a32b9{padding-left:0;padding-right:0;}.home .gb-container-9c17a282{padding-left:20px;padding-right:20px;max-width:1365px;}.home .gb-container-c01ef4b6{max-width:1360px;}.gb-looper-899a32b9{padding-left:20px;padding-right:20px;}.single .grid-container{max-width:1340px;}.single.single-newsroom .grid-container{max-width:1320px;}.single.single-map .inside-header.grid-container,.single.single-newsroom .inside-header.grid-container{max-width:1920px;}.single.single-map .grid-container,.page-child .gb-container-91474358{max-width:1320px;}.gb-container-c935d9b2,.gb-container-ae94f994,.gb-container-fb702bff,.gb-container-75ca6acd,.gb-container-4108b7d5,.gb-container-6ced7caf,.gb-container-800d1076{max-width:1320px;}.gb-container-9c17a282,.page-id-6250 .gb-looper-899a32b9,.page-id-9115 .gb-looper-899a32b9{padding-left:0;padding-right:0;}div#featured-insights .gb-container-800d1076{max-width:1280px;}@media (max-width:1190px) and (min-width:768px){.one-to-three.gb-container-0b888b8c > div{width:48.75%;}}@media (max-width:767px){.one-to-three.gb-container-0b888b8c > div{width:100%;}}@media screen and (max-width:1024px){.fa-card-lrg{height:auto !important;}.gb-container-d2964048{text-align:center!important;margin-top:-300px;}}@media only screen and (min-width:768px) and (max-width:944px){.conflicts-header{padding:5px 15px!important;}}@media only screen and (max-width:768px){a.gb-button-0c097f72{column-gap:2.1em !important;}.gb-button{margin-right:auto !important;margin-left:auto !important;}}.single-post .site-content{column-gap:2rem;}.gb-text-ea69d3b0{}h6.sortby-text{max-width:100%;width:96px;margin-bottom:0;}.gb-container-fbf1025e{margin-bottom:15px !important;}.gb-container-6ced7caf{margin-right:auto;margin-left:auto;padding:0;}.gb-container-039d174b{margin-bottom:60px;}.gb-element-8902e23b{align-items:normal;}.board-of-director-cards > div{display:flex;flex-direction:column;justify-content:space-between;height:100%;}.board-of-director-cards > div h4{font-size:16px;}.board-of-director-cards > div > div{margin-bottom:12px;}.board-of-director-cards > div p{}@media screen and (max-width:500px){.post .gb-container-0aa2080b{padding-top:160px;padding-bottom:35px;}.single article{padding-right:30px;}.single-post article img{width:auto !important;height:auto !important;max-width:100%;max-height:calc(100vh - 80px);
1479display:block;margin:0 auto;object-fit:contain;}}</style><style class="wpcode-css-snippet"> .tag-cloud-in-header span{padding:2px 10px;}.map-template-default h1,.newsroom-template-default h1,.event-template-default h1,.people-template-default h1{line-height:140%!important;text-transform:none;}.map-template-default h2,.newsroom-template-default h2,.event-template-default h2,.post-template-default h2,.people-template-default h2,.map-template-default h3,.newsroom-template-default h3,.event-template-default h3,.post-template-default h3,.map-template-default h4,.newsroom-template-default h4,.event-template-default h4,.post-template-default h4,.map-template-default h5,.newsroom-template-default h5,.event-template-default h5,.post-template-default h5{text-transform:none;margin-bottom:10px;}.people-template-default h2{line-height:1.6em;}@media (min-width:766px){.map-template-default h1,.newsroom-template-default h1,.event-template-default h1,.people-template-default h1,.post-template-default h1{width:70%;}}.map-template-default .site-content figure,.newsroom-template-default .site-content figure,.event-template-default .site-content figure,.people-template-default .site-content figure,.post-template-default .site-content figure{margin:0 0 20px;}.map-template-default .site-content p,.newsroom-template-default .site-content p,.event-template-default .site-content p,.post-template-default .site-content p,.people-template-default .site-content p{margin-bottom:1.2em!important;}.map-template-default .site-content p span,.newsroom-template-default .site-content p span,.event-template-default .site-content p span,.post-template-default .site-content p span{font-size:16px!important;}.map-template-default .site-content p a,.newsroom-template-default .site-content p a,.event-template-default .site-content p a,.post-template-default .site-content p a{text-decoration:underline;}.map-template-default .site-content ol,.newsroom-template-default .site-content ol,.event-template-default .site-content ol,.map-template-default .site-content ul,.newsroom-template-default .site-content ul,.event-template-default .site-content ul,.post-template-default .site-content ul{margin:0 0 1.5em 1em;}.post-template-default .site-content li > ul{margin-bottom:0 !important;margin-top:1.5em !important;margin-left:3em !important;}.post-template-default .site-content li > ul > li{list-style:circle;}</style><style class="wpcode-css-snippet">p.ribbon-cta-copy a{text-decoration:underline;}</style><style class="wpcode-css-snippet"> .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}.accessible-link{color:#0066cc;text-decoration:underline;padding:5px;border-radius:4px;}.accessible-link:focus{outline:3px solid #ffbf47;background-color:#ffbf47;}</style><style class="wpcode-css-snippet">.breadcrumb span{font-size:14px;z-index:1;font-weight:bold;text-transform:uppercase;color:var(--secondary-gold) !important;}.breadcrumb span a{text-decoration:underline;color:#cdb085;}.breadcrumb .breadcrumb_last{font-weight:500;text-decoration:none!important;color:white !important;}@media screen and (max-width:1365px) and (min-width:1025px){.breadcrumb{}}</style>
1479<script>// Moves link to body start on load 1480document.addEventListener('DOMContentLoaded', function() { 1481 const skipLink = document.querySelector('#main .skip-to-content'); 1482 if (skipLink) { 1483 document.body.insertAdjacentElement('afterbegin', skipLink.cloneNode(true)); 1484 skipLink.remove(); 1485 } 1486});</script>
1486<style class="wpcode-css-snippet">.back-to-top{width:75px;height:37px;display:flex;align-items:center;justify-content:center;border-top-left-radius:6px;border-top-right-radius:6px;background-color:#003e5f;transition:all 0.5s ease;transition:all 0.3s ease;}.back-to-top:hover{background:#83663e;}.back-to-top:focus{outline:3px solid #0066cc;outline-offset:2px;background:#555;}.back-to-top-wrapper.hidden{opacity:0;pointer-events:none;}</style><style class="wpcode-css-snippet"> .skip-to-content{position:absolute;top:-40px;left:0;background:#ad9777;color:white;padding:8px;z-index:10000;opacity:0;font-family:Montserrat,sans-serif;font-weight:700;text-transform:uppercase;font-size:15px;letter-spacing:1px;}.skip-to-content:focus{top:0;opacity:1;color:white;}</style><style class="wpcode-scss-compiled-snippet">.query-loop-pagination{align-items:center;column-gap:10px;display:flex;justify-content:center;margin-top:40px;row-gap:10px}.query-loop-pagination .facetwp-pager{align-items:center;column-gap:5px;display:flex;justify-content:center;row-gap:5px}.query-loop-pagination .facetwp-page{color:var(--secondary-grey);display:inline-flex;text-decoration:none;line-height:1;font-size:16px;border:none;padding:12px 16px;border-radius:5px}.query-loop-pagination .facetwp-page.active{background-color:var(--secondary-gold);color:#2b241b;border-color:none}.query-loop-pagination .facetwp-page:hover,.query-loop-pagination .facetwp-page:focus{background-color:var(--primary-gold) !important;color:#fff !important}.facetwp-checkbox.has-toggle .toggle-arrow{margin-left:10px}.facetwp-counter{display:none}.focus-areas-container .facetwp-facet-teams .facetwp-checkbox{position:relative;padding-right:25px}.focus-areas-container .focus-areas-container{margin-left:15px}.focus-areas-container .focus-area{cursor:pointer;position:relative;margin-left:8px;padding:4px 4px 4px 20px;font-size:0.9em;display:flex;align-items:center;color:#fff}.focus-areas-container .focus-checkbox{appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid #6d6d6d;background-color:#fff;margin-right:8px;position:absolute;vertical-align:middle;cursor:pointer}.focus-areas-container .focus-checkbox:checked{background-color:#6d6d6d;border-color:#ffffff}.focus-areas-container .focus-label{flex-grow:1;padding-left:20px;position:relative;z-index:9}.facetwp-template>p{color:white}</style><style class="wpcode-css-snippet"> .main-navigation .menu-item-has-children > .sub-menu{display:none;visibility:hidden;opacity:0;transition:all 0.3s ease;}.main-navigation .menu-item-has-children.toggled > .sub-menu{display:block;visibility:visible;opacity:1;}</style>
1486<script>document.addEventListener('DOMContentLoaded', () => { 1487 // Function to replace <div class="drawer"> with <aside class="drawer"> 1488 const replaceDrawerElement = () => { 1489 const drawerElement = document.querySelector('.drawer'); 1490 if (drawerElement) { 1491 // Create a new <aside> element 1492 const asideElement = document.createElement('aside'); 1493 1494 // Copy all attributes from the existing <div> to the new <aside> 1495 Array.from(drawerElement.attributes).forEach(attr => { 1496 asideElement.setAttribute(attr.name, attr.value); 1497 }); 1498 1499 // Copy the inner HTML from the <div> to the <aside> 1500 asideElement.innerHTML = drawerElement.innerHTML; 1501 1502 // Replace the original <div> with the new <aside> 1503 drawerElement.parentNode.replaceChild(asideElement, drawerElement); 1504 1505 return true; // Indicate the replacement was successful 1506 } 1507 return false; // Indicate the replacement was not needed 1508 }; 1509 1510 // Execute the replacement immediately if the element is already present 1511 if (!replaceDrawerElement()) { 1512 // Set up a MutationObserver to monitor DOM changes 1513 const observer = new MutationObserver(() => { 1514 if (replaceDrawerElement()) { 1515 // Disconnect the observer once the element has been replaced 1516 observer.disconnect(); 1517 } 1518 }); 1519
1520 // Start observing the body for added nodes 1521 observer.observe(document.body, { childList: true, subtree: true }); 1522 } 1523});</script>
1523<script>document.addEventListener('DOMContentLoaded', () => { 1524 // Select the site-footer div 1525 const siteFooterDiv = document.querySelector('div.site-footer'); 1526 1527 if (siteFooterDiv) { 1528 // Create a new footer element 1529 const footerElement = document.createElement('footer'); 1530 footerElement.className = siteFooterDiv.className; // Copy all classes 1531 footerElement.innerHTML = siteFooterDiv.innerHTML; // Copy the content 1532 1533 // Replace the div with the new footer element 1534 siteFooterDiv.replaceWith(footerElement); 1535 } 1536});</script>
1536<script>document.addEventListener('DOMContentLoaded', () => { 1537 // Function to ensure child roles are added to elements with role="list" 1538 const updateListRoles = () => { 1539 const listContainers = document.querySelectorAll('[role="list"]'); 1540 listContainers.forEach(container => { 1541 const childElements = container.children; 1542 1543 // Assign role="listitem" to each direct child element 1544 Array.from(childElements).forEach(child => { 1545 if (!child.hasAttribute('role')) { 1546 child.setAttribute('role', 'listitem'); 1547 } 1548 }); 1549 }); 1550 }; 1551 1552 // Specific handling for containers 1553 const fixSpecificContainers = () => { 1554 const specificContainers = document.querySelectorAll('.gb-container-9162968c, .gb-container-3fcaf621'); 1555 1556 specificContainers.forEach(container => { 1557 // Ensure container itself has a proper role if missing 1558 if (!container.hasAttribute('role')) { 1559 container.setAttribute('role', 'list'); 1560 } 1561 1562 // Ensure children have role="listitem" 1563 const childElements = container.children; 1564 Array.from(childElements).forEach(child => { 1565 if (!child.hasAttribute('role')) { 1566 child.setAttribute('role', 'listitem'); 1567 } 1568 }); 1569 }); 1570 }; 1571 1572 // Dynamic handling of tabs using role="tab" and role="tabpanel" 1573 const updateTablist = () => { 1574 const tablists = document.querySelectorAll('[role="tablist"]'); 1575 1576 tablists.forEach(tablist => { 1577 const tabs = tablist.querySelectorAll('[role="tab"]'); 1578 const panels = document.querySelectorAll('[role="tabpanel"]'); 1579
1580 tabs.forEach((tab, index) => { 1581 const panel = panels[index]; 1582 1583 // Assign unique IDs and ensure ARIA attributes are consistent 1584 const tabId = `tab-${index + 1}`; 1585 const panelId = `panel-${index + 1}`; 1586 1587 tab.setAttribute('id', tabId); 1588 tab.setAttribute('aria-controls', panelId); 1589 tab.setAttribute('aria-selected', index === 0 ? 'true' : 'false'); 1590 1591 if (panel) { 1592 panel.setAttribute('id', panelId); 1593 panel.setAttribute('aria-labelledby', tabId); 1594 if (index !== 0) { 1595 panel.setAttribute('hidden', ''); 1596 } 1597 } 1598 }); 1599 1600 // Add event listeners for tab interaction 1601 tabs.forEach((tab, index) => { 1602 tab.addEventListener('click', () => { 1603 // Deselect all tabs and hide all panels 1604 tabs.forEach(t => t.setAttribute('aria-selected', 'false')); 1605 panels.forEach(p => p.setAttribute('hidden', '')); 1606 1607 // Select the clicked tab and show its panel 1608 tab.setAttribute('aria-selected', 'true'); 1609 const panel = panels[index]; 1610 if (panel) { 1611 panel.removeAttribute('hidden'); 1612 } 1613 }); 1614 }); 1615 }); 1616 }; 1617 1618 // Handle hidden focusable elements 1619 const handleHiddenFocusableElements = () => { 1620 const hiddenElements = document.querySelectorAll('[aria-hidden="true"]'); 1621 hiddenElements.forEach(element => { 1622 const focusableElements = element.querySelectorAll('a, button, input, textarea, select, [tabindex]'); 1623 focusableElements.forEach(focusable => { 1624 focusable.setAttribute('tabindex', '-1'); 1625 }); 1626 }); 1627 }; 1628 1629 // Execute all fixes 1630 updateListRoles(); 1631 fixSpecificContainers(); // Ensure .gb-container-9162968c and .gb-container-3fcaf621 are corrected 1632 updateTablist(); // Dynamically handle all tabs 1633 handleHiddenFocusableElements(); // Ensure hidden elements don't contain focusable items 1634});</script>
1634<script>// Function to check if FancyBox is loaded 1635function isFancyboxLoaded() { 1636 return typeof window.Fancybox !== 'undefined'; 1637} 1638 1639// Function to dynamically load FancyBox script and CSS if not already loaded 1640function loadFancybox(callback) { 1641 if (isFancyboxLoaded()) { 1642 callback(); // If FancyBox is already loaded, just run the callback 1643 return; 1644 } 1645 1646 // Dynamically load FancyBox CSS 1647 const fancyboxCSS = document.createElement('link'); 1648 fancyboxCSS.rel = 'stylesheet'; 1649 fancyboxCSS.href = 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css'; 1650 document.head.appendChild(fancyboxCSS); 1651 1652 // Dynamically load FancyBox JS 1653 const fancyboxScript = document.createElement('script'); 1654 fancyboxScript.src = 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js'; 1655 fancyboxScript.onload = callback; 1656 document.body.appendChild(fancyboxScript); 1657} 1658 1659// Function to initialize FancyBox 1660function initFancybox() { 1661 const videoImages = document.querySelectorAll('figure[data-video-url]'); 1662 1663 videoImages.forEach(img => { 1664 // Check if the image is already wrapped in a FancyBox anchor 1665 if (img.parentElement && img.parentElement.tagName.toLowerCase() === 'a' && img.parentElement.hasAttribute('data-fancybox')) { 1666 return; // Skip processing this image 1667 } 1668 1669 const videoUrl = img.getAttribute('data-video-url'); 1670 if (!videoUrl) { 1671 return; // Skip if no video URL is set 1672 } 1673 1674 // Create the FancyBox anchor wrapper 1675 const wrapper = document.createElement('a'); 1676 wrapper.href = videoUrl; 1677 wrapper.dataset.fancybox = 'video-gallery'; 1678 wrapper.innerHTML = img.outerHTML; // Wrap the img with the anchor 1679 img.replaceWith(wrapper); 1680 }); 1681 1682 // Initialize FancyBox 1683 Fancybox.bind('[data-fancybox="video-gallery"]', { 1684 Video: { 1685 autoplay: true, 1686 }, 1687 }); 1688} 1689 1690// Load FancyBox and initialize it 1691document.addEventListener('DOMContentLoaded', function () { 1692 loadFancybox(initFancybox); 1693}); 1694</script>
1694<style class="wpcode-css-snippet"><style> .post-navigation-link-previous,.post-navigation-link-next{transition:all 0.5s ease 0s;}.post-navigation-link-previous:hover,.post-navigation-link-next:hover{transform:translate3d(10px,0px,0px);}.post-navigation-link-previous > a,.post-navigation-link-next > a{color:var(--primary-blue);}.post-navigation-link-previous > a:hover,.post-navigation-link-next > a:hover{color:var(--secondary-blue);}.post-navigation-link-previous a::before,.post-navigation-link-next a::after{content:"";display:inline-block;width:17px;height:12px;background-size:contain;background-repeat:no-repeat;}.post-navigation-link-previous a::before{margin-right:8px;background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 fill%3D%22none%22 viewBox%3D%220 0 17 12%22 height%3D%2212%22 width%3D%2217%22%3E %3Cpath fill%3D%22%23042E4E%22 d%3D%22M5.50485 0.400456L0.731876 5.17343C0.438984 5.46632 0.438984 5.94119 0.731876 6.23409L5.50485 11.0071C5.79774 11.3 6.27261 11.3 6.56551 11.0071C6.8584 10.7142 6.8584 10.2393 6.56551 9.9464L3.07287 6.45376H16.7622V4.95376H3.07287L6.56551 1.46112C6.8584 1.16822 6.8584 0.69335 6.56551 0.400456C6.27261 0.107563 5.79774 0.107563 5.50485 0.400456Z%22 clip-rule%3D%22evenodd%22 fill-rule%3D%22evenodd%22%3E%3C/path%3E %3C/svg%3E');}.post-navigation-link-next a::after{margin-left:8px;background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 fill%3D%22none%22 viewBox%3D%220 0 17 12%22 height%3D%2212%22 width%3D%2217%22%3E %3Cpath fill%3D%22%23042E4E%22 d%3D%22M16.5303 6.53033C16.8232 6.23744 16.8232 5.76256 16.5303 5.46967L11.7574 0.696699C11.4645 0.403806 10.9896 0.403806 10.6967 0.696699C10.4038 0.989592 10.4038 1.46447 10.6967 1.75736L14.9393 6L10.6967 10.2426C10.4038 10.5355 10.4038 11.0104 10.6967 11.3033C10.9896 11.5962 11.4645 11.5962 11.7574 11.3033L16.5303 6.53033ZM0.5 6.75H16V5.25H0.5V6.75Z%22%3E%3C/path%3E%3C/svg%3E');}.post-navigation-link-previous a:hover:::before{background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 fill%3D%22none%22 viewBox%3D%220 0 17 12%22 height%3D%2212%22 width%3D%2217%22%3E %3Cpath fill%3D%22%235293AD%22 d%3D%22M5.50485 0.400456L0.731876 5.17343C0.438984 5.46632 0.438984 5.94119 0.731876 6.23409L5.50485 11.0071C5.79774 11.3 6.27261 11.3 6.56551 11.0071C6.8584 10.7142 6.8584 10.2393 6.56551 9.9464L3.07287 6.45376H16.7622V4.95376H3.07287L6.56551 1.46112C6.8584 1.16822 6.8584 0.69335 6.56551 0.400456C6.27261 0.107563 5.79774 0.107563 5.50485 0.400456Z%22 clip-rule%3D%22evenodd%22 fill-rule%3D%22evenodd%22%3E%3C/path%3E %3C/svg%3E');}.post-navigation-link-previous a:hover:::after{background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 fill%3D%22none%22 viewBox%3D%220 0 17 12%22 height%3D%2212%22 width%3D%2217%22%3E %3Cpath fill%3D%22%235293AD%22 d%3D%22M16.5303 6.53033C16.8232 6.23744 16.8232 5.76256 16.5303 5.46967L11.7574 0.696699C11.4645 0.403806 10.9896 0.403806 10.6967 0.696699C10.4038 0.989592 10.4038 1.46447 10.6967 1.75736L14.9393 6L10.6967 10.2426C10.4038 10.5355 10.4038 11.0104 10.6967 11.3033C10.9896 11.5962 11.4645 11.5962 11.7574 11.3033L16.5303 6.53033ZM0.5 6.75H16V5.25H0.5V6.75Z%22%3E%3C/path%3E%3C/svg%3E');}</style></style><style class="wpcode-css-snippet">.header-wrap{z-index:10001;}</style><style class="wpcode-css-snippet">.gp-search-modal .gp-modal__container{display:flex;justify-content:center;max-width:1280px;width:100% !important;}.gp-search-modal .gp-modal__overlay{padding-top:40vh;}.gp-search-modal form.wp-block-search__button-outside.wp-block-search__text-button.wp-block-search{width:100%;max-width:1280px;}.gp-search-modal .wp-block-search__label{color:var(--secondary-gold);text-transform:uppercase;letter-spacing:.2em;font-weight:700;}.gp-search-modal .wp-block-search__input{background-color:white !important;}.gp-search-modal .wp-block-search__button{background-color:#ad9777;border-bottom-left-radius:9px;border-bottom-right-radius:9px;border-top-left-radius:9px;border-top-right-radius:9px;border:1px solid #ad9777;color:#2b241b;font-family:montserrat;font-size:1rem;font-weight:700;letter-spacing:3px;padding:10px 25px;text-transform:uppercase;transition:all 0.5s ease 0s;}.gp-search-modal .wp-block-search__button:hover{background-color:var(--primary-gold);color:white;transition:all 0.5s ease 0s;}.gp-search-modal form.search-modal-form{display:flex;width:60%;justify-content:space-around;border-radius:50px;}.gp-search-modal .search-modal-fields{display:flex;width:100%;}@media (max-width:500px){.gp-modal--open:not(.gp-modal--transition) .gp-modal__container{transform:scale(0.8);}.gp-search-modal .gp-modal__overlay{padding-top:35vh;}}</style><style class="wpcode-scss-compiled-snippet">.main-navigation.is_stuck ul ul{top:50px}.main-navigation:not(.is_stuck) ul ul{top:125px}@media (max-width: 1365px){.main-navigation:not(.is_stuck) ul ul{top:100px}}</style><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/print-js/1.6.0/print.css" /> 1695<style> 1696 .drawer-container { 1697 position: fixed; 1698 right: -175px; 1699 top: 35%; 1700 display: flex; 1701 flex-direction: row; 1702 transition: 0.3s ease; 1703 z-index: 1001; 1704 } 1705 1706 @media (max-height: 865px) { 1707 .drawer-container { 1708 top: 40%; 1709 } 1710 } 1711 1712 @media (max-height: 675px) { 1713 .drawer-container { 1714 top: 44%; 1715 } 1716 } 1717 1718 @media (max-height: 550px) { 1719 .drawer-container { 1720 top: 48%; 1721 } 1722 } 1723 1724 @media (max-height: 480px) { 1725 .drawer-container { 1726 top: 51%; 1727 } 1728 } 1729 1730 .drawer-container.open { 1731 right: 0; 1732 } 1733 1734 .drawer { 1735 background-color: #ffffff; 1736 display: flex; 1737 flex-direction: column; 1738 padding: 10px 20px 5px 20px; 1739 border-radius: 0 0 0 5px; 1740 width: 175px; 1741 } 1742 1743 .drawer h4 { 1744 color: var(--secondary-gold); 1745 padding-bottom: 5px; 1746 } 1747 1748 .drawer > div > a, .drawer > div > div.share-icons > a { 1749 border-top: 1px solid var(--secondary-gold); 1750 padding: 5px 0; 1751 color: var(--primary-blue); 1752 display: flex; 1753 align-items: center; 1754 justify-content: space-between; 1755 transition: transform 0.3s ease; 1756 } 1757 1758 .drawer a:hover { 1759 opacity: .5; 1760 } 1761 1762 .drawer svg { 1763 margin-left: 8px; 1764 flex-shrink: 0; 1765 transition: transform 0.3s ease; 1766 } 1767 1768 .icon-container { 1769 display: flex; 1770 flex-direction: column; 1771 gap: 10px; 1772 } 1773 1774 .icon { 1775 cursor: pointer; 1776 padding: 5px; 1777 border-radius: 5px 0 0 5px; 1778 width: 45px; 1779 height: 45px; 1780 display: flex; 1781 align-items: center; 1782 justify-content: center; 1783 background-color: #fff; 1784 box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.3); 1785 } 1786 1787 .icon svg { 1788 fill: #fff; 1789 width: 24px; 1790 height: 24px; 1791 } 1792 1793 .icon:hover > svg { 1794 opacity: .5; 1795 } 1796 1797 .share-icons > .icons { 1798 display: none; 1799 } 1800 1801 .share-icons > .icons.open { 1802 display: none; 1803 } 1804 1805 @media only screen and (max-width: 1060px) { 1806 .drawer-container, .fundraiseup-widget { 1807 display: none !important; 1808 } 1809 1810 iframe#XHFMZLLG { 1811 opacity: 0; 1812 } 1813 } 1814 1815 @media only screen and (max-width: 500px) { 1816 .drawer-container { 1817 top: 43%; 1818 } 1819 } 1820 1821 /* Loading spinner */ 1822 .loading-spinner { 1823 display: inline-block; 1824 width: 16px; 1825 height: 16px; 1826 border: 2px solid #f3f3f3; 1827 border-top: 2px solid var(--primary-blue); 1828 border-radius: 50%; 1829 animation: spin 1s linear infinite; 1830 margin-left: 8px; 1831 } 1832 1833 @keyframes spin { 1834 0% { transform: rotate(0deg); } 1835 100% { transform: rotate(360deg); } 1836 } 1837 1838 /* Loading state styles */ 1839 .drawer a.loading, 1840 .drawer a.is-loading { 1841 opacity: 0.7; 1842 pointer-events: none;
1843 cursor: not-allowed; 1844 } 1845 1846 .drawer a.loading svg, 1847 .drawer a.is-loading svg { 1848 display: none; 1849 } 1850 1851 .drawer.processing { 1852 position: relative; 1853 } 1854 1855 .drawer.processing::before { 1856 content: ''; 1857 position: absolute; 1858 top: 0; 1859 left: 0; 1860 right: 0; 1861 bottom: 0; 1862 background: rgba(255, 255, 255, 0.8); 1863 z-index: 1; 1864 border-radius: 0 0 0 5px; 1865 } 1866 1867 .loading-text { 1868 font-size: 12px; 1869 color: var(--primary-blue); 1870 margin-left: 4px; 1871 } 1872 1873 .download-link.is-loading { 1874 pointer-events: none; 1875 opacity: .7; 1876 position: relative; 1877 } 1878 1879 .download-link.is-loading::after { 1880 content: ""; 1881 position: absolute; 1882 right: 50%; 1883 top: 50%; 1884 width: 1.3em; 1885 height: 1.3em; 1886 margin-top: -0.7em; 1887 border: 2px solid var(--primary-blue); 1888 border-top-color: transparent; 1889 border-radius: 50%; 1890 animation: spin .6s linear infinite; 1891 } 1892</style>
1893<script> 1894document.addEventListener('DOMContentLoaded', function () { 1895 1896 // Scroll to top functionality 1897 function scrollToTop() { 1898 var scrollBtn = document.getElementById('scrollTopIcon'); 1899 if (!scrollBtn) { 1900 console.warn("scrollTopIcon element not found in the DOM"); 1901 return; 1902 } 1903 1904 if (!('scrollTo' in window)) { 1905 console.warn("window.scrollTo is not supported in this browser"); 1906 } 1907 1908 try { 1909 scrollBtn.addEventListener('click', function(event) { 1910 event.preventDefault(); 1911 try { 1912 window.scrollTo({ top: 0, behavior: 'smooth' }); 1913 } catch (err) { 1914 console.error("Error during scrollTo:", err); 1915 window.scrollTo(0, 0); 1916 } 1917 }); 1918 } catch (err) { 1919 console.error("Could not attach click listener to scrollTopIcon:", err); 1920 } 1921 } 1922 1923 // Share button toggle 1924 const share = document.getElementById('cta-share'); 1925 if (share) { 1926 share.addEventListener('click', function(event) { 1927 event.preventDefault(); 1928 const iconsDiv = document.querySelector('.share-icons .icons'); 1929 const svg = share.querySelector('svg'); 1930 1931 if (iconsDiv.style.display === 'flex') { 1932 iconsDiv.style.display = 'none'; 1933 svg.style.transform = 'rotate(0deg)'; 1934 } else { 1935 iconsDiv.style.display = 'flex'; 1936 svg.style.transform = 'rotate(90deg)'; 1937 } 1938 }); 1939 } 1940 1941 // Download link handler - uses proxy endpoint which handles Content-Disposition 1942 function createDownloadLink() { 1943 const btn = document.querySelector("button[data-download-url], a[data-download-url]"); 1944 if (!btn) return; 1945 1946 btn.addEventListener('click', function(event) { 1947 event.preventDefault(); 1948 1949 const url = btn.dataset.downloadUrl; 1950 if (!url) return; 1951 1952 btn.classList.add('is-loading'); 1953 btn.setAttribute('aria-busy', 'true'); 1954 1955 // Direct navigation - server sends Content-Disposition: attachment 1956 window.location.href = url; 1957 1958 // Remove loading state after delay (can't detect download completion) 1959 setTimeout(() => { 1960 btn.classList.remove('is-loading'); 1961 btn.removeAttribute('aria-busy'); 1962 }, 2000); 1963 }); 1964 } 1965 1966 // Print PDF handler 1967 function printPdf(event) { 1968 event.preventDefault(); 1969 const url = event.currentTarget.getAttribute('data-pdf-url'); 1970 1971 if (!url) { 1972 console.log('missing pdf url'); 1973 return; 1974 } 1975 1976 if (typeof printJS === 'undefined') { 1977 const script = document.createElement('script'); 1978 script.src = 'https://cdnjs.cloudflare.com/ajax/libs/print-js/1.6.0/print.js'; 1979 script.onload = () => { 1980 printJS(url); 1981 }; 1982 document.head.appendChild(script); 1983 } else { 1984 printJS(url); 1985 } 1986 } 1987 1988 // Attach print handlers 1989 document.querySelectorAll(".btn-print")?.forEach((button) => { 1990 button.addEventListener("click", printPdf); 1991 }); 1992 document.getElementById("cta-print")?.addEventListener("click", printPdf); 1993 1994 // Drawer toggle 1995 const drawerIcon = document.getElementById('drawerIcon'); 1996 const drawerContainer = document.getElementById('drawer'); 1997 if (drawerIcon && drawerContainer) { 1998 drawerIcon.addEventListener('click', function() { 1999 drawerContainer.classList.toggle('open'); 2000 }); 2001 } 2002 2003 // Initialize 2004 createDownloadLink(); 2005 scrollToTop(); 2006}); 2007</script>
2007 2008 2009<div class="drawer-container" id="drawer"> 2010 <div class="icon-container"> 2011 <div class="icon" id="drawerIcon"> 2012 <svg width="32" height="21" viewBox="0 0 32 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 2013 <circle cx="2.5" cy="2.5" r="2.5" fill="#2D748F"></circle> 2014 <circle cx="2.5" cy="10.5" r="2.5" fill="#2D748F"></circle> 2015 <circle cx="2.5" cy="18.5" r="2.5" fill="#2D748F"></circle> 2016 <rect x="8" y="1" width="24" height="3" rx="1.5" fill="#2D748F"></rect> 2017 <rect x="8" y="9" width="24" height="3" rx="1.5" fill="#2D748F"></rect> 2018 <rect x="8" y="17" width="24" height="3" rx="1.5" fill="#2D748F"></rect> 2019 </svg> 2020 </div> 2021 <div class="icon" id="scrollTopIcon"> 2022 <svg width="17" height="21" viewBox="0 0 17 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 2023 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.65427 3.91083L9.65427 21L7.34573 21L7.34573 3.91083L1.97046 9.24504C1.51969 9.69237 0.788848 9.69237 0.338077 9.24504C-0.112694 8.79771 -0.112694 8.07245 0.338077 7.62512L7.68381 0.335495C8.13458 -0.111831 8.86542 -0.111831 9.31619 0.335495L16.6619 7.62512C17.1127 8.07245 17.1127 8.79771 16.6619 9.24504C16.2112 9.69237 15.4803 9.69237 15.0295 9.24504L9.65427 3.91083Z" fill="#2D748F"></path> 2024 </svg> 2025 </div> 2026 </div> 2027 <aside class="drawer"> 2028 <div> 2029 <h4 class="options-menu-title">Options</h4> 2030 2031 2032 <div class="share-icons"> 2033 <a href="#" id="cta-share"> 2034 Share 2035 <svg width="7" height="12" viewBox="0 0 7 12" fill="none"> 2036 <path d="M1 1.5L5.5 6L1 10.5" stroke="#917A52" stroke-width="2"></path> 2037 </svg> 2038 </a> 2039 <div class="icons"> 2040 <a href="/cdn-cgi/l/email-protection#ead5999f88808f899ed7b88f898587878f848e8f8ecfd8dab88f8b8e83848dcfd9abcfd8daa59f98cfd8daa98b9a8b888386839e838f99cc88858e93d7a28f868685cfd8a9cfdaabcfdaaba3cfd8da898b878fcfd8da8b8998859999cfd8da9e828399cfd8da838499838d829e8c9f86cfd8da8b989e8389868fcfd8da8584cfd8da8399999f8f99cfd8da988f868b9e8f8ecfd8da9e85cfd8da9d8b98cfd8a9cfd8da9e839e868f8ecfd8dacfd8d8a59f98cfd8daa98b9a8b888386839e838f99cfd8d8cfd8a9cfd8da8b848ecfd8da9e82859f8d829ecfd8da839ecfd8da87838d829ecfd8da83849e8f988f999ecfd8da93859fc4cfdaabcfdaabb3859fcfd8da898b84cfd8da988f8b8ecfd8da9e828fcfd8da8c9f8686cfd8da8b989e8389868fcfd8da828f988fcfd9abcfdaab829e9e9a99cfd9abcfd8accfd8ac9f848e8f98999e8b848e83848d9d8b98c485988dcfd8ac8b88859f9ec783999dcfd8ac859f98c7898b9a8b888386839e838f99cfd8accfdaabcfdaabac8f8f86cfd8da8c988f8fcfd8da9e85cfd8da99828b988fcfd8da93859f98cfd8da9e82859f8d829e99cfd8dbcfdaabcfdaaba88f999ecfd8da988f8d8b988e99" target="_blank" rel="noopener noreferrer"> 2041 <img src="/wp-content/uploads/2024/12/Icon-Email.svg" alt="Email" style="width: 24px; height: 24px; margin-right: 8px;"> 2042 </a> 2043 <a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 2044 <img src="/wp-content/uploads/2024/11/icon-linkedin.svg" alt="LinkedIn" style="width: 24px; height: 24px; margin-right: 8px;"> 2045 </a> 2046 <a href="https://twitter.com/intent/tweet?url=https://understandingwar.org/about-isw/our-capabilities/&text=Our Capabilities" target="_blank" rel="noopener noreferrer"> 2047 <img src="/wp-content/uploads/2024/11/icon-x.svg" alt="X" style="width: 24px; height: 24px; margin-right: 8px;"> 2048 </a> 2049 <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 2050 <img src="/wp-content/uploads/2024/11/icon-facebook.svg" alt="Facebook" style="width: 24px; height: 24px; margin-right: 8px;"> 2051 </a> 2052 <a href="https://bsky.app/intent/compose?text=I%20came%20across%20this%20insightful%20article.%20You%20can%20read%20the%20full%20article%20Our%20Capabilities%20here%20https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 2053 <img src="/wp-content/uploads/2025/05/Bluesky-Streamline-Simple-Icon.svg" alt="Bluesky" style="width: 24px; height: 24px; margin-right: 8px;"> 2054 </a> 2055 </div> 2056 </div> 2057 </div> 2058 </aside> 2059</div> 2060 2061<style> 2062.options-menu-title { 2063 color: var(--secondary-navy) !important; 2064} 2065</style><style class="wpcode-css-snippet"> .site-header{z-index:1000;margin:30px 0;}.inside-header.grid-container{max-width:1920px;}.site-header > .inside-header{display:flex;align-items:stretch;}.site-header > .inside-header > .main-navigation .inside-navigation{justify-content:space-between;
2065height:100%;max-width:100%;flex-wrap:nowrap;}.site-header > .inside-header > .main-navigation .inside-navigation > .main-nav{flex-grow:2;height:100%;}.nav-float-right #site-navigation{margin-left:unset !important;width:100%;}#primary-menu{background-color:white;position:relative;}nav:not(.is_stuck) #primary-menu:after{content:'';display:block;position:absolute;right:0;top:0;width:70px;height:100%;background-image:url('/wp-content/uploads/2024/11/Ribbon-edge.svg');background-size:contain;background-repeat:no-repeat;margin-left:auto;transform:translateX(99%);}#menu-primary-menu > li > a{padding-left:0 !important;}.main-navigation li{height:100%;display:flex;align-items:center;}.main-navigation .main-nav > ul{height:100%;justify-content:center;column-gap:30px;}.site-logo{padding:20px 0;}.site-logo,.main-navigation li:not(:last-child){background-color:#fff;}.btn-donate{background-color:var(--secondary-gold);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;color:var(--text-brown) !important;font-family:montserrat;font-size:0.938rem;font-weight:bold;letter-spacing:2px;padding-left:10px;padding-right:10px;text-transform:uppercase;margin-left:auto;width:100px;height:40px;line-height:40px !important;transition:all 0.5s ease 0s !important;text-align:center;}.btn-donate:hover{color:var(--main-white) !important;background-color:var(--primary-gold);}.mobile-donate-btn:hover{color:white !important;background-color:var(--primary-gold);}.site-header a[role="button"]{background-color:white;border-radius:6px;margin-left:20px;height:40px;width:40px;display:flex;text-align:center;justify-content:center;}.site-header a[role="button"]:hover{transition:all 0.5s ease 0s !important;background-color:var(--primary-blue);color:white;}.menu-toggle > span > svg{width:30px;height:auto;}.main-navigation .menu-bar-items{flex-direction:row-reverse;margin-left:70px;}.main-navigation.is_stuck{background-color:white;}.main-navigation.is_stuck .navigation-branding{margin-right:20px;}.main-navigation.is_stuck .main-nav > ul > li > a{line-height:35px;}.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a{color:var(--primary-blue);}.main-navigation .main-nav ul > li:hover > a,.main-navigation .main-nav ul li.sfHover.toggled > a{color:var(--primary-gold) !important;}.slideout-navigation.main-navigation .main-nav ul > li:hover > a,.slideout-navigation.main-navigation .main-nav ul li.sfHover.toggled > a{color:var(--secondary-gold) !important;}.site-header > .inside-header > .main-navigation.is_stuck{padding:0 40px;}.menu-item-has-children .dropdown-menu-toggle{padding-left:6px;}.menu-item-has-children .dropdown-menu-toggle .gp-icon svg{width:.7em;}#menu-primary-menu > li:last-child:hover > a{color:var(--primary-blue);}@media (max-width:1960px){#masthead > div.inside-header{padding-left:40px;padding-right:40px;}}@media (min-width:1061px){.inside-header.grid-container:before{content:"";position:absolute;top:0;left:0;height:100%;width:50%;background-color:white;z-index:-1;}}@media screen and (min-width:1060px) and (max-width:1365px){.main-navigation a{font-size:13px;}.site-header .header-image{width:125px;}.main-navigation .main-nav > ul{column-gap:20px;}.menu-item-has-children .dropdown-menu-toggle{padding-right:0px;padding-left:4px;}}@media (max-width:1060px){#masthead > div.inside-header{padding-left:0;padding-right:0}.site-logo{padding-right:30px;padding-left:40px;}.site-logo:after{content:'';display:inline-block;height:100%;width:73px;background-image:url('/wp-content/uploads/2024/11/Ribbon-edge.svg');background-size:contain;background-repeat:no-repeat;margin-left:29px;position:absolute;top:0;}.site-header .header-image{width:85px;}.inside-header .site-logo .header-image{content:url("/wp-content/uploads/2024/11/isw-logo-badge.svg");}.site-header > .inside-header > .main-navigation{padding-right:0;padding-left:0;}.main-navigation .menu-bar-item > a,.main-navigation .main-nav ul li a{line-height:50px;padding-right:15px;padding-left:15px;font-weight:600;font-size:20px;}.main-navigation.is_stuck svg > path{stroke:var(--primary-blue);}.main-navigation.is_stuck .menu-toggle{padding:10px 20px 10px 10px;}}
2065@media (max-width:768px){.inside-header{padding-right:0;padding-left:0;}.btn-donate{display:none !important;}}</style><link rel="icon" href="https://understandingwar.org/wp-content/uploads/2024/10/cropped-ISW-Favicon-32x32.png" sizes="32x32" /> 2066<link rel="icon" href="https://understandingwar.org/wp-content/uploads/2024/10/cropped-ISW-Favicon-192x192.png" sizes="192x192" /> 2067<link rel="apple-touch-icon" href="https://understandingwar.org/wp-content/uploads/2024/10/cropped-ISW-Favicon-180x180.png" /> 2068<meta name="msapplication-TileImage" content="https://understandingwar.org/wp-content/uploads/2024/10/cropped-ISW-Favicon-270x270.png" /> 2069<style id="wp-custom-css"> 2070/*Please add global css to https://understandingwar.org/wp-admin/admin.php?page=wpcode-headers-footers */ 2071 2072 2073/* THE FOLLOWING IS CSS STYLING FOR THE MOBILE MENU AND NEEDS TO BE MOVED TO A WPCODE WHEN COMPLETE. IT IS HERE FOR TESTING PURPOSES NOW. */ 2074 2075.slideout-navigation button.slideout-exit { 2076 display: flex; 2077 justify-content: flex-end; 2078 padding-right: 0px; 2079} 2080 2081.slideout-navigation.do-overlay .inside-navigation .main-nav { 2082 width: 100%; 2083} 2084 2085.slideout-navigation.main-navigation .main-nav ul li a { 2086 width: 100%; 2087 display: flex; 2088 justify-content: space-between; 2089 align-items: center; 2090 padding-left: 0px; 2091 font-family: Libre Baskerville, serif; 2092 font-weight: 700; 2093} 2094 2095.slideout-navigation.main-navigation .main-nav ul li a.toggled { 2096 color: var(--secondary-gold) !important; 2097} 2098 2099.slideout-navigation.do-overlay .slideout-menu li { 2100 flex-direction: column; 2101} 2102 2103.slideout-navigation.do-overlay .slideout-menu li.menu-item-has-children { 2104 border-bottom: solid var(--secondary-gold); 2105} 2106 2107.slideout-navigation.do-overlay .slideout-menu .menu-item-has-children .dropdown-menu-toggle .gp-icon svg { 2108 width: 25px; 2109} 2110 2111.slideout-navigation.do-overlay .slideout-menu .sub-menu { 2112 background-color: rgb(0, 0, 0, .0); 2113} 2114 2115.slideout-navigation.do-overlay .slideout-menu .sub-menu li { 2116 background-color: rgb(0, 0, 0, .0) !important; 2117 padding-left: 20px; 2118 border-bottom: solid 1px #3A6D82; 2119} 2120 2121.slideout-navigation.main-navigation li:not(:last-child) { 2122 background-color: rgb(0, 0, 0, .0); 2123} 2124 2125.slideout-navigation.do-overlay .slideout-menu .sub-menu li:last-child { 2126 border-bottom: none; 2127} 2128 2129.slideout-navigation.do-overlay .slideout-menu .sub-menu li a { 2130 font-family: montserrat, sans-serif; 2131 font-size: 16px; 2132 font-weight: 500; 2133 text-transform: none; 2134 letter-spacing: 0; 2135} 2136 2137.slideout-navigation.do-overlay .inside-navigation { 2138 display: flex; 2139 width: 100%; 2140 align-items: flex-end; 2141} 2142 2143#generate-slideout-menu.do-overlay .slideout-menu li a .dropdown-menu-toggle { 2144 display: flex; 2145 padding-left: 25px; 2146 padding-right: 0px; 2147 border-left-width: 0px; 2148} 2149 2150.slideout-navigation.main-navigation { 2151 background-image: url(https://understandingwar.org/wp-content/uploads/2024/12/topography-mobile-menu-bg.svg); 2152 background-position: center center; 2153 background-size: cover; 2154} 2155 2156/* Update the submenu toggle icons */ 2157/* Default */ 2158.slideout-navigation.do-overlay .inside-navigation .slideout-menu .menu-item-has-children .dropdown-menu-toggle .icon-arrow { 2159 content:url("/wp-content/uploads/2024/12/icon-toggle-plus.svg"); 2160} 2161/* Toggled */ 2162.slideout-navigation.do-overlay .inside-navigation .slideout-menu .menu-item-has-children.toggled .dropdown-menu-toggle .icon-arrow { 2163 content:url("/wp-content/uploads/2024/12/icon-toggle-minus.svg"); 2164} 2165 2166/* Override the visibility settings of submenus set by the Mega Menu javascript */ 2167.slideout-navigation.main-navigation .menu-item-has-children > .sub-menu { 2168 visibility: visible; 2169} 2170 2171.mobile-donate-btn { 2172 background-color: var(--secondary-gold); 2173 border-bottom-left-radius: 6px; 2174 border-bottom-right-radius: 6px; 2175 border-top-left-radius: 6px; 2176 border-top-right-radius: 6px; 2177 color: var(--text-brown) !important; 2178 font-family: montserrat, sans-serif !important; 2179 font-size: 0.938rem; 2180 font-weight: bold; 2181 letter-spacing: 2px; 2182 padding-left: 10px; 2183 padding-right: 10px; 2184 text-transform: uppercase; 2185 margin-left: auto; 2186 height: 40px; 2187 line-height: 40px !important; 2188 transition: all 0.5s ease 0s !important; 2189} 2190.mobile-donate-btn a { 2191 text-align: center !important; 2192 justify-content: center !important; 2193 font-family: montserrat, sans-serif !important; 2194} 2195 2196/* END OF MOBILE MENU CSS */ 2197</style> 2198<style id="core-block-supports-inline-css">
2199.wp-elements-60b9eb8eb38264accc8a47618568be66 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--paragraph-black);}.wp-container-core-navigation-is-layout-8e441d29{flex-direction:column;align-items:flex-start;} 2200/*# sourceURL=core-block-supports-inline-css */ 2201</style> 2202 2203</head> 2204 2205<body class="wp-singular page-template-default page page-id-9058 page-child parent-pageid-213 wp-custom-logo wp-embed-responsive wp-theme-generatepress slideout-enabled slideout-mobile sticky-menu-fade sticky-enabled both-sticky-menu no-sidebar nav-float-right separate-containers header-aligned-left dropdown-hover full-width-content" itemtype="https://schema.org/WebPage" itemscope> 2206 <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 2206-2207
2206 2207<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2207GTM-WZN7GMVX
vendor: 85 bytes, lines 2207-2208
2207" 2208height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2209<!-- End Google Tag Manager (noscript) --><div class="header-wrap"><a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a><a href="#main" class="skip-to-content">Skip to Content</a> <header class="site-header has-inline-mobile-toggle" id="masthead" aria-label="Site" itemtype="https://schema.org/WPHeader" itemscope> 2210 <div class="inside-header grid-container"> 2211 <div class="site-logo"> 2212 <a href="https://understandingwar.org/" rel="home"> 2213 <img class="header-image is-logo-image" alt="Institute for the Study of War" src="https://understandingwar.org/wp-content/uploads/2025/08/ISW-Logo.svg" srcset="https://understandingwar.org/wp-content/uploads/2025/08/ISW-Logo.svg 1x, https://understandingwar.org/wp-content/uploads/2025/08/ISW-Logo.svg 2x" /> 2214 </a> 2215 </div> <nav class="main-navigation mobile-menu-control-wrapper" id="mobile-menu-control-wrapper" aria-label="Mobile Toggle"> 2216 <div class="menu-bar-items"> <span class="menu-bar-item"> 2217 <a href="#" role="button" aria-label="Open search" aria-haspopup="dialog" aria-controls="gp-search" data-gpmodal-trigger="gp-search"><span class="gp-icon icon-search"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path fill-rule="evenodd" clip-rule="evenodd" d="M208 48c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160S296.366 48 208 48zM0 208C0 93.125 93.125 0 208 0s208 93.125 208 208c0 48.741-16.765 93.566-44.843 129.024l133.826 134.018c9.366 9.379 9.355 24.575-.025 33.941-9.379 9.366-24.575 9.355-33.941-.025L337.238 370.987C301.747 399.167 256.839 416 208 416 93.125 416 0 322.875 0 208z" /></svg><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.03c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z" /></svg></span></a> 2218 </span> 2219 <a class="btn-donate" href="https://understandingwar.org/donate/">Donate</a></div> <button data-nav="site-navigation" class="menu-toggle" aria-controls="generate-slideout-menu" aria-expanded="false"> 2220 <span class="gp-icon menu-bars"><svg viewBox="0 0 41 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 2H41" stroke="white" stroke-width="3"/><path d="M0 12H41" stroke="white" stroke-width="3"/><path d="M10 22H41" stroke="white" stroke-width="3"/></svg></span><span class="screen-reader-text">Menu</span> </button> 2221 </nav> 2222 <nav class="has-sticky-branding main-navigation has-menu-bar-items sub-menu-right" id="site-navigation" aria-label="Primary" itemtype="https://schema.org/SiteNavigationElement" itemscope> 2223 <div class="inside-navigation grid-container"> 2224 <div class="navigation-branding"><div class="sticky-navigation-logo"> 2225 <a href="https://understandingwar.org/" title="Institute for the Study of War" rel="home"> 2226 <img src="https://understandingwar.org/wp-content/uploads/2025/08/ISW-Logo-Badge.svg" class="is-logo-image" alt="Institute for the Study of War" width="" height="" /> 2227 </a> 2228 </div></div> <button class="menu-toggle" aria-controls="generate-slideout-menu" aria-expanded="false"> 2229 <span class="gp-icon menu-bars"><svg viewBox="0 0 41 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 2H41" stroke="white" stroke-width="3"/><path d="M0 12H41" stroke="white" stroke-width="3"/><path d="M10 22H41" stroke="white" stroke-width="3"/></svg></span><span class="screen-reader-text">Menu</span> </button> 2230 <div id="primary-menu" class="main-nav"><ul id="menu-primary-menu" class="menu sf-menu"><?xml encoding="utf-8" ?><html><body><li id="menu-item-5926" class="menu-item-about menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-5926"><a href="https://understandingwar.org/about-isw/">
2230About ISW<span role="presentation" class="dropdown-menu-toggle"><span class="gp-icon icon-arrow"><svg viewbox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M305.913 197.085c0 2.266-1.133 4.815-2.833 6.514L171.087 335.593c-1.7 1.7-4.249 2.832-6.515 2.832s-4.815-1.133-6.515-2.832L26.064 203.599c-1.7-1.7-2.832-4.248-2.832-6.514s1.132-4.816 2.832-6.515l14.162-14.163c1.7-1.699 3.966-2.832 6.515-2.832 2.266 0 4.815 1.133 6.515 2.832l111.316 111.317 111.316-111.317c1.7-1.699 4.249-2.832 6.515-2.832s4.815 1.133 6.515 2.832l14.162 14.163c1.7 1.7 2.833 4.249 2.833 6.515z"></path></svg></span></span></a> 2231 2232<ul class="sub-menu"><li class="menu-item custom-block-item" id="custom-block-item-5926"><div class="gb-container gb-container-0adf8d7a about-mega-menu"> 2233<div class="gb-container gb-container-9ebb20be"> 2234<div class="gb-container gb-container-0757be39 mm-link-wrapper"><a class="gb-container-link" href="/about-isw"></a> 2235 2236<h4 class="gb-headline gb-headline-049bcc0c mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512" width="1em" height="1em" aria-hidden="true"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z" fill="currentColor"></path></svg></span><span class="gb-headline-text">About ISW</span></h4> 2237 2238 2239 2240<p class="gb-headline gb-headline-453b7fb2 gb-headline-text">Objectivity, Truth, Insight</p> 2241 2242</div> 2243 2244<div class="gb-container gb-container-0262c327"> 2245<div class="gb-container gb-container-fbf1025e mm-link-wrapper"><a class="gb-container-link" href="/about-isw/our-capabilities/"></a> 2246 2247<div class="gb-headline gb-headline-648ed533 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Our Capabilities</span></div> 2248 2249 2250 2251<p class="gb-headline gb-headline-09a2fd28 gb-headline-text">ISWâs Comparative Advantage</p> 2252 2253</div> 2254 2255<div class="gb-container gb-container-a8f723d4 mm-link-wrapper"><a class="gb-container-link" href="/about-isw/our-history/"></a> 2256 2257<div class="gb-headline gb-headline-348a81cb mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Our History</span></div> 2258 2259 2260 2261<p class="gb-headline gb-headline-b29a3d4d gb-headline-text">Improving the National Security Debate</p> 2262 2263</div> 2264</div> 2265 2266<div class="gb-container gb-container-70b33f51"> 2267<div class="gb-container gb-container-c9f7d1a3 mm-link-wrapper"><a class="gb-container-link" href="/people"></a> 2268 2269<div class="gb-headline gb-headline-b4a082ea mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Who We Are</span></div> 2270 2271 2272 2273<p class="gb-headline gb-headline-069a2a53 gb-headline-text">Meet the Team</p> 2274 2275</div> 2276 2277<div class="gb-container gb-container-e383e7d2 mm-link-wrapper"><a class="gb-container-link" href="/about-isw/careers/"></a> 2278 2279<div class="gb-headline gb-headline-ecfa4e44 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512">
2279<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Careers</span></div> 2280 2281 2282 2283<p class="gb-headline gb-headline-a993ed5a gb-headline-text">Join the Mission</p> 2284 2285</div> 2286 2287<div class="gb-container gb-container-da947fa7 mm-link-wrapper"><a class="gb-container-link" href="/about-isw/careers/#open-positions"></a> 2288 2289<div class="gb-headline gb-headline-32b7fcce mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Open Positions</span></div> 2290 2291</div> 2292</div> 2293 2294<div class="gb-container gb-container-b6c11b95 mm-maproom-teaser-wrapper"> 2295<div class="gb-container gb-container-dc6e2464 mm-maproom-teaser-img"> 2296 2297<figure class="gb-block-image gb-block-image-9330d011"><img decoding="async" class="gb-image gb-image-9330d011" src="https://understandingwar.org/wp-content/uploads/2026/08/map-1.svg" alt="silhouette of the world, with areas that ISW covers in a darker navy" title="silhouette of the world, with areas that ISW covers in a darker navy"></figure> 2298 2299</div> 2300 2301<div class="gb-container gb-container-7a38b154 mm-maproom-teaser-content"><a class="gb-container-link" href="/analysis/map-room"></a> 2302 2303<h4 class="gb-headline gb-headline-9f0d1d8a gb-headline-text">MAP ROOM</h4> 2304 2305 2306 2307<p class="gb-headline gb-headline-8e35e5b9 gb-headline-text">ISW produces the worldâs premier open-source conflict maps</p> 2308 2309 2310 2311<div class="gb-headline gb-headline-b1dbb797 txt-link"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 10" height="10" width="12"> <path fill="currentColor" d="M7.46447 0.580519L11.4419 4.55799C11.686 4.80207 11.686 5.1978 11.4419 5.44188L7.46447 9.41935C7.22039 9.66343 6.82466 9.66343 6.58058 9.41935C6.33651 9.17528 6.33651 8.77955 6.58058 8.53547L9.49112 5.62494L4.57e-07 5.62494L3.47722e-07 4.37494L9.49112 4.37494L6.58058 1.4644C6.33651 1.22032 6.3365 0.824596 6.58058 0.580519C6.82466 0.336441 7.22039 0.336441 7.46447 0.580519Z" clip-rule="evenodd" fill-rule="evenodd"></path> </svg></span><span class="gb-headline-text">SEE MAPS</span></div> 2312 2313</div> 2314 2315 2316<style> 2317@media screen and (max-width: 1290px) { 2318 .mm-maproom-teaser-wrapper { 2319 flex-wrap: wrap-reverse; 2320} 2321 2322.mm-maproom-teaser-img { 2323 width: 80%; 2324 margin-right: 0px; 2325 margin-top: -30px; 2326} 2327 2328.mm-maproom-teaser-content { 2329 width: 100%; 2330 padding: 30px 20px 30px 20px; 2331} 2332} 2333</style> 2334 2335</div> 2336</div> 2337 2338 2339<style> 2340.mm-link-wrapper:hover .mm-link-label { 2341 color: var(--secondary-gold); 2342} 2343.mm-link-wrapper:hover .gb-icon { 2344 color: var(--secondary-gold); 2345} 2346 2347.about-mega-menu { 2348box-shadow: 0 50px 80px rgba(0, 0, 0, 0.5) 2349} 2350</style> 2351 2352</div> 2353 2354 2355<p class="wp-block-paragraph"></p> 2356</li></ul></li> 2357<li id="menu-item-6910" class="menu-item-analysis menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6910"><a href="https://understandingwar.org/analysis/">Analysis<span role="presentation" class="dropdown-menu-toggle"><span class="gp-icon icon-arrow"><svg viewbox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M305.913 197.085c0 2.266-1.133 4.815-2.833 6.514L171.087 335.593c-1.7 1.7-4.249 2.832-6.515 2.832s-4.815-1.133-6.515-2.832L26.064 203.599c-1.7-1.7-2.832-4.248-2.832-6.514s1.132-4.816 2.832-6.515l14.162-14.163c1.7-1.699 3.966-2.832 6.515-2.832 2.266 0 4.815 1.133 6.515 2.832l111.316 111.317 111.316-111.317c1.7-1.699 4.249-2.832 6.515-2.832s4.815 1.133 6.515 2.832l14.162 14.163c1.7 1.7 2.833 4.249 2.833 6.515z"></path></svg></span></span></a> 2358 2359<ul class="sub-menu"><li class="menu-item custom-block-item" id="custom-block-item-6910"><div class="gb-container gb-container-0adf8d7a analysis-mega-menu"> 2360<div class="gb-container gb-container-9ebb20be"> 2361<div class="gb-container gb-container-0757be39 mm-link-wrapper"><a class="gb-container-link" href="/analysis"></a> 2362 2363<h4 class="gb-headline gb-headline-ed181596 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512" width="1em" height="1em" aria-hidden="true"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z" fill="currentColor"></path></svg></span><span class="gb-headline-text">Analysis</span></h4> 2364 2365 2366 2367<p class="gb-headline gb-headline-a85e694c gb-headline-text">The General Jack Keane Center for National Security</p> 2368 2369</div> 2370 2371<div class="gb-container gb-container-70b33f51"> 2372<div class="gb-container gb-container-e383e7d2 mm-link-wrapper"><a class="gb-container-link" href="/analysis/map-room"></a> 2373 2374<div class="gb-headline gb-headline-ecfa4e44 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512">
2374<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Map Room</span></div> 2375 2376 2377 2378<p class="gb-headline gb-headline-a993ed5a gb-headline-text">Dive into ISW's Complete Map Catalog</p> 2379 2380</div> 2381 2382<div class="gb-container gb-container-fbf1025e mm-link-wrapper"><a class="gb-container-link" href="/analysis/briefing-room/"></a> 2383 2384<div class="gb-headline gb-headline-648ed533 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Briefing Room</span></div> 2385 2386 2387 2388<p class="gb-headline gb-headline-09a2fd28 gb-headline-text">Videos, Podcasts, and Interactive Content</p> 2389 2390</div> 2391 2392<div class="gb-container gb-container-19a415a6 mm-link-wrapper"><a class="gb-container-link" href="/research/"></a> 2393 2394<div class="gb-headline gb-headline-59aca635 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Research Library</span></div> 2395 2396 2397 2398<p class="gb-headline gb-headline-453b7fb2 gb-headline-text">Browse ISW's Entire Body of Work</p> 2399 2400</div> 2401</div> 2402 2403<div class="gb-container gb-container-0262c327"> 2404 2405<h3 class="gb-headline gb-headline-d7eaaf98 gb-headline-text">TEAMS/PORTFOLIOS</h3> 2406 2407 2408<div class="gb-container gb-container-f9889e31 mm-link-wrapper"><a class="gb-container-link" href="/analysis/russia-ukraine/"></a> 2409 2410<div class="gb-headline gb-headline-d7e5455d mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Russia & Ukraine</span></div> 2411 2412</div> 2413 2414<div class="gb-container gb-container-f93e7fd3 mm-link-wrapper"><a class="gb-container-link" href="/analysis/middle-east/"></a> 2415 2416<div class="gb-headline gb-headline-f636d3a4 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Middle East</span></div> 2417 2418</div> 2419 2420<div class="gb-container gb-container-a80c2487 mm-link-wrapper"><a class="gb-container-link" href="/analysis/china-taiwan/"></a> 2421 2422<div class="gb-headline gb-headline-18a8324d mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">China & Taiwan</span></div> 2423 2424</div> 2425 2426<div class="gb-container gb-container-2f347bd8 mm-link-wrapper"><a class="gb-container-link" href="/analysis/defense-of-europe/"></a> 2427 2428<div class="gb-headline gb-headline-efe861e0 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512">
2428<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Defense of Europe</span></div> 2429 2430</div> 2431</div> 2432 2433<div class="gb-container gb-container-d6b2441f"> 2434<div class="gb-container gb-container-f980e62f mm-link-wrapper"><a class="gb-container-link" href="/analysis/adversary-entente/"></a> 2435 2436<div class="gb-headline gb-headline-f92f6aa3 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Adversary Entente</span></div> 2437 2438</div> 2439 2440<div class="gb-container gb-container-b0da9567 mm-link-wrapper"><a class="gb-container-link" href="/analysis/contemporary-future-war/"></a> 2441 2442<div class="gb-headline gb-headline-385ab4cc mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Contemporary & Future War</span></div> 2443 2444</div> 2445 2446<div class="gb-container gb-container-0e487310 mm-link-wrapper"><a class="gb-container-link" href="/analysis/geospatial-intelligence"></a> 2447 2448<div class="gb-headline gb-headline-718f3639 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Geospatial Intelligence</span></div> 2449 2450</div> 2451 2452<div class="gb-container gb-container-c445dccc mm-link-wrapper"><a class="gb-container-link" href="/analysis/cognitive-warfare/"></a> 2453 2454<div class="gb-headline gb-headline-2430c392 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Cognitive Warfare</span></div> 2455 2456</div> 2457</div> 2458</div> 2459 2460 2461<style> 2462.mm-link-wrapper:hover .mm-link-label { 2463 color: var(--secondary-gold); 2464} 2465.mm-link-wrapper:hover .gb-icon { 2466 color: var(--secondary-gold); 2467} 2468 2469.analysis-mega-menu { 2470box-shadow: 0 50px 80px rgba(0, 0, 0, 0.5) 2471} 2472</style> 2473 2474</div> 2475 2476 2477<p class="wp-block-paragraph"></p> 2478</li></ul></li> 2479<li id="menu-item-6399" class="menu-item-education menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6399"><a href="https://understandingwar.org/education/">Education<span role="presentation" class="dropdown-menu-toggle"><span class="gp-icon icon-arrow"><svg viewbox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M305.913 197.085c0 2.266-1.133 4.815-2.833 6.514L171.087 335.593c-1.7 1.7-4.249 2.832-6.515 2.832s-4.815-1.133-6.515-2.832L26.064 203.599c-1.7-1.7-2.832-4.248-2.832-6.514s1.132-4.816 2.832-6.515l14.162-14.163c1.7-1.699 3.966-2.832 6.515-2.832 2.266 0 4.815 1.133 6.515 2.832l111.316 111.317 111.316-111.317c1.7-1.699 4.249-2.832 6.515-2.832s4.815 1.133 6.515 2.832l14.162 14.163c1.7 1.7 2.833 4.249 2.833 6.515z"></path></svg></span></span></a> 2480 2481<ul class="sub-menu"><li class="menu-item custom-block-item" id="custom-block-item-6399"><div class="gb-container gb-container-0adf8d7a analysis-mega-menu"> 2482<div class="gb-container gb-container-9ebb20be"> 2483<div class="gb-container gb-container-0757be39 mm-link-wrapper"><a class="gb-container-link" href="/education"></a> 2484 2485<h4 class="gb-headline gb-headline-049bcc0c mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512" width="1em" height="1em" aria-hidden="true"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z" fill="currentColor"></path></svg></span><span class="gb-headline-text">Education</span></h4> 2486 2487 2488 2489<p class="gb-headline gb-headline-a85e694c gb-headline-text">The General David H. Petraeus Center for Emerging Leaders</p> 2490 2491</div> 2492 2493<div class="gb-container gb-container-0262c327"> 2494<div class="gb-container gb-container-19a415a6 mm-link-wrapper"><a class="gb-container-link" href="/education/hertog-war-studies-program/"></a> 2495 2496<div class="gb-headline gb-headline-59aca635 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512">
2496<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Hertog War Studies</span></div> 2497 2498 2499 2500<p class="gb-headline gb-headline-453b7fb2 gb-headline-text">ISWâs Premier Educational Program for Undergraduates</p> 2501 2502</div> 2503</div> 2504 2505<div class="gb-container gb-container-ab4a3af5"> 2506<div class="gb-container gb-container-dbe1a646 mm-link-wrapper"><a class="gb-container-link" href="/education/fellowships/"></a> 2507 2508<div class="gb-headline gb-headline-29588da2 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Fellowships</span></div> 2509 2510 2511 2512<p class="gb-headline gb-headline-a87e58f3 gb-headline-text">Enrichment and Advancement Opportunities for Entry-Level and Mid-Career Professionals</p> 2513 2514</div> 2515 2516<div class="gb-container gb-container-3add3f15 mm-link-wrapper"><a class="gb-container-link" href="/education/internships/"></a> 2517 2518<div class="gb-headline gb-headline-33aea042 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Internships</span></div> 2519 2520 2521 2522<p class="gb-headline gb-headline-76c66f50 gb-headline-text">Launch your Career at ISW with an Internship in Open-Source Intelligence, Geospatial Intelligence, Cognitive Warfare, or Communications</p> 2523 2524</div> 2525</div> 2526 2527<div class="gb-container gb-container-b6c11b95 mm-maproom-teaser-wrapper"> 2528<div class="gb-container gb-container-dc6e2464 mm-maproom-teaser-img search"> 2529 2530<figure class="gb-block-image gb-block-image-9330d011"><img decoding="async" class="gb-image gb-image-9330d011" src="https://understandingwar.org/wp-content/uploads/2024/12/research-library.svg" alt="research library icon of a magnifying glass over a laptop screen" title="research library icon of a magnifying glass over a laptop screen"></figure> 2531 2532</div> 2533 2534<div class="gb-container gb-container-7a38b154 mm-maproom-teaser-content"><a class="gb-container-link" href="/research"></a> 2535 2536<h4 class="gb-headline gb-headline-9f0d1d8a gb-headline-text">Research Library</h4> 2537 2538 2539 2540<p class="gb-headline gb-headline-8e35e5b9 gb-headline-text">Browse ISWâs published work, curated for maximum searchability</p> 2541 2542 2543 2544<div class="gb-headline gb-headline-b1dbb797 txt-link"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 10" height="10" width="12"> <path fill="currentColor" d="M7.46447 0.580519L11.4419 4.55799C11.686 4.80207 11.686 5.1978 11.4419 5.44188L7.46447 9.41935C7.22039 9.66343 6.82466 9.66343 6.58058 9.41935C6.33651 9.17528 6.33651 8.77955 6.58058 8.53547L9.49112 5.62494L4.57e-07 5.62494L3.47722e-07 4.37494L9.49112 4.37494L6.58058 1.4644C6.33651 1.22032 6.3365 0.824596 6.58058 0.580519C6.82466 0.336441 7.22039 0.336441 7.46447 0.580519Z" clip-rule="evenodd" fill-rule="evenodd"></path> </svg></span><span class="gb-headline-text">view insights</span></div> 2545 2546</div> 2547 2548 2549<style> 2550.gb-container-dc6e2464.search { 2551 width: 20%; 2552 display: flex; 2553 flex-direction: column; 2554 z-index: 1; 2555 position: relative; 2556 margin-right: -15%; 2557} 2558@media screen and (max-width: 1290px) { 2559 .mm-maproom-teaser-wrapper { 2560 flex-wrap: wrap-reverse; 2561} 2562.gb-container-dc6e2464.search { 2563 width: 50%; 2564 margin-right: 0px; 2565 margin-top: -25px; 2566} 2567.mm-maproom-teaser-img { 2568 width: 80%; 2569 margin-right: 0px; 2570 margin-top: -30px; 2571} 2572 2573.mm-maproom-teaser-content { 2574 width: 100%; 2575 padding: 30px 20px 30px 20px; 2576} 2577} 2578</style> 2579 2580</div> 2581</div> 2582 2583 2584<style> 2585.mm-link-wrapper:hover .mm-link-label { 2586 color: var(--secondary-gold); 2587} 2588.mm-link-wrapper:hover .gb-icon { 2589 color: var(--secondary-gold); 2590} 2591 2592.analysis-mega-menu { 2593box-shadow: 0 50px 80px rgba(0, 0, 0, 0.5) 2594} 2595</style> 2596 2597</div> 2598 2599 2600<p class="wp-block-paragraph"></p> 2601</li></ul></li> 2602<li id="menu-item-92" class="menu-item-getinvolved menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-92"><a href="#">Get Involved<span role="presentation" class="dropdown-menu-toggle">
2602<span class="gp-icon icon-arrow"><svg viewbox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M305.913 197.085c0 2.266-1.133 4.815-2.833 6.514L171.087 335.593c-1.7 1.7-4.249 2.832-6.515 2.832s-4.815-1.133-6.515-2.832L26.064 203.599c-1.7-1.7-2.832-4.248-2.832-6.514s1.132-4.816 2.832-6.515l14.162-14.163c1.7-1.699 3.966-2.832 6.515-2.832 2.266 0 4.815 1.133 6.515 2.832l111.316 111.317 111.316-111.317c1.7-1.699 4.249-2.832 6.515-2.832s4.815 1.133 6.515 2.832l14.162 14.163c1.7 1.7 2.833 4.249 2.833 6.515z"></path></svg></span></span></a> 2603 2604<ul class="sub-menu"><li class="menu-item custom-block-item" id="custom-block-item-92"><div class="gb-container gb-container-0adf8d7a analysis-mega-menu"> 2605<div class="gb-container gb-container-9ebb20be"> 2606<div class="gb-container gb-container-0757be39 mm-link-wrapper"><a class="gb-container-link" href="/get-involved"></a> 2607 2608<h4 class="gb-headline gb-headline-049bcc0c mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512" width="1em" height="1em" aria-hidden="true"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z" fill="currentColor"></path></svg></span><span class="gb-headline-text">Get Involved</span></h4> 2609 2610 2611 2612<p class="gb-headline gb-headline-453b7fb2 gb-headline-text">Join the ISW Community and Help Us Safeguard Americaâs Security</p> 2613 2614</div> 2615 2616<div class="gb-container gb-container-0262c327"> 2617<div class="gb-container gb-container-19a415a6 mm-link-wrapper"><a class="gb-container-link" href="/donate"></a> 2618 2619<div class="gb-headline gb-headline-59aca635 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Donate</span></div> 2620 2621 2622 2623<p class="gb-headline gb-headline-de57d658 gb-headline-text">Your Donations Keep ISW Independent, Nonpartisan, and Objective</p> 2624 2625</div> 2626</div> 2627 2628<div class="gb-container gb-container-ab4a3af5"> 2629<div class="gb-container gb-container-45dc0680 mm-link-wrapper"><a class="gb-container-link" href="/get-involved/planned-giving/"></a> 2630 2631<div class="gb-headline gb-headline-24d0f5e3 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Planned Giving</span></div> 2632 2633 2634 2635<p class="gb-headline gb-headline-c7b32af3 gb-headline-text">Secure Your Legacy and Strengthen Future Generations</p> 2636 2637</div> 2638</div> 2639 2640<div class="gb-container gb-container-b685d480"> 2641<div class="gb-container gb-container-48abf3ed mm-link-wrapper"><a class="gb-container-link" href="/get-involved/our-partners/"></a> 2642 2643<div class="gb-headline gb-headline-fbdb9839 mm-link-label"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span><span class="gb-headline-text">Our Partners</span></div> 2644 2645 2646 2647<p class="gb-headline gb-headline-4ed950f2 gb-headline-text">Partnering With ISW Makes a Direct Impact on Americaâs Security and Future Leaders</p> 2648 2649</div> 2650</div> 2651</div> 2652 2653 2654<style> 2655.mm-link-wrapper:hover .mm-link-label { 2656 color: var(--secondary-gold); 2657} 2658.mm-link-wrapper:hover .gb-icon { 2659 color: var(--secondary-gold); 2660} 2661 2662.analysis-mega-menu { 2663box-shadow: 0 50px 80px rgba(0, 0, 0, 0.5) 2664} 2665</style> 2666 2667</div> 2668 2669 2670<p class="wp-block-paragraph"></p> 2671</li></ul></li> 2672<li id="menu-item-6401" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6401"><a href="https://understandingwar.org/newsroom/">Newsroom</a></li>
vendor: 109 bytes, lines 2672-2673
2672 2673<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
2673</body></html></ul></div><div class="menu-bar-items"> <span class="menu-bar-item"> 2674 <a href="#" role="button" aria-label="Open search" aria-haspopup="dialog" aria-controls="gp-search" data-gpmodal-trigger="gp-search"><span class="gp-icon icon-search"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path fill-rule="evenodd" clip-rule="evenodd" d="M208 48c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160S296.366 48 208 48zM0 208C0 93.125 93.125 0 208 0s208 93.125 208 208c0 48.741-16.765 93.566-44.843 129.024l133.826 134.018c9.366 9.379 9.355 24.575-.025 33.941-9.379 9.366-24.575 9.355-33.941-.025L337.238 370.987C301.747 399.167 256.839 416 208 416 93.125 416 0 322.875 0 208z" /></svg><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.03c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z" /></svg></span></a> 2675 </span> 2676 <a class="btn-donate" href="https://understandingwar.org/donate/">Donate</a></div> </div> 2677 </nav> 2678 </div> 2679 </header> 2680 </div><!-- .header-wrap --><div id="jump-menu-links"><div class="container"><h2 class="jump-menu__title">Jump to</h2></div></div> 2681 2682 2683<style> 2684/*#jump-menu-links { 2685 margin-bottom: -40px !important; 2686}*/ 2687</style> 2688 2689 <div class="site grid-container container hfeed" id="page"> 2690 <div class="site-content" id="content"> 2691 2692 <div class="content-area" id="primary"> 2693 <main class="site-main" id="main"> 2694 2695<article id="post-9058" class="post-9058 page type-page status-publish" itemtype="https://schema.org/CreativeWork" itemscope> 2696 <div class="inside-article"> 2697 2698 <div class="entry-content" itemprop="text"> 2699 <div class="gb-container gb-container-0aa2080b"> 2700<div class="gb-container gb-container-d92f76e6 breadcrumb"> 2701<span><span><a href="https://understandingwar.org/">Home</a></span> | <span><a href="https://understandingwar.org/about-isw/">About ISW</a></span> | <span class="breadcrumb_last" aria-current="page">Our Capabilities</span></span> 2702 2703</div> 2704 2705<div class="gb-container gb-container-ae94f994"> 2706<h1 class="gb-headline gb-headline-d1db6115 gb-headline-text">Our Capabilities</h1> 2707</div> 2708</div> 2709 2710 2711<div><div class="gb-container gb-container-75ca6acd accordion-left"> 2712 2713<p class="gb-headline gb-headline-17df5b61 gb-headline-text">ISWâs comparative advantage comes from synergistic capabilities it has cultivated throughout its history. Learn more about what powers ISWâs breakout talent and insight.</p> 2714 2715</div></div> 2716 2717 2718<div class="gb-container gb-container-33fd32d0"> 2719<div class="gb-container gb-container-e47a079f"> 2720<div class="gb-container gb-container-8486932f capability-card-grid"> 2721<div class="gb-container gb-container-4bb89959 capability-card"><a class="gb-container-link" href="/about-isw/our-capabilities#open-source-intelligence"></a> 2722 2723<h5 class="gb-headline gb-headline-9861de6b gb-headline-text capability-title">Open-Source Intelligence</h5> 2724 2725 2726 2727<h4 class="gb-headline gb-headline-4a9c0c88 capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2728 2729</div> 2730 2731<div class="gb-container gb-container-738aa172 capability-card" style="--background-image: url(https://understandingwar.org/wp-content/uploads/2025/06/DualMission_Impact_Reuters_RTS8QOIY-scaled.jpg);"><a class="gb-container-link" href="/about-isw/our-capabilities#conflict-mapping-geospatial-intelligence"></a> 2732 2733<h5 class="gb-headline gb-headline-379f12f9 gb-headline-text capability-title">CONFlict mapping & geospatial intelligence</h5> 2734 2735 2736 2737<h4 class="gb-headline gb-headline-6ffaf78c capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg">
2737<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2738 2739</div> 2740 2741<div class="gb-container gb-container-29541e7e capability-card"><a class="gb-container-link" href="/about-isw/our-capabilities#innovation"></a> 2742 2743<h5 class="gb-headline gb-headline-0da56d52 gb-headline-text capability-title">innovation</h5> 2744 2745 2746 2747<h4 class="gb-headline gb-headline-34f0f307 capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2748 2749</div> 2750 2751<div class="gb-container gb-container-82485414 capability-card"><a class="gb-container-link" href="/about-isw/our-capabilities#forecasting"></a> 2752 2753<h5 class="gb-headline gb-headline-985268bb gb-headline-text capability-title">forecasting</h5> 2754 2755 2756 2757<h4 class="gb-headline gb-headline-2defe214 capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2758 2759</div> 2760 2761<div class="gb-container gb-container-b8818d84 capability-card"><a class="gb-container-link" href="/about-isw/our-capabilities#planning-exercises-wargaming"></a> 2762 2763<h5 class="gb-headline gb-headline-12a7f856 gb-headline-text capability-title">planning exercises </h5> 2764 2765 2766 2767<h4 class="gb-headline gb-headline-270c1bf2 capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2768 2769</div> 2770 2771<div class="gb-container gb-container-934adf00 capability-card"><a class="gb-container-link" href="/about-isw/our-capabilities#leadership-development"></a> 2772 2773<h5 class="gb-headline gb-headline-8998b30b gb-headline-text capability-title">leadership development</h5> 2774 2775 2776 2777<h4 class="gb-headline gb-headline-8653940a capabilities-arrow"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></h4> 2778 2779</div> 2780</div> 2781</div> 2782</div> 2783 2784<div class="gb-container gb-container-614b988f" id="open-source-intelligence"> 2785<div class="gb-container gb-container-3aabde0e"> 2786 2787<p class="gb-headline gb-headline-5be4ff37 gb-headline-text eyebrow">capability 1</p> 2788 2789 2790 2791<h2 class="gb-headline gb-headline-97d60e60 gb-headline-text h1-clamp">open-source intelligence</h2> 2792 2793 2794<div class="gb-container gb-container-f2af1eed"> 2795 2796<p class="gb-headline gb-headline-c447a155 gb-headline-text">ISW is a leader in open-source intelligence. ISW analytical teams perform a full intelligence cycle from strictly non-classified sources to produce accurate, granular, and timely intelligence to many audiences, including US and allied decision-makers. ISWâs methodology reflects best practices and analytic tradecraft standards drawn from the US intelligence community and adapted to the unclassified environment.</p> 2797 2798 2799 2800<p class="gb-headline gb-headline-0d86c360 gb-headline-text">ISW has innovative ways of approaching open-source intelligence that differentiate its work.</p> 2801 2802 2803<div class="gb-container gb-container-aaf3568a"> 2804 2805<ol class="wp-block-list"> 2806<li>
2806ISWâs open source intelligence produces analytical assessments and forecasts, not just information or investigations.</li> 2807 2808 2809 2810<li>ISW like the intelligence community presents assessments with a confidence level to help readers interpret the insights.</li> 2811 2812 2813 2814<li>ISW presents citations to the sources from which its insights are derived so that readers can independently assess the same information. </li> 2815 2816 2817 2818<li>ISW analysts rigorously characterize their source material.</li> 2819</ol> 2820 2821</div> 2822 2823 2824<p class="gb-headline gb-headline-41d34cd6 gb-headline-text">ISW products do not simply report facts but rather interpret available and sometimes conflicting data to form intelligence assessments regarding what is occurring, has occurred, and could occur, and their implications.<br><br>Many of ISWâs product lines are ongoing running assessments of a war or threat. ISW engages in timely forecasting and predictive analysis to provide advance warning about potential risks and opportunities for the United States, its partners, and allies. ISW explicitly states its specific confidence level in each assessment whenever applicable to help the user interpret the analysis effectively.</p> 2825 2826 2827 2828<h2 class="gb-headline gb-headline-582b7277 gb-headline-text eyebrow">Timely, strategic insight</h2> 2829 2830 2831 2832<p class="gb-headline gb-headline-7d5b708e gb-headline-text">ISW teams complete daily intelligence cycles to publish maps and insights, often daily. ISW also produces holistic assessments based on ISWâs longitudinal study of an actor or conflict zone.</p> 2833 2834 2835 2836<p class="gb-headline gb-headline-eb20a089 gb-headline-text">ISW produces a rich variety of intelligence products to inform decision-makers and public discourse, including:</p> 2837 2838 2839 2840<div class="gb-element-81f72d01"> 2841<ul class="wp-block-list"> 2842<li>Running assessments and maps of ongoing military campaigns </li> 2843 2844 2845 2846<li>Orders of Battle of adversary armed forces </li> 2847 2848 2849 2850<li>Assessments of adversary strategic intent, diplomatic negotiations, and campaign design </li> 2851 2852 2853 2854<li>Analysis of the character of contemporary and future war</li> 2855 2856 2857 2858<li>Warnings and forecasts of adversary behavior or potential threats.</li> 2859</ul> 2860</div> 2861 2862 2863 2864<h2 class="gb-headline gb-headline-bd232fec gb-headline-text eyebrow">Policy Impact</h2> 2865 2866 2867 2868<p class="has-text-align-left has-paragraph-black-color has-text-color has-link-color wp-elements-60b9eb8eb38264accc8a47618568be66 wp-block-paragraph">ISWâs capacity to generate high-fidelity, timely, intelligence assessments from openly available sources enables ISW to:</p> 2869 2870 2871 2872<div class="gb-element-dfe5b5c5"> 2873<ul class="wp-block-list"> 2874<li>Empower US and allied decision-makers with important, timely insights as crises unfold;</li> 2875 2876 2877 2878<li>Enable policymakers and media to understand the context and purpose driving key events;</li> 2879 2880 2881 2882<li>Enable US, allied, and partnered leaders to speak publicly on important national security issues informed by published, unclassified insights;</li> 2883 2884 2885 2886<li>Narrow the gap of understanding between national capitals, leaders in-theater, and frontline forces;</li> 2887 2888 2889 2890<li>Raise the quality of public discourse by providing journalists and media outlets access to high-quality, timely, and fully cited assessments;</li> 2891 2892 2893 2894<li>Inform democratic citizens about national security issues that affect their world.</li> 2895</ul> 2896</div> 2897 2898</div> 2899</div> 2900</div> 2901 2902<div class="gb-container gb-container-55f0b97f" id="conflict-mapping-geospatial-intelligence"> 2903<div class="gb-container gb-container-675bd5d1"> 2904 2905<p class="gb-headline gb-headline-8a7b0428 gb-headline-text eyebrow">capability 2</p> 2906 2907 2908 2909<h2 class="gb-headline gb-headline-8cf6f074 gb-headline-text h1-clamp">Conflict Mapping </h2> 2910 2911 2912<div class="gb-container gb-container-cb7d7cd8"> 2913 2914<p class="gb-headline gb-headline-ae00e3e6 gb-headline-text">ISW makes a signature contribution to global discourse and US and allied decision making through its world-class conflict mapping. ISW maps of the war in Ukraine are utilized by world leaders, military and intelligence professionals, and media organizations that broadcast to millions daily.</p> 2915 2916 2917 2918<div class="gb-element-665f4501"> 2919<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="801" title="French President Macron, German Chancellor Scholz, Italian PM Draghi and Romanian President Iohannis visit Ukraine" src="https://understandingwar.org/wp-content/uploads/2025/08/DualMission_Impact_Reuters_RTS8QOIY_crop1-1024x801.jpg" alt="French President Macron, German Chancellor Scholz, Italian PM Draghi and Romanian President Iohannis visit Ukraine" class="wp-image-72108"/></figure> 2920 2921 2922 2923<p class="gb-headline gb-headline-819e9e5c gb-headline-text"><em>Ukrainian Minister for Communities and Territories Development Oleksiy Chernyshov shows a wartime map to French President Emmanuel Macron, German Chancellor Olaf Scholz, Italian Prime Minister Mario Draghi and Romanian President Klaus Iohannis (partially obscured) during their visit, as Russia’s attack on Ukraine continues, in Irpin, near Kyiv, Ukraine June 16, 2022. REUTERS/Viacheslav Ratynskyi TPX IMAGES OF THE DAY</em></p> 2924</div> 2925 2926 2927 2928<p class="gb-headline gb-headline-f548824f gb-headline-text">ISW has produced high-fidelity maps to enable US and allied decision makers since ISWâs establishment in 2007. ISWâs historic map series include: </p> 2929 2930 2931 2932<div class="gb-element-41e07631"> 2933<ul class="wp-block-list"> 2934<li>Counterinsurgency operations in Iraq 2007-2011</li> 2935 2936 2937 2938<li>ISIS Control of Terrain in Iraq and Syria and counter-ISIS operations</li> 2939 2940 2941 2942<li>Control of Terrain in Syriaâs Civil War</li> 2943 2944 2945 2946<li>Russian Airstrikes in Syriaâs Civil War</li> 2947 2948 2949 2950<li>Detailed maps of Afghanistan at key stages of NATO operations</li> 2951</ul> 2952</div> 2953 2954</div> 2955 2956 2957<h2 class="gb-headline gb-headline-87df14ad gb-headline-text eyebrow">Geospatial intelligence</h2> 2958 2959 2960 2961<p class="gb-headline gb-headline-f0acc696 gb-headline-text">ISW established a new geospatial intelligence program at ISW to meet the demands posed by the Ukraine war in 2022. ISWâs Geospatial team is now a discrete entity that works in support of ISWâs analytic team, providing granular tracking and visualization of the war that informs the assessments ISW analysts produce. This configuration â a mapping team in support of an analytic team â represents a consolidation of ISWâs traditional approach to analyzing conflicts and will enable ISW to continue to achieve greater scale by applying this tradecraft to new portfolios, including China. It also enables ISWâs ongoing innovation of new mapping approaches.</p> 2962 2963 2964 2965<div class="gb-element-932bc459"> 2966<a class="gb-button gb-button-a2029a6b btn-tertiary-navy" href="/analysis/map-room/"><span class="gb-button-text">Map room</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#146D9C" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="white" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 2967 2968 2969 2970<a class="gb-button gb-button-3dd88c9a btn-secondary-gold" href="/analysis/geospatial-intelligence/"><span class="gb-button-text">Geospatial Team</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#DCDCDC" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="#042E4E" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 2971</div> 2972 2973 2974 2975<div class="gb-element-53d4b3e8"> 2976<h2 class="gb-headline gb-headline-72ae6f3b gb-headline-text eyebrow">Enabling Humanitarian Organizations and NGOs</h2> 2977 2978 2979 2980<p class="gb-headline gb-headline-fb5fd0b0 gb-headline-text">ISWâs conflict mapping and GEOINT capacity enable humanitarian organizations and NGOs that perform difficult and often high-risk operations in conflict zones and terrain controlled by hostile actors. ISWâs maps provide a granular baseline assessment of areas of control and of the locations of active military operations which can layer into established processes for scoping the locations and conduct of humanitarian operations.</p> 2981 2982 2983 2984<p class="gb-headline gb-headline-f3c495be gb-headline-text">Humanitarian organizations use ISW map layers to support:</p> 2985 2986 2987 2988<div class="gb-element-aa76e5fb"> 2989<ul class="wp-block-list"> 2990<li>Assessment of Crop Yields</li> 2991 2992 2993 2994<li>Demining and Removal of Unexploded Ordnances</li> 2995 2996 2997 2998<li>War Crimes Investigations</li> 2999 3000 3001 3002<li>Damage to protected cultural heritage sites </li> 3003</ul> 3004</div> 3005 3006 3007 3008<p class="gb-headline gb-headline-1b9d30ec gb-headline-text">Public examples of ISW map layers utilized by humanitarian organizations, government officials, NGOs, and the media include those below:</p> 3009</div> 3010 3011 3012<div class="gb-container gb-container-c15dc831"> 3013<div class="gb-container gb-container-e1a5b530"></div> 3014 3015<div class="gb-container gb-container-0209dfbb"></div> 3016 3017<div class="gb-container gb-container-e0504290"></div> 3018</div> 3019 3020 3021<p class="gb-headline gb-headline-f3da25f2 gb-headline-text"><em>ISW’
3021s data and analysis featured in key visual platforms: (Left) NASA highlights ISW and Harvest data on unharvested Ukrainian crops near the front line; (Center) House Foreign Affairs Chair Michael McCaul used ISWâCTPâs map of Russian military and security bases within range of US-provided weapons during a congressional hearing with Secretary Blinken; (Right) Near-infrared imagery reveals flood damage to Russian defenses along the Dnipro River on June 7, 2023,<em> as cited in the New York Times</em> <em>and other media outlets</em>.</em></p> 3022 3023</div> 3024</div> 3025 3026<div class="gb-container gb-container-681a857e" id="innovation"> 3027<div class="gb-container gb-container-0c0be988"> 3028 3029<p class="gb-headline gb-headline-b3367034 gb-headline-text eyebrow">capability 3</p> 3030 3031 3032 3033<h2 class="gb-headline gb-headline-cd06be74 gb-headline-text h1-clamp">Innovation</h2> 3034 3035 3036 3037<p class="gb-headline gb-headline-23a133cd gb-headline-text">ISW innovates new ways of collecting, analyzing, and visualizing public data in order to answer intelligence questions essential for US and allied decision-making.</p> 3038 3039 3040 3041<p class="gb-headline gb-headline-eccdf556 gb-headline-text">ISW envisions a revolution in open-source intelligence. The information age has transformed the nature of the intelligence fight. New social media platforms, commercially available data, censorship and disinformation efforts, automation tools and other software all pose new and interesting analytic challenges and opportunities for studying conflict. Disinformation and misreporting further complicate accuracy. The old fight was for information. The new fight is for understanding and it will take an intelligence revolution to win it.</p> 3042 3043 3044 3045<p class="gb-headline gb-headline-621a4bf7 gb-headline-text">ISW contributes to this revolution by demonstrating the potential of open-source methodologies, beta testing emerging technologies that enable intelligence collection and analysis and innovating at the intersection between human analysts and technology.</p> 3046 3047 3048<div class="gb-container gb-container-8c90c75c"> 3049 3050<a class="gb-button gb-button-4fad872a btn-tertiary-navy" href="/get-involved/our-supporters/"><span class="gb-button-text">ISW Technology Partnerships</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#146D9C" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="white" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 3051 3052</div> 3053</div> 3054</div> 3055 3056<div class="gb-container gb-container-17aea298" id="forecasting"> 3057<div class="gb-container gb-container-a9ca7eb5"> 3058 3059<p class="gb-headline gb-headline-8f69a6d5 gb-headline-text eyebrow">capability 4</p> 3060 3061 3062 3063<h2 class="gb-headline gb-headline-81e967af gb-headline-text h1-clamp">Forecasting</h2> 3064 3065 3066 3067<p class="gb-headline gb-headline-84ad733a gb-headline-text">ISWâs strict independence allows ISW to set its own research priorities and pivot quickly before and after major geo-strategic inflections even when US policy priorities do not align. ISW teams maintain a constant stare on their portfolios and rapidly detect change. As a result, ISW is able to produce high-quality,useful forecasts that often illuminate gaps in the US intelligence picture.</p> 3068 3069 3070 3071<p class="gb-headline gb-headline-18be0541 gb-headline-text">ISW produces three forms of forecasts:</p> 3072 3073 3074<div class="gb-container gb-container-9f4957cb"> 3075 3076<ol class="wp-block-list"> 3077<li><strong>Early warning: </strong>ISW publishes early warning forecasts when its analysts judge an issue to be sufficiently important, timely, or risky to warrant a flag. These early warnings provide a valuable means of scoping the aperture of decision-makers during fast-moving events, strategic surprises, and amidst highly contested information environments. ISW follows the warnings with further updates as the situation develops.</li> 3078 3079 3080 3081<li><strong>Courses of Action:</strong> A forecast that identifies ranges of possible actions from most likely to most dangerous that an actor or group of actions is likely to take based on their objectives, their capabilities, and the situational environment in which theyâre operating.</li> 3082 3083 3084 3085<li><strong>Trajectory:</strong> A synthetic assessment of the trajectory of a conflict or threat, often with a range of likely to dangerous outcomes and an identification of key variables or thresholds that will affect the outcome.</li> 3086</ol> 3087 3088</div> 3089 3090 3091<p class="gb-headline gb-headline-8ee01fef gb-headline-text">Major ISW forecasting successes include:</p> 3092 3093 3094 3095<div class="gb-element-7bb0beec"> 3096<ul class="wp-block-list"> 3097<li> ISW <a href="/research/middle-east/al-qaeda-in-iraq-resurgent-part
3097-ii/">warned </a>that ISIS would attempt to seize<a href="https://www.iswresearch.org/2013/11/further-indications-of-al-qaedas.html"> </a><a href="/research/middle-east/further-indications-of-al-qaedas/">territorial control </a>in Iraq, collapse the Iraqi security forces, and highlighted that<a href="/research/middle-east/further-indications-of-al-qaedas/"> Mosul was vulnerable</a> seven months before ISIS launched its blitz offensive in June 2014. </li> 3098 3099 3100 3101<li>ISW<a href="/competing-visions-for-syria-and-iraq-the-myth-of-an-anti-isis-grand-coalition/"> warned</a> that the global coalition against ISIS was united only on the military defeat of ISIS and not the political aftermath, precluding regional stability, in January 2016, seven months before Turkey launched a war against the US partner in Syria and a year and nine months before Iran<a href="/research/middle-east/the-war-after-isis-begins-in-iraq/"> launched</a> its next bid for power in Iraq in October 2017.</li> 3102 3103 3104 3105<li>ISW <a href="/research/russia-ukraine/belarus-warning-update-russia-may-send-little-green-men-to-belarus/">warned </a>that Russia would deploy Russian troops to Belarus in the aftermath of major protests in Minsk August 2020 â months before Russia began assembling its invasion force to invade Ukraine from Belarus in 2021.</li> 3106</ul> 3107</div> 3108 3109</div> 3110</div> 3111 3112<div class="gb-container gb-container-ab673eeb" id="planning-exercises-wargaming"> 3113<div class="gb-container gb-container-3b70c254"> 3114 3115<p class="gb-headline gb-headline-aa817824 gb-headline-text eyebrow">capability 5</p> 3116 3117 3118 3119<h2 class="gb-headline gb-headline-3cdafd9e gb-headline-text h1-clamp">Planning Exercises </h2> 3120 3121 3122 3123<p class="gb-headline gb-headline-5a69e8dd gb-headline-text">ISW conducts unclassified planning exercises, often joined by research partners such as the Critical Threats Project at AEI. ISW and CTP conducted a rigorous planning exercise to recommend policy options for combating ISIS following the 2015 Paris Attack. ISW used a simlar methodology in 2020-2021 to develop policy options to respond to Russia. <br><br>The planning exercise (PLANEX) methodology that ISW uses is based on the Military Decision-Making Process (MDMP) that the US military uses to develop operations orders. The US Army describes that process as âan iterative planning methodology that integrates the activities of the commander, staff, subordinate headquarters, and other partners to understand the situation and mission, develop and compare courses of action (COAs), decide on a COA that best accomplishes the mission, and produce an operation plan or order for execution.â<sup>1</sup> ISW does not produce concrete operations plans or orders, of course, but generates operational concepts intended to inform and shape the development of such concrete plans and orders by military staffs and the relevant non-military US government agencies.</p> 3124 3125 3126 3127<p class="gb-headline gb-headline-16bb098a gb-headline-text">An ISW PLANEX proceeds in five main phases:</p> 3128 3129 3130<div class="gb-container gb-container-1d9ec0d9"> 3131 3132<ol class="wp-block-list"> 3133<li>Defining the mission that must be accomplished to achieve vital US national security objectives;</li> 3134 3135 3136 3137<li>Understanding the situation relevant to that mission, specifically including the political, military, and economic capabilities of the actors involved and assessing the adversaryâs objectives and intentions;</li> 3138 3139 3140 3141<li>Developing an array of possible course of action (COAs) that the US and its coalition partners could pursue to accomplish the defined mission within the constraints of the assessed situation;</li> 3142 3143 3144 3145<li>Choosing the most promising 2-5 of those COAs based on assessments and wargaming; and</li> 3146 3147 3148 3149<li>Developing one or more specific strategic approaches the US and is coalition partners could use based on these COAs.</li> 3150</ol> 3151 3152</div> 3153 3154 3155<p class="gb-headline gb-headline-5d4115dc gb-headline-text">This PLANEX process helps ISW develop its intelligence cycle, highlight topics requiring further intelligence assessments, seek expert inputs into its recommendations, and discuss those recommendations with stakeholders.<br><br><em>1. âMDMP Handbook,â Center for Lessons Learned, 15-06_0.pdf (<a href="https://www.google.com/url?q=http://army.mil&sa=D&source=docs&ust=1747858387365566&usg=AOvVaw0B4Gnpd3mTnUJv1D8yNkpk" target="_blank" rel="noreferrer noopener">army.mil</a>), p. 7.</em></p> 3156 3157</div> 3158</div> 3159 3160<div class="gb-container gb-container-1844b41f" id="leadership-development"> 3161<div class="gb-container gb-container-efd26d3e"> 3162 3163<p class="gb-headline gb-headline-2dfd8782 gb-headline-text eyebrow">capability 6</p> 3164 3165 3166 3167<h2 class="gb-headline gb-headline-6a6f05e9 gb-headline-text h1-clamp">Leadership Development</h2> 3168 3169 3170 3171<p class="gb-headline gb-headline-cfdd0ea3 gb-headline-text">ISW develops leaders to deepen the bench of national security talent and raise the caliber of the debate. </p> 3172 3173 3174 3175<p class="gb-headline gb-headline-08f8d5b2 gb-headline-text">Two core competencies underpin ISWâs leadership development:</p> 3176 3177 3178 3179<p class="gb-headline gb-headline-8206b33b gb-headline-text">1.<strong> Military History and Civics Classroom Education. </strong></p> 3180 3181 3182<div class="gb-container gb-container-11d16d50"> 3183 3184<p class="gb-headline gb-headline-cb9c8cb5 gb-headline-text">The profession of war studies underpins both ISWâs analytic program and its educational efforts. ISWâs foun
3184der and president Dr. Kimberly Kagan is a military historian and ISWâs senior leaders include other historians, general officers, and military experts.<br> </p> 3185 3186 3187 3188<p class="gb-headline gb-headline-a566fd1f gb-headline-text">ISW launched a novel War Studies Program for undergraduates and recent graduates in 2013 that immerses approximately 20 students in a rigorous study of the theory and history of warfare. The program develops students personally and professionally as a cohort.<br> </p> 3189 3190 3191 3192<p class="gb-headline gb-headline-8c413840 gb-headline-text">Past programs have included: </p> 3193 3194 3195 3196<ul class="wp-block-list"> 3197<li>The Bosnian War and The Responsibility to Protect</li> 3198 3199 3200 3201<li>Russian Hybrid War</li> 3202 3203 3204 3205<li>Ideology of Al Qaeda and ISIS</li> 3206 3207 3208 3209<li>Generalship</li> 3210 3211 3212 3213<li>Civil-Military Relations</li> 3214</ul> 3215 3216 3217 3218<a class="gb-button gb-button-4fe4baa6 btn-tertiary-navy" href="/education/hertog-war-studies-program/"><span class="gb-button-text">learn more</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#146D9C" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="white" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 3219 3220</div> 3221 3222 3223<p class="gb-headline gb-headline-58bf09d1 gb-headline-text">2<strong>. Staff Rides. </strong></p> 3224 3225 3226<div class="gb-container gb-container-772278ae"> 3227 3228<p class="gb-headline gb-headline-5678e8fa gb-headline-text">ISW offers students, staff, and donors the opportunity to join professional staff rides to immerse themselves in the study of military operations on the terrain in which battles were fought. ISW makes available to civilians the value of military staff rides in which units visit a historical battle or campaign site to study the terrain, the decision-making by commanders on both sides from the grand strategic level of war to the minute tactics, and the lessons to be learned from past military operations.<br> </p> 3229 3230 3231 3232<p class="gb-headline gb-headline-7de5782c gb-headline-text">The staff ride experience not only deepens participantsâ understanding of war as a human phenomenon but also connects the participants as a cohort through intense study and reflection. The students and faculty discuss human factors, emotions, resilience, unit cohesion, and the moral and ethical decisions leaders face, topics equally applicable to military and civilian leadership.<br> </p> 3233 3234 3235 3236<p class="gb-headline gb-headline-af2f4c1a gb-headline-text">ISW staff rides have included: </p> 3237 3238 3239 3240<ul class="wp-block-list"> 3241<li>Single-day trips to Civil War battlefields such as Gettysburg, Antietam, and the Overland Campaign</li> 3242 3243 3244 3245<li>Week-plus long international trips covering major campaigns from World War II</li> 3246</ul> 3247 3248 3249 3250<a class="gb-button gb-button-6194ef51 btn-secondary-gold" href="/get-involved/"><span class="gb-button-text">get involved</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#DCDCDC" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="#042E4E" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 3251 3252</div> 3253</div> 3254</div> 3255 3256<div class="gb-container gb-container-5cf7822c donate-bar"> 3257<div class="gb-container gb-container-aa642d3d banner-wrapper"> 3258<div class="gb-container gb-container-7b66eb01 banner-end"></div> 3259 3260<div class="gb-container gb-container-e4db9df4 banner-mid"> 3261<div class="gb-container gb-container-b26b8133"> 3262 3263<h2 class="gb-headline gb-headline-d764c70f"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 26" height="26" width="28">
3263 <path fill="currentColor" d="M14 0L17.3059 9.93267H28L19.3471 16.0673L22.6529 26L14 19.8653L5.34706 26L8.65294 16.0673L0 9.93267H10.6941L14 0Z"></path> </svg></span></h2> 3264 3265 3266 3267<h2 class="gb-headline gb-headline-9a7ddc65 gb-headline-text">Support ISW</h2> 3268 3269 3270 3271<h2 class="gb-headline gb-headline-c32f4dac"><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 26" height="26" width="28"> <path fill="currentColor" d="M14 0L17.3059 9.93267H28L19.3471 16.0673L22.6529 26L14 19.8653L5.34706 26L8.65294 16.0673L0 9.93267H10.6941L14 0Z"></path> </svg></span></h2> 3272 3273</div> 3274 3275 3276<p class="gb-headline gb-headline-03c0c12a gb-headline-text ribbon-cta-copy">ISW is powered by the support of individuals like you. Help us stay independent and impactful.</p> 3277 3278 3279 3280<a class="gb-button gb-button-51f0267f gb-button-text btn-donate-lrg" href="/donate/">DONATE</a> 3281 3282</div> 3283 3284<div class="gb-container gb-container-daf16996 banner-end"></div> 3285 3286<style class="wpcode-css-snippet">.banner-end{flex:0 0 134px;}.banner-mid{flex:1;}@media (max-width:768px){.banner-end{display:none;}}@media only screen and (min-width:1024px) and (max-width:1440px){.banner-mid{padding-top:35px;padding-bottom:30px;}.ribbon-cta-copy{width:80%!important;}}@media only screen and (min-width:1024px) and (max-width:1078px){.ribbon-cta-copy{margin-bottom:0px;width:90%!important;}}@media only screen and (min-width:804px) and (max-width:975px){.ribbon-cta-copy{margin-bottom:0px!important;width:100%!important;}}@media only screen and (min-width:340px) and (max-width:803px){.ribbon-cta-copy{margin-bottom:0px!important;width:100%!important;}.banner-end{display:none;}.banner-wrapper{padding-left:0px;padding-right:0px;}.donate-bar{padding-left:0px;padding-right:0px;}}</style> 3287 3288</div> 3289</div> </div> 3290 3291 </div> 3292</article> 3293 </main> 3294 </div> 3295 3296 3297 </div> 3298</div> 3299 3300 3301<div class="site-footer"> 3302 <div class="gb-container gb-container-9ba8e702" id="footer"> 3303<div class="gb-container gb-container-28a67eb7"> 3304<div class="gb-container gb-container-18240145"> 3305<div class="gb-container gb-container-7e9f4406"> 3306 3307<figure class="gb-block-image gb-block-image-88ca31c0"><img decoding="async" class="gb-image gb-image-88ca31c0" src="https://understandingwar.org/wp-content/uploads/2025/08/ISW-Logo.svg" alt="ISW Logo" title="ISW Logo"/></figure> 3308 3309 3310<div class="gb-container gb-container-94540bc2"> 3311 3312<p class="gb-headline gb-headline-6e64f643 gb-headline-text">1400 16th Street NW, Suite 515<br>Washington, DC 20036</p> 3313 3314 3315 3316<p class="gb-headline gb-headline-63c89a1b gb-headline-text"><strong>P:</strong> (202) 293-5550</p> 3317 3318</div> 3319</div> 3320 3321<div class="gb-container gb-container-1efb9867"> 3322 3323<figure class="gb-block-image gb-block-image-0c14f74a"><img decoding="async" class="gb-image gb-image-0c14f74a" src="https://understandingwar.org/wp-content/uploads/2024/11/footer-ribbon-icon.svg" alt="Footer Ribbon Institute For The Study Of War" title="Footer Ribbon Institute For The Study Of War"/></figure> 3324 3325</div> 3326</div> 3327 3328<div class="gb-container gb-container-dbb67443"> 3329<div class="gb-container gb-container-e64699c0"> 3330<div class="gb-container gb-container-599cb729"> 3331 3332<h2 class="gb-headline gb-headline-89f7f5f9 gb-headline-text"><a href="/about-isw/">ABOUT ISW</a></h2> 3333 3334 3335<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Footer1 - About ISW" 3336 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3337 data-wp-on--click="actions.openMenuOnClick" 3338 data-wp-on--keydown="actions.handleMenuKeydown" 3339 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3340 <div class="wp-block-navigation__responsive-container" id="modal-1" 3341 data-wp-class--has-modal-open="state.isMenuOpen" 3342 data-wp-class--is-menu-open="state.isMenuOpen" 3343 data-wp-watch="callbacks.initMenu" 3344 data-wp-on--keydown="actions.handleMenuKeydown" 3345 data-wp-on--focusout="actions.handleMenuFocusout" 3346 tabindex="-1" 3347 > 3348 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3349 <div class="wp-block-navigation__responsive-dialog" 3350 data-wp-bind--aria-modal="state.ariaModal" 3351 data-wp-bind--aria-label="state.ariaLabel" 3352 data-wp-bind--role="state.roleAttribute" 3353 > 3354 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3355 data-wp-on--click="actions.closeMenuOnClick" 3356 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false">
3356<path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3357 <div class="wp-block-navigation__responsive-container-content" 3358 data-wp-watch="callbacks.focusFirstElement" 3359 id="modal-1-content"> 3360 <ul style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="wp-block-navigation__container has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation"><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/about-isw/our-capabilities/"><span class="wp-block-navigation-item__label">Our Capabilities</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/about-isw/our-history/"><span class="wp-block-navigation-item__label">Our History</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/people/"><span class="wp-block-navigation-item__label">Who We Are</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/about-isw/careers/"><span class="wp-block-navigation-item__label">Careers</span></a></li></ul> 3361 3362 </div> 3363 </div> 3364 </div> 3365 </div></nav> 3366</div> 3367 3368<div class="gb-container gb-container-8b7b0da2"> 3369 3370<h2 class="gb-headline gb-headline-3e2d6d17 gb-headline-text"><a href="/analysis">TEAMS/PORTFOLIOS</a></h2> 3371 3372 3373<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Footer2 - Analysis - Portfolio" 3374 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3375 data-wp-on--click="actions.openMenuOnClick" 3376 data-wp-on--keydown="actions.handleMenuKeydown" 3377 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3378 <div class="wp-block-navigation__responsive-container" id="modal-2" 3379 data-wp-class--has-modal-open="state.isMenuOpen" 3380 data-wp-class--is-menu-open="state.isMenuOpen" 3381 data-wp-watch="callbacks.initMenu" 3382 data-wp-on--keydown="actions.handleMenuKeydown" 3383 data-wp-on--focusout="actions.handleMenuFocusout" 3384 tabindex="-1" 3385 > 3386 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3387 <div class="wp-block-navigation__responsive-dialog" 3388 data-wp-bind--aria-modal="state.ariaModal" 3389 data-wp-bind--aria-label="state.ariaLabel" 3390 data-wp-bind--role="state.roleAttribute" 3391 > 3392 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3393 data-wp-on--click="actions.closeMenuOnClick" 3394 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3395 <div class="wp-block-navigation__responsive-container-content" 3396 data-wp-watch="callbacks.focusFirstElement" 3397 id="modal-2-content"> 3398 <ul style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="wp-block-navigation__container has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation"><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/russia-ukraine/"><span class="wp-block-navigation-item__label">Russia & Ukraine</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/mid
3398dle-east/"><span class="wp-block-navigation-item__label">Middle East</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/china-taiwan/"><span class="wp-block-navigation-item__label">China & Taiwan</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/defense-of-europe/"><span class="wp-block-navigation-item__label">Defense of Europe</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://understandingwar.org/analysis/adversary-entente/"><span class="wp-block-navigation-item__label">Adversary Entente</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/contemporary-future-war/"><span class="wp-block-navigation-item__label">Contemporary & Future War</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/geospatial-intelligence/"><span class="wp-block-navigation-item__label">Geospatial Intelligence</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://understandingwar.org/analysis/cognitive-warfare/"><span class="wp-block-navigation-item__label">Cognitive Warfare</span></a></li></ul> 3399 3400 </div> 3401 </div> 3402 </div> 3403 </div></nav> 3404</div> 3405 3406<div class="gb-container gb-container-43081402"> 3407 3408<h2 class="gb-headline gb-headline-8fbc5c78 gb-headline-text"><a href="/analysis/">ANALYSIS</a></h2> 3409 3410 3411<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Footer2 - Analysis" 3412 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3413 data-wp-on--click="actions.openMenuOnClick" 3414 data-wp-on--keydown="actions.handleMenuKeydown" 3415 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3416 <div class="wp-block-navigation__responsive-container" id="modal-3" 3417 data-wp-class--has-modal-open="state.isMenuOpen" 3418 data-wp-class--is-menu-open="state.isMenuOpen" 3419 data-wp-watch="callbacks.initMenu" 3420 data-wp-on--keydown="actions.handleMenuKeydown" 3421 data-wp-on--focusout="actions.handleMenuFocusout" 3422 tabindex="-1" 3423 > 3424 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3425 <div class="wp-block-navigation__responsive-dialog" 3426 data-wp-bind--aria-modal="state.ariaModal" 3427 data-wp-bind--aria-label="state.ariaLabel" 3428 data-wp-bind--role="state.roleAttribute" 3429 > 3430 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3431 data-wp-on--click="actions.closeMenuOnClick" 3432 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3433 <div class="wp-block-navigation__responsive-container-content" 3434 data-wp-watch="callbacks.focusFirstElement" 3435 id="modal-3-content"> 3436 <ul style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="wp-block-navigation__container has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation"><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/map-room/"><span class="wp-block-navigation-item__label">Map Room</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/analysis/briefing-room/"><span class="wp-block-navigation-item__label">Briefing Room</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/research"><span class="wp-block-navigation-item__label">Research Library</span></a></li></ul> 3437 3438 </div> 3439 </div> 3440 </div>
3441 </div></nav> 3442 3443 3444<h2 class="gb-headline gb-headline-43d1ffe0 gb-headline-text"><a href="/education/">EDUCATION</a></h2> 3445 3446 3447<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Footer3 - Education" 3448 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3449 data-wp-on--click="actions.openMenuOnClick" 3450 data-wp-on--keydown="actions.handleMenuKeydown" 3451 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3452 <div class="wp-block-navigation__responsive-container" id="modal-4" 3453 data-wp-class--has-modal-open="state.isMenuOpen" 3454 data-wp-class--is-menu-open="state.isMenuOpen" 3455 data-wp-watch="callbacks.initMenu" 3456 data-wp-on--keydown="actions.handleMenuKeydown" 3457 data-wp-on--focusout="actions.handleMenuFocusout" 3458 tabindex="-1" 3459 > 3460 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3461 <div class="wp-block-navigation__responsive-dialog" 3462 data-wp-bind--aria-modal="state.ariaModal" 3463 data-wp-bind--aria-label="state.ariaLabel" 3464 data-wp-bind--role="state.roleAttribute" 3465 > 3466 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3467 data-wp-on--click="actions.closeMenuOnClick" 3468 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3469 <div class="wp-block-navigation__responsive-container-content" 3470 data-wp-watch="callbacks.focusFirstElement" 3471 id="modal-4-content"> 3472 <ul style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="wp-block-navigation__container has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation"><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/education/hertog-war-studies-program/"><span class="wp-block-navigation-item__label">Hertog War Studies Program</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/education/fellowships/"><span class="wp-block-navigation-item__label">Fellowships</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/education/internships/"><span class="wp-block-navigation-item__label">Internships</span></a></li></ul> 3473 3474 </div> 3475 </div> 3476 </div> 3477 </div></nav> 3478</div> 3479 3480<div class="gb-container gb-container-f534e265"> 3481 3482<h2 class="gb-headline gb-headline-6e991647 gb-headline-text"><a href="/get-involved/">GET INVOLVED</a></h2> 3483 3484 3485<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Footer4 - Get Involved" 3486 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3487 data-wp-on--click="actions.openMenuOnClick" 3488 data-wp-on--keydown="actions.handleMenuKeydown" 3489 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
3489<path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3490 <div class="wp-block-navigation__responsive-container" id="modal-5" 3491 data-wp-class--has-modal-open="state.isMenuOpen" 3492 data-wp-class--is-menu-open="state.isMenuOpen" 3493 data-wp-watch="callbacks.initMenu" 3494 data-wp-on--keydown="actions.handleMenuKeydown" 3495 data-wp-on--focusout="actions.handleMenuFocusout" 3496 tabindex="-1" 3497 > 3498 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3499 <div class="wp-block-navigation__responsive-dialog" 3500 data-wp-bind--aria-modal="state.ariaModal" 3501 data-wp-bind--aria-label="state.ariaLabel" 3502 data-wp-bind--role="state.roleAttribute" 3503 > 3504 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3505 data-wp-on--click="actions.closeMenuOnClick" 3506 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3507 <div class="wp-block-navigation__responsive-container-content" 3508 data-wp-watch="callbacks.focusFirstElement" 3509 id="modal-5-content"> 3510 <ul style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="wp-block-navigation__container has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation"><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/donate/"><span class="wp-block-navigation-item__label">Donate</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/get-involved/planned-giving/"><span class="wp-block-navigation-item__label">Planned Giving</span></a></li><li style="font-size: 12px" class="wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/get-involved/our-partners/"><span class="wp-block-navigation-item__label">Our Partners</span></a></li></ul> 3511 3512 </div> 3513 </div> 3514 </div> 3515 </div></nav> 3516 3517 3518<h2 class="gb-headline gb-headline-3e2d6035 gb-headline-text"><a href="/newsroom/">NEWSROOM</a></h2> 3519 3520 3521<nav style="font-size:12px;text-transform:uppercase;letter-spacing:1px" class="has-text-color has-text-brown-color is-responsive is-vertical wp-block-navigation is-layout-flex wp-container-core-navigation-is-layout-8e441d29 wp-block-navigation-is-layout-flex" aria-label="Media" 3522 data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open" 3523 data-wp-on--click="actions.openMenuOnClick" 3524 data-wp-on--keydown="actions.handleMenuKeydown" 3525 ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg></button> 3526 <div class="wp-block-navigation__responsive-container" id="modal-6" 3527 data-wp-class--has-modal-open="state.isMenuOpen" 3528 data-wp-class--is-menu-open="state.isMenuOpen" 3529 data-wp-watch="callbacks.initMenu" 3530 data-wp-on--keydown="actions.handleMenuKeydown" 3531 data-wp-on--focusout="actions.handleMenuFocusout" 3532 tabindex="-1" 3533 > 3534 <div class="wp-block-navigation__responsive-close" tabindex="-1"> 3535 <div class="wp-block-navigation__responsive-dialog" 3536 data-wp-bind--aria-modal="state.ariaModal" 3537 data-wp-bind--aria-label="state.ariaLabel" 3538 data-wp-bind--role="state.roleAttribute" 3539 > 3540 <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" 3541 data-wp-on--click="actions.closeMenuOnClick" 3542 ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false">
3542<path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> 3543 <div class="wp-block-navigation__responsive-container-content" 3544 data-wp-watch="callbacks.focusFirstElement" 3545 id="modal-6-content"> 3546 3547 3548 </div> 3549 </div> 3550 </div> 3551 </div></nav> 3552</div> 3553</div> 3554 3555<div class="gb-container gb-container-0a391d83"> 3556 3557<p class="gb-headline gb-headline-18594083 gb-headline-text eyebrow">SIGN UP FOR EMAIL UPDATES</p> 3558 3559 3560 3561<h2 class="gb-headline gb-headline-ab452367 gb-headline-text">JOIN OUR NETWORK</h2> 3562 3563 3564 3565<a class="gb-button gb-button-7ed89d72 btn-tertiary-navy" href="/subscribe/" data-value="footer-subscribe"><span class="gb-button-text">SIGN UP</span><span class="gb-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 27 26" height="26" width="27"> <line stroke="#146D9C" y2="26" x2="0.499999" y1="2.18557e-08" x1="0.5"></line> <path fill="white" d="M26.4419 13.4419C26.686 13.1979 26.686 12.8021 26.4419 12.5581L22.4645 8.58058C22.2204 8.3365 21.8247 8.3365 21.5806 8.58058C21.3365 8.82466 21.3365 9.22039 21.5806 9.46447L25.1161 13L21.5806 16.5355C21.3365 16.7796 21.3365 17.1753 21.5806 17.4194C21.8247 17.6635 22.2204 17.6635 22.4645 17.4194L26.4419 13.4419ZM15 13.625L26 13.625L26 12.375L15 12.375L15 13.625Z"></path> </svg></span></a> 3566 3567</div> 3568</div> 3569 3570<div class="gb-container gb-container-bdd783ac"> 3571 3572<p class="gb-headline gb-headline-47901f3a gb-headline-text">©2026 INSTITUTE FOR THE STUDY OF WAR. ALL RIGHTS RESERVED.<br><a href="/fair-use-and-attribution-policy/">FAIR USE & ATTRIBUTION POLICY</a> | <a href="/privacy-policy/">PRIVACY POLICY</a></p> 3573 3574 3575<div class="gb-container gb-container-44e8da13"> 3576<div class="gb-container gb-container-f309c40c"> 3577 3578<figure class="gb-block-image gb-block-image-a8b6c689"><a href="https://bsky.app/profile/thestudyofwar.bsky.social" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-a8b6c689" src="https://understandingwar.org/wp-content/uploads/2024/11/Bluesky-Streamline-Simple-White-Icon.svg" alt="Bluesky Icon - Institute For The Study of War" title="Bluesky Icon - Institute For The Study of War"/></a></figure> 3579 3580</div> 3581 3582<div class="gb-container gb-container-328303e7"> 3583 3584<figure class="gb-block-image gb-block-image-3ae591d3"><a href="https://www.linkedin.com/company/institute-for-the-study-of-war/" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-3ae591d3" src="https://understandingwar.org/wp-content/uploads/2024/11/linkedin-icon.svg" alt="LinkedIn - Institute For The Study of War" title="LinkedIn - Institute For The Study of War"/></a></figure> 3585 3586</div> 3587 3588<div class="gb-container gb-container-62526c7e"> 3589 3590<figure class="gb-block-image gb-block-image-f191fdba"><a href="https://www.youtube.com/user/UnderstandingWarOrg" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-f191fdba" src="https://understandingwar.org/wp-content/uploads/2024/11/youtube-icon.svg" alt="YouTube - Institute For The Study of War" title="YouTube - Institute For The Study of War"/></a></figure> 3591 3592</div> 3593 3594<div class="gb-container gb-container-2774bd49"> 3595 3596<figure class="gb-block-image gb-block-image-64210a29"><a href="https://www.instagram.com/thestudyofwar/?hl=en" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-64210a29" src="https://understandingwar.org/wp-content/uploads/2024/11/instagram-icon.svg" alt="Instagram - Institute For The Study of War" title="Instagram - Institute For The Study of War"/></a></figure> 3597 3598</div> 3599 3600<div class="gb-container gb-container-8623f205 threads-icon"> 3601 3602<figure class="gb-block-image gb-block-image-7a96e1a5"><a href="https://www.threads.com/@thestudyofwar" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-7a96e1a5" src="https://understandingwar.org/wp-content/uploads/2024/11/threads-white-icon.svg" alt="Threads - Institute For The Study of War" title="Threads - Institute For The Study of War"/></a></figure> 3603 3604</div> 3605 3606<div class="gb-container gb-container-ab6a1239"> 3607 3608<figure class="gb-block-image gb-block-image-88563948"><a href="https://www.facebook.com/InstitutefortheStudyofWar" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-88563948" src="https://understandingwar.org/wp-content/uploads/2024/11/facebook-icon.svg" alt="Facebook - Institute For The Study of War" title="Facebook - Institute For The Study of War"/></a></figure> 3609 3610</div> 3611 3612<div class="gb-container gb-container-0275e462"> 3613 3614<figure class="gb-block-image gb-block-image-61128d41"><a href="https://x.com/thestudyofwar" target="_blank" rel="noopener noreferrer"><img decoding="async" class="gb-image gb-image-61128d41" src="https://understandingwar.org/wp-content/uploads/2024/11/x-icon.svg" alt="X-Twitter - Institute For The Study of War" title="X-Twitter - Institute For The Study of War"/></a></figure> 3615 3616</div> 3617</div> 3618</div> 3619 3620 3621<a href="#" id="footer-to-top" class="back-to-top" aria-label="Back to top of page"> 3622 <img decoding="async" src="/wp-content/uploads/2024/11/Anchor-arrow.svg" alt="" class="arrow-icon" aria-hidden="true"> 3623 <span class="screen-reader-text">Back to Top</span> 3624</a> 3625<style>.gb-container.gb-container-8623f205.threads-icon a img {width: 15px;}</style> 3626 3627</div> 3628</div> 3629 3630 3631<p class="wp-block-paragraph"></p> 3632</div> 3633 3634 <nav id="generate-slideout-menu" class="main-navigation slideout-navigation do-overlay" itemtype="https://schema.org/SiteNavigationElement" itemscope> 3635 <div class="inside-navigation grid-container grid-parent"> 3636 <div class="mobile-menu-logo"> 3637 <a href="/" rel="home"><img src="/wp-content/uploads/2025/06/ISW-Mobile-White-Logo.svg"></a> 3638 </div> 3639 <nav id="site-navigation" class="main-navigation slideout-navigation" aria-label="Mobile Menu"> 3640 <ul class="slideout-menu"> 3641 <li class="menu-item menu-item-8862 menu-item-has-children has-dropdown"><div class="menu-item-wrapper"><a href="https://understandingwar.org/about-isw/">About ISW</a><button class="dropdown-toggle" aria-label="Toggle submenu" aria-expanded="false"><span class="dropdown-icon"></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-93090"><a href="https://understandingwar.org/about-isw/our-capabilities/">Our Capabilities</a></li><li class="menu-item menu-item-93091"><a href="https://understandingwar.org/about-isw/our-history/">Our History</a></li><li class="menu-item menu-item-94024"><a href="/people/">Who We Are</a></li><li class="menu-item menu-item-93093"><a href="https://understandingwar.org/about-isw/careers/">Careers</a></li></ul></li><li class="menu-item menu-item-8981 menu-item-has-children has-dropdown"><div class="menu-item-wrapper"><a href="https://understandingwar.org/analysis/">Analysis</a><button class="dropdown-toggle" aria-label="Toggle submenu" aria-expanded="false"><span class="dropdown-icon"></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-93098"><a href="https://understandingwar.org/analysis/map-room/">Map Room</a></li><li class="menu-item menu-item-93097"><a href="https://understandingwar.org/research/">Research Library</a></li><li class="menu-item menu-item-93095"><a href="https://understandingwar.org/analysis/briefing-room/">Briefing Room</a></li><li class="menu-item menu-item-93100"><a href="https://understandingwar.org/analysis/russia-ukraine/">Russia & Ukraine</a></li><li class="menu-item menu-item-93099">
3641<a href="https://understandingwar.org/analysis/middle-east/">Middle East</a></li><li class="menu-item menu-item-93102"><a href="https://understandingwar.org/analysis/china-taiwan/">China & Taiwan</a></li><li class="menu-item menu-item-153529"><a href="https://understandingwar.org/analysis/defense-of-europe/">Defense of Europe</a></li><li class="menu-item menu-item-93101"><a href="https://understandingwar.org/analysis/adversary-entente/">Adversary Entente</a></li><li class="menu-item menu-item-93104"><a href="https://understandingwar.org/analysis/contemporary-future-war/">Contemporary & Future War</a></li><li class="menu-item menu-item-93105"><a href="https://understandingwar.org/analysis/geospatial-intelligence/">Geospatial Intelligence</a></li><li class="menu-item menu-item-93103"><a href="https://understandingwar.org/analysis/cognitive-warfare/">Cognitive Warfare</a></li></ul></li><li class="menu-item menu-item-8992 menu-item-has-children has-dropdown"><div class="menu-item-wrapper"><a href="https://understandingwar.org/education/">Education</a><button class="dropdown-toggle" aria-label="Toggle submenu" aria-expanded="false"><span class="dropdown-icon"></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-93107"><a href="https://understandingwar.org/education/hertog-war-studies-program/">Hertog War Studies Program</a></li><li class="menu-item menu-item-93106"><a href="https://understandingwar.org/education/fellowships/">Fellowships</a></li><li class="menu-item menu-item-93108"><a href="https://understandingwar.org/education/internships/">Internships</a></li></ul></li><li class="menu-item menu-item-8996 menu-item-has-children has-dropdown"><div class="menu-item-wrapper"><a href="/get-involved/">Get Involved</a><button class="dropdown-toggle" aria-label="Toggle submenu" aria-expanded="false"><span class="dropdown-icon"></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-93111"><a href="https://understandingwar.org/get-involved/planned-giving/">Planned Giving</a></li><li class="menu-item menu-item-93110"><a href="https://understandingwar.org/get-involved/our-partners/">Our Partners</a></li></ul></li><li class="menu-item menu-item-9000"><a href="https://understandingwar.org/newsroom/">Newsroom</a></li> </ul> 3642 </nav> 3643 <div class="slideout-donate"><a href="/donate/" class="mobile-donate-btn">Donate</a></div> 3644 <div class="slide-out-footer"> 3645 <button class="btn-download-pdf download-link btn-primary-white" id="btn-download-pdf" data-download-url="https://understandingwar.org/wp-json/grafik-pdf/v1/post/9058"> 3646 <span class="btn-text">Download</span> 3647 <span class="btn-icon"><img src="/wp-content/uploads/2025/09/Icon-Arrow.svg" alt="Download PDF" role="button" /></span> 3648 </button> 3649 <button class="btn-print btn-primary-white" id="cta-print" data-pdf-url="https://understandingwar.org/wp-json/grafik-pdf/v1/post/9058"> 3650 <span class="btn-text">Print</span> 3651 <span class="btn-icon"><img src="/wp-content/uploads/2026/02/Print-Img.svg" alt="PrintF" role="button" /></span> 3652 </button> 3653 </div> 3654 <div class="share-icons"> 3655 <h3> 3656 SHARE 3657 </h3> 3658 <div class="social-icons"> 3659 <a href="/cdn-cgi/l/email-protection#f2cd81879098979186cfa097919d9f9f979c969796d7c0c2a09793969b9c95d7c1b3d7c0c2bd8780d7c0c2b1938293909b9e9b869b9781d7c1b0909d968bd7c1b6ba979e9e9dd7c0b1d7c0c2bbd7c0c291939f97d7c0c29391809d8181d7c0c2869a9b81d7c0c29b9c819b959a8694879ed7c0c29380869b919e97d7c0c29d9cd7c0c29b8181879781d7c0c280979e93869796d7c0c2869dd7c0c2859380d7c0b1d7c0c2869b869e9796d7c0c2d7c0c0bd8780d7c0c2b1938293909b9e9b869b9781d7c0c0d7c0b1d7c1b0d7c0c2939c96d7c0c2869a9d87959a86d7c0c29b86d7c0c29f9b959a86d7c0c29b9c869780978186d7c0c28b9d87dcd7c0c2ab9d87d7c0c291939cd7c0c280979396d7c0c2869a97d7c0c294879e9ed7c0c29380869b919e97d7c0c29a978097d7c1b3d7c0c29a86868281d7c1b3d7c0b4d7c0b4879c9697808186939c969b9c95859380dc9d8095d7c0b493909d8786df9b8185d7c0b49d8780df91938293909b9e9b869b9781d7c0b4d7c0c2b497979ed7c0c294809797d7c0c2869dd7c0c2819a938097d7c0c28b9d8780d7c0c2869a9d87959a8681d7c0c3d7c0c2b0978186d7c0c280979593809681" target="_blank" rel="noopener noreferrer"> 3660 <img src="/wp-content/uploads/2024/12/Icon-Email.svg" alt="Email" style="width: 24px; height: 24px; margin-right: 8px;"> 3661 </a> 3662 <a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 3663 <img src="/wp-content/uploads/2024/11/icon-linkedin.svg" alt="LinedIn" style="width: 24px; height: 24px; margin-right: 8px;"> 3664 </a> 3665 <a href="https://twitter.com/intent/tweet?url=https://understandingwar.org/about-isw/our-capabilities/&text=Our Capabilities" target="_blank" rel="noopener noreferrer"> 3666 <img src="/wp-content/uploads/2024/11/icon-x.svg" alt="X" style="width: 24px; height: 24px; margin-right: 8px;"> 3667 </a> 3668 <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 3669 <img src="/wp-content/uploads/2024/11/icon-facebook.svg" alt="Facebook" style="width: 24px; height: 24px; margin-right: 8px;"> 3670 </a> 3671 <a href="https://bsky.app/intent/compose?text=I%20came%20across%20this%20insightful%20article.%20You%20can%20read%20the%20full%20article%20Our%20Capabilities%20here%20https%3A%2F%2Funderstandingwar.org%2Fabout-isw%2Four-capabilities%2F" target="_blank" rel="noopener noreferrer"> 3672 <img src="/wp-content/uploads/2025/05/Bluesky-Streamline-Simple-Icon.svg" alt="Bluesky" style="width: 24px; height: 24px; margin-right: 8px;"> 3673 </a> 3674 </div> 3675 </div>
vendor: 114 bytes, lines 3675-3676
3675 3676 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
3676<script> 3677 document.addEventListener('DOMContentLoaded', function() { 3678 // Get all dropdown toggles 3679 const dropdownToggles = document.querySelectorAll('.slideout-menu .dropdown-toggle'); 3680 3681 dropdownToggles.forEach(function(toggle) { 3682 toggle.addEventListener('click', function(e) { 3683 e.preventDefault(); 3684 e.stopPropagation(); 3685 3686 // Get parent menu item 3687 const menuItem = this.closest('.menu-item'); 3688 3689 // Toggle expanded state 3690 menuItem.classList.toggle('is-expanded'); 3691 3692 // Update aria-expanded 3693 const isExpanded = menuItem.classList.contains('is-expanded'); 3694 this.setAttribute('aria-expanded', isExpanded); 3695 }); 3696 }); 3697 3698 // Optional: Make parent links clickable while still having toggle 3699 const parentLinks = document.querySelectorAll('.slideout-menu .menu-item-wrapper > a'); 3700 parentLinks.forEach(function(link) { 3701 link.addEventListener('click', function(e) { 3702 // Allow the link to work normally 3703 // e.preventDefault(); // Remove this to make links work 3704 }); 3705 }); 3706 3707 }); 3708 </script>
3708 3709 <button class="slideout-exit has-svg-icon"><span class="gp-icon pro-close"> 3710 <svg viewBox="0 0 512 512" aria-hidden="true" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em"> 3711 <path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.03c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z" /> 3712 </svg> 3713 </span> <span class="screen-reader-text">Close</span></button> </div><!-- .inside-navigation --> 3714 </nav><!-- #site-navigation --> 3715 3716
3716<script type="speculationrules"> 3717{"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/generatepress/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 3718</script>
vendor: 1 bytes, line 3718
3718
3719<script> 3720 document.addEventListener('DOMContentLoaded', function () { 3721 const scrollTopIcon = document.getElementById('footer-to-top'); 3722 if (scrollTopIcon) { 3723 scrollTopIcon.addEventListener('click', function () { 3724 window.scrollTo({ top: 0, behavior: 'smooth' }); 3725 }); 3726 } 3727 }); 3728 // Add sfHover to all top-level menu items 3729 document.addEventListener('DOMContentLoaded', () => { 3730 const menuItems = document.querySelectorAll('#menu-primary-menu > li.menu-item-has-children'); 3731 if (!menuItems.length) return; 3732 3733 // Add MutationObserver to prevent class removal 3734 const observer = new MutationObserver((mutations) => { 3735 mutations.forEach((mutation) => { 3736 if (mutation.type === 'attributes' && 3737 mutation.attributeName === 'class' && 3738 !mutation.target.classList.contains('sfHover')) { 3739 mutation.target.classList.add('sfHover'); 3740 } 3741 }); 3742 }); 3743 3744 menuItems.forEach(item => { 3745 item.classList.add('sfHover'); 3746 observer.observe(item, { attributes: true }); 3747 }); 3748 }); 3749</script>
3749
3750<script> 3751document.addEventListener('DOMContentLoaded', () => { 3752 document.querySelectorAll('button').forEach(btn => { 3753 const hasText = btn.textContent.trim().length > 0; 3754 const hasLabel = 3755 btn.hasAttribute('aria-label') || 3756 btn.hasAttribute('aria-labelledby'); 3757 3758 if (!hasText && !hasLabel) { 3759 const title = 3760 btn.getAttribute('title') || 3761 btn.dataset.label; 3762 3763 if (title) { 3764 btn.setAttribute('aria-label', title); 3765 } 3766 } 3767 }); 3768}); 3769</script>
3769 3770<!-- Begin Constant Contact Active Forms -->
3771<script> var _ctct_m = "299eb57dde3dcb84ffb81c7c0f63cec4"; </script>
3771
3772<script id="signupScript" src="//static.ctctcdn.com/js/signup-form-widget/current/signup-form-widget.min.js" async defer></script>
3772 3773<!-- End Constant Contact Active Forms -->
3774<script> 3775(function($) { 3776 $(document).on('facetwp-loaded', function() { 3777 $('.facetwp-reset').addClass('btn-donate'); 3778 }); 3779})(jQuery); 3780</script>
3780
3780<script> 3781 (function() { 3782 function fixLinks() { 3783 // Fix 1: Post 113230 - Iraqi Government Formation 3784 var postItem1 = document.querySelector('.gb-loop-item.post-113230'); 3785 if (postItem1) { 3786 var links1 = postItem1.querySelectorAll('a'); 3787 for (var i = 0; i < links1.length; i++) { 3788 if (links1[i].href.indexOf('/analysis/middle-east/iran-update/') > -1) { 3789 links1[i].href = links1[i].href.replace('/analysis/middle-east/iran-update/', '/research/middle-east/iraqi-government-formation-iranian-backed-iraqi-parties-are-poised-to-control-the-next-government/'); 3790 } 3791 } 3792 } 3793 3794 // Fix 2: Post 22913 - ISIS Second Comeback 3795 var postItem2 = document.querySelector('.research-card-loop-item-3colgrid.post-id-22913'); 3796 if (postItem2) { 3797 var links2 = postItem2.querySelectorAll('a'); 3798 for (var i = 0; i < links2.length; i++) { 3799 if (links2[i].href.indexOf('/analysis/middle-east/') > -1) { 3800 links2[i].href = links2[i].href.replace('/analysis/middle-east/', '/research/middle-east/isiss-second-comeback-assessing-the-next-isis-insurgency/'); 3801 } 3802 } 3803 } 3804 } 3805 3806 document.addEventListener('DOMContentLoaded', fixLinks); 3807 setTimeout(fixLinks, 1000); 3808 setTimeout(fixLinks, 2000); 3809 })(); 3810 </script>
3810 3811
3811<script> 3812 (function($) { 3813 $(document).on('facetwp-refresh', function() { 3814 // Get the search value from FacetWP (it's a string, not an array) 3815 var searchValue = ''; 3816 if (FWP.facets.website_search) { 3817 // FacetWP search facet stores value as a string 3818 // Decode plus signs to spaces 3819 searchValue = FWP.facets.website_search.replace(/\+/g, ' '); 3820 } 3821 3822 // Update the title 3823 var titleHtml = searchValue ? '<h2 style="text-transform:unset;"><span>for</span> ' + searchValue + '</h2>' : ''; 3824 $('.search-results-title').html(titleHtml); 3825 }); 3826 3827 $(document).on('facetwp-loaded', function() { 3828 // Also update on initial load 3829 var searchValue = ''; 3830 if (FWP.facets.website_search) { 3831 // FacetWP search facet stores value as a string 3832 // Decode plus signs to spaces 3833 searchValue = FWP.facets.website_search.replace(/\+/g, ' '); 3834 } 3835 3836 var titleHtml = searchValue ? '<h2 style="text-transform:unset;"><span>for</span> ' + searchValue + '</h2>' : ''; 3837 $('.search-results-title').html(titleHtml); 3838 }); 3839 })(jQuery); 3840 </script>
3840 3841
3841<script> 3842 document.addEventListener('DOMContentLoaded', () => { 3843 3844 document.querySelectorAll('a.gb-container-link').forEach(link => { 3845 if (link.hasAttribute('aria-label')) return; 3846 3847 let label = ''; 3848 3849 // 1. Try heading inside same container 3850 const container = link.closest('.gb-container'); 3851 if (container) { 3852 const heading = container.querySelector('h1, h2, h3, h4, h5, h6'); 3853 if (heading && heading.textContent.trim()) { 3854 label = heading.textContent.trim(); 3855 } 3856 } 3857 3858 // 2. Fallback: aria-labelledby if heading has ID 3859 if (!label && container) { 3860 const heading = container.querySelector('[id]'); 3861 if (heading) { 3862 link.setAttribute('aria-labelledby', heading.id); 3863 return; 3864 } 3865 } 3866 3867 // 3. Final fallback 3868 if (!label) { 3869 label = 'Read more'; 3870 } 3871 3872 link.setAttribute('aria-label', label); 3873 }); 3874 3875 }); 3876 </script>
3876 3877
3877<script id="generate-a11y"> 3878!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("pointerdown",(function(){e.classList.add("using-mouse")}),{passive:!0}),e.addEventListener("keydown",(function(){e.classList.remove("using-mouse")}),{passive:!0})}}(); 3879</script>
3879 3880 <div class="gp-modal gp-search-modal" id="gp-search" role="dialog" aria-modal="true" aria-label="Search"> 3881 <div class="gp-modal__overlay" tabindex="-1" data-gpmodal-close> 3882 <div class="gp-modal__container"> 3883 <form role="search" method="get" action="/site-search/" 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-7" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-7" placeholder="Enter keyword or phrase..." value="" type="search" name="_website_search" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form> 3884 3885 3886<style> 3887.facetwp-facet-website_search.facetwp-type-search .facetwp-input-wrap { 3888 display: flex; 3889 background: #fff; 3890 gap: 0; 3891} 3892.facetwp-facet-website_search.facetwp-type-search .facetwp-input-wrap input { 3893 border: 0; 3894 padding: 10px 0 10px 15px !important; 3895 outline: none; 3896} 3897.facetwp-facet-website_search.facetwp-type-search .facetwp-input-wrap .facetwp-icon { 3898 padding: 5px 15px; 3899} 3900.gb-element-fabcdcef input { 3901 width: 100%; 3902} 3903</style>
3904<script> 3905document.addEventListener('DOMContentLoaded', function () { 3906 const form = document.querySelector('form[role="search"]'); 3907 if (form) { 3908 const input = form.querySelector('input[type="search"], input[name="s"]'); 3909 if (input) { 3910 input.removeAttribute('required'); 3911 3912 // Optional: prevent HTML5 validation block 3913 form.addEventListener('submit', function () { 3914 input.setCustomValidity(''); 3915 }); 3916 } 3917 } 3918}); 3919</script>
3919 3920 </div> 3921 </div> 3922 </div> 3923
3923<script id="wp-importmap" type="importmap"> 3924{"imports":{"@wordpress/interactivity":"https://understandingwar.org/wp-includes/js/dist/script-modules/interactivity/index.min.js?ver=efaa5193bbad9c60ffd1"}} 3925</script>
vendor: 1 bytes, line 3925
3925
3926<script data-wp-router-options="{"loadOnClientNavigation":true}" fetchpriority="low" id="@wordpress/block-library/navigation/view-js-module" src="https://understandingwar.org/wp-includes/js/dist/script-modules/block-library/navigation/view.min.js?ver=96a846e1d7b789c39ab9" type="module"></script>
3926 3927<link rel="modulepreload" href="https://understandingwar.org/wp-includes/js/dist/script-modules/interactivity/index.min.js?ver=efaa5193bbad9c60ffd1" id="@wordpress/interactivity-js-modulepreload" fetchpriority="low">
3928<script>document.addEventListener('DOMContentLoaded', function() { 3929 const backToTop = document.querySelector('.back-to-top'); 3930 3931 if (backToTop) { 3932 backToTop.addEventListener('click', function(e) { 3933 e.preventDefault(); 3934 3935 // Smooth scroll to top 3936 window.scrollTo({ 3937 top: 0, 3938 behavior: 'smooth' 3939 }); 3940 3941 // Focus management for accessibility 3942 setTimeout(() => { 3943 // Focus the #page element (GeneratePress default) 3944 const pageElement = document.getElementById('page'); 3945 if (pageElement) { 3946 pageElement.setAttribute('tabindex', '-1'); 3947 pageElement.focus(); 3948 // Remove tabindex after focus to avoid keyboard trap 3949 setTimeout(() => pageElement.removeAttribute('tabindex'), 1000); 3950 } 3951 }, 800); // Match this to your scroll duration 3952 }); 3953 } 3954}); 3955</script>
3955<style> 3956 /* Styles for the scroll progress bar */ 3957 #scrollProgressBar { 3958 position: absolute; /* Now relative to the parent element */ 3959 bottom: -10px; 3960 left: 0; 3961 width: 0%; 3962 height: 10px; 3963 /*background-color: var(--secondary-gold);*/ 3964 background-color: #6AC2FF; 3965 transition: width 0.1s ease-out; 3966 } 3967</style> 3968
3969<script> 3970 // Function to create and attach the progress bar to the navigation element 3971 function createScrollProgressBar(container) { 3972 // Check if the progress bar already exists 3973 if (document.getElementById('scrollProgressBar')) return; 3974 3975 // Create a new div element for the progress bar 3976 const progressBar = document.createElement('div'); 3977 progressBar.id = 'scrollProgressBar'; 3978 3979 // Append the progress bar to the specified container 3980 container.appendChild(progressBar); 3981 } 3982 3983 // Function to update the scroll progress bar 3984 function updateScrollProgressBar() { 3985 const scrollHeight = document.documentElement.scrollHeight - window.innerHeight; 3986 const scrollTop = window.scrollY || document.documentElement.scrollTop; 3987 const scrollPercentage = (scrollTop / scrollHeight) * 100; 3988 const progressBar = document.getElementById('scrollProgressBar'); 3989 3990 // Update the width of the progress bar if it exists 3991 if (progressBar) { 3992 progressBar.style.width = scrollPercentage + '%'; 3993 } 3994 } 3995 3996 // Function to check if the navigation bar is sticky 3997 function checkIfSticky() { 3998 const navElement = document.getElementById('sticky-navigation'); 3999 if (navElement && navElement.classList.contains('is_stuck')) { 4000 createScrollProgressBar(navElement); 4001 } 4002 } 4003 4004 // Initialize the scroll progress bar on page load and on scroll 4005 window.addEventListener('DOMContentLoaded', () => { 4006 // Check if the navigation is already sticky on page load 4007 checkIfSticky(); 4008 4009 // Attach the scroll listener to detect if the navigation becomes sticky 4010 window.addEventListener('scroll', () => { 4011 checkIfSticky(); 4012 updateScrollProgressBar(); 4013 }); 4014 }); 4015</script>
4015<script id="generate-sticky-js" src="https://understandingwar.org/wp-content/plugins/gp-premium/menu-plus/functions/js/sticky.min.js?ver=2.5.6"></script>
vendor: 1 bytes, line 4015
4015
4016<script id="generate-offside-js-extra"> 4017var offSide = {"side":"left"}; 4018//# sourceURL=generate-offside-js-extra 4019</script>
vendor: 1 bytes, line 4019
4019
4020<script id="generate-offside-js" src="https://understandingwar.org/wp-content/plugins/gp-premium/menu-plus/functions/js/offside.min.js?ver=2.5.6"></script>
vendor: 1 bytes, line 4020
4020
4021<script id="generate-smooth-scroll-js-extra"> 4022var gpSmoothScroll = {"elements":[".smooth-scroll","li.smooth-scroll a"],"duration":"800","offset":""}; 4023//# sourceURL=generate-smooth-scroll-js-extra 4024</script>
vendor: 1 bytes, line 4024
4024
4025<script id="generate-smooth-scroll-js" src="https://understandingwar.org/wp-content/plugins/gp-premium/general/js/smooth-scroll.min.js?ver=2.5.6"></script>
vendor: 1 bytes, line 4025
4025
4026<script id="generate-menu-js-before"> 4027var generatepressMenu = {"toggleOpenedSubMenus":true,"openSubMenuLabel":"Open Sub-Menu","closeSubMenuLabel":"Close Sub-Menu"}; 4028//# sourceURL=generate-menu-js-before 4029</script>
vendor: 1 bytes, line 4029
4029
4030<script id="generate-menu-js" src="https://understandingwar.org/wp-content/themes/generatepress/assets/js/menu.min.js?ver=3.6.1"></script>
vendor: 1 bytes, line 4030
4030
4031<script id="generate-modal-js" src="https://understandingwar.org/wp-content/themes/generatepress/assets/dist/modal.js?ver=3.6.1"></script>
vendor: 1 bytes, line 4031
4031
4032<script id="page-links-to-js" src="https://understandingwar.org/wp-content/plugins/page-links-to/dist/new-tab.js?ver=3.4.1"></script>
vendor: 1 bytes, line 4032
4032
4033<script id="gforms_recaptcha_recaptcha-js-extra"> 4034var gforms_recaptcha_recaptcha_strings = {"nonce":"9c0348f96a","disconnect":"Disconnecting","change_connection_type":"Resetting","spinner":"https://understandingwar.org/wp-content/plugins/gravityforms/images/spinner.svg","connection_type":"classic","disable_badge":"1","change_connection_type_title":"Change Connection Type","change_connection_type_message":"Changing the connection type will delete your current settings. Do you want to proceed?","disconnect_title":"Disconnect","disconnect_message":"Disconnecting from reCAPTCHA will delete your current settings. Do you want to proceed?","site_key":"6LfADL0rAAAAAHlfxMu0VJMtMr6l9YABCHSDfjlF"}; 4035//# sourceURL=gforms_recaptcha_recaptcha-js-extra 4036</script>
vendor: 127 bytes, lines 4036-4037
4036 4037<script data-wp-strategy="defer" defer id="gforms_recaptcha_recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
40376LfADL0rAAAAAHlfxMu0VJMtMr6l9YABCHSDfjlF
vendor: 27 bytes, line 4037
4037&ver=2.2.2"></script>
4038<script data-wp-strategy="defer" defer id="gforms_recaptcha_frontend-js" src="https://understandingwar.org/wp-content/plugins/gravityformsrecaptcha/js/frontend.min.js?ver=2.2.2"></script>
4038 4039
4039<script id="isw-search-highlight-js"> 4040 (function($) { 4041 'use strict'; 4042 4043 window.ISWSearchHighlight = { 4044 4045 /** 4046 * Get search term â properly handles FacetWP array values 4047 */ 4048 getSearchTerm: function() { 4049 var term = ''; 4050 4051 if (typeof FWP !== 'undefined' && FWP.facets && FWP.facets.website_search) { 4052 var raw = FWP.facets.website_search; 4053 // FacetWP stores facet values as arrays â join properly 4054 term = (Array.isArray(raw) ? raw.join(' ') : String(raw)).replace(/\+/g, ' '); 4055 } else { 4056 var urlParams = new URLSearchParams(window.location.search); 4057 var urlTerm = urlParams.get('_website_search'); 4058 term = urlTerm ? decodeURIComponent(urlTerm) : ''; 4059 } 4060 4061 return this.normalizeSearchTerm(term); 4062 }, 4063 4064 /** 4065 * Normalize â clean whitespace, convert fancy quotes to straight, but PRESERVE quotes 4066 */ 4067 normalizeSearchTerm: function(term) { 4068 if (!term) return ''; 4069 // Convert fancy quotes to straight double quotes 4070 term = term.replace(/[\u201C\u201D]/g, '"'); 4071 term = term.replace(/[\u2018\u2019]/g, "'"); 4072 term = term.replace(/\s+/g, ' ').trim(); 4073 return term; 4074 }, 4075 4076 /** 4077 * Parse search term into phrases and individual words. 4078 * Quoted strings become phrases; unquoted become individual words. 4079 * Returns { phrases: [], words: [], all: [] } 4080 * 'all' is ordered: phrases first (longest), then words (longest). 4081 */ 4082 parseSearchTerms: function(rawTerm) { 4083 var result = { phrases: [], words: [], all: [] }; 4084 if (!rawTerm) return result; 4085 4086 var term = this.normalizeSearchTerm(rawTerm); 4087 4088 // Extract quoted phrases 4089 var remaining = term; 4090 var phraseRegex = /["'](.+?)["']/g; 4091 var m; 4092 while ((m = phraseRegex.exec(term)) !== null) { 4093 var phrase = m[1].trim(); 4094 if (phrase.length >= 2) { 4095 result.phrases.push(phrase); 4096 // Also add component words so individual occurrences still highlight. 4097 // e.g. "Russian Forces" â phrase highlights as a unit when together, 4098 // but "Russian" or "Forces" alone still get marked. 4099 var phraseWords = phrase.split(/\s+/); 4100 for (var j = 0; j < phraseWords.length; j++) { 4101 if (phraseWords[j].length >= 2 && result.words.indexOf(phraseWords[j]) === -1) { 4102 result.words.push(phraseWords[j]); 4103 } 4104 } 4105 } 4106 } 4107 // Remove quoted sections from the remaining str
4107ing 4108 remaining = term.replace(/["'].+?["']/g, '').replace(/\s+/g, ' ').trim(); 4109 4110 // Split remaining into individual words 4111 if (remaining) { 4112 var words = remaining.split(/\s+/); 4113 for (var i = 0; i < words.length; i++) { 4114 if (words[i].length >= 2 && result.words.indexOf(words[i]) === -1) { 4115 result.words.push(words[i]); 4116 } 4117 } 4118 } 4119 4120 // Sort longest first 4121 result.phrases.sort(function(a, b) { return b.length - a.length; }); 4122 result.words.sort(function(a, b) { return b.length - a.length; }); 4123 result.all = result.phrases.concat(result.words); 4124 4125 // If no quotes were used but multiple words, treat full input as implicit phrase 4126 if (result.phrases.length === 0 && result.words.length > 1) { 4127 var fullPhrase = term.replace(/["'\u2018\u2019\u201C\u201D]/g, '').trim(); 4128 if (fullPhrase.length >= 2) { 4129 result.phrases.push(fullPhrase); 4130 result.all = result.phrases.concat(result.words); 4131 } 4132 } 4133 4134 return result; 4135 }, 4136 4137 /** 4138 * Highlight all search terms in a jQuery element. 4139 * Step 0: Strip any server-side <mark> tags so the JS starts with clean text. 4140 * Phase 1: Phrases highlighted via cross-node Range API (handles text split across DOM nodes). 4141 * Phase 2: Individual words highlighted per-text-node (skips already-marked content). 4142 */ 4143 highlightElement: function($element, searchTerm) { 4144 if (!searchTerm || searchTerm.length < 2) return; 4145 4146 var parsed = this.parseSearchTerms(searchTerm); 4147 if (parsed.all.length === 0) return; 4148 4149 // Step 0: Remove any existing server-side highlights so the JS 4150 // can see the full, unbroken text for cross-node phrase matching. 4151 this.unwrapExistingHighlights($element[0]); 4152 4153 // Phase 1: Cross-node phrase matching (longest phrases first) 4154 if (parsed.phrases.length > 0) { 4155 this.highlightPhrases($element[0], parsed.phrases); 4156 } 4157 4158 // Phase 2: Individual word matching on remaining unhighlighted text nodes 4159 if (parsed.words.length > 0) { 4160 this.highlightWords($element[0], parsed.words); 4161 } 4162 }, 4163 4164 /** 4165 * Unwrap all existing <mark class="search-highlight"> elements, 4166 * restoring their text content back into the DOM, then normalize 4167 * so adjacent text nodes merge (e.g. "Russian" + " Forces" â "Russian Forces"). 4168 */ 4169 unwrapExistingHighlights: function(element) { 4170 var marks = element.querySelectorAll('mark.search-highlight'); 4171 for (var i = marks.length - 1; i >= 0; i--) { 4172 var mark = marks[i]; 4173 var parent = mark.parentNode; 4174 while (mark.firstChild) { 4175 parent.insertBefore(mark.firstChild, mark); 4176 } 4177 parent.removeChild(mark); 4178 } 4179 // Merge adjacent text nodes so phrase regex can match across former boundaries 4180 element.normalize(); 4181 }, 4182 4183 // ââ Phase 1: Cross-node phrase highlighting ââââââââââââââââââââââ 4184 4185 /** 4186 * Collect all text nodes inside an element, skipping already-highlighted 4187 * and non-content elements. 4188 */ 4189 getTextNodes: function(element) { 4190 var textNodes = []; 4191 var skipTags = ['SCRIPT', 'STYLE', 'MARK', 'INPUT', 'TEXTAREA']; 4192 var walker = document.createTreeWalker( 4193 element, 4194 NodeFilter.SHOW_TEXT, 4195 { 4196 acceptNode: function(node) { 4197 var parent = node.parentNode; 4198 while (parent && parent !== element) { 4199 if (parent.tagName && skipTags.indexOf(parent.tagName) !== -1) { 4200 return NodeFilter.FILTER_REJECT; 4201 } 4202 if (parent.classList && parent.classList.contains('search-highlight')) { 4203 return NodeFilter.FILTER_REJECT; 4204 } 4205 parent = parent.parentNode; 4206 } 4207 return NodeFilter.FILTER_ACCEPT; 4208 } 4209 }, 4210 false 4211 ); 4212 var node; 4213 while ((node = walker.nextNode())) { 4214 textNodes.push(node); 4215 } 4216 return textNodes; 4217 }, 4218 4219 /** 4220 * Build a position map: concatenated text â individual text nodes. 4221 * Returns { fullText: '...', map: [{ node, start, end }, ...] } 4222 */ 4223 buildTextMap: function(element) { 4224 var textNodes = this.getTextNodes(element); 4225 var fullText = ''; 4226 var map = []; 4227 for (var i = 0; i < textNodes.length; i++) { 4228 var s = fullText.length; 4229 fullText += textNodes[i].textContent; 4230 map.push({ node: textNodes[i], start: s, end: fullText.length }); 4231 } 4232 return { fullText: fullText, map: map }; 4233 }, 4234 4235 /** 4236 * Given a character position in the concatenated text, find the 4237 * corresponding text node and offset within that node. 4238 */ 4239 findNodeAtPosition: function(map, position) { 4240 for (var i = 0; i < map.length; i++) { 4241 if (position >= map[i].start && position <= map[i].end) { 4242 return { node: map[i].node, offset: position - map[i].start }; 4243 } 4244 } 4245 return null; 4246 }, 4247 4248 /** 4249 * Use the Range API to highlight phrases that may span multiple DOM nodes. 4250 * e.g. <strong>Russian</strong> Forces â single <mark> wrapping both. 4251 */ 4252 highlightPhrases: function(element, phrases) { 4253 for (var p = 0; p < phrases.length; p++) { 4254 var escaped = phrases[p].replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 4255 var regex = new RegExp(escaped, 'gi'); 4256 4257 // Re-scan after each replacement since the DOM changed 4258 var found = true; 4259 var safety = 0; 4260 while (found && safety < 500) { 4261 safety++; 4262 found = false; 4263 4264 var tm = this.buildTextMap(element); 4265 regex.lastIndex = 0; 4266 var match = regex.exec(tm.fullText); 4267 if (!match) break; 4268 4269 var startInfo = this.findNodeAtPosition(tm.map, match.index); 4270 var endInfo = this.findNodeAtPosition(tm.map, match.index + match[0].length); 4271 if (!startInfo || !endInfo) break; 4272 4273 try { 4274 var range = document.createRange(); 4275 range.setStart(startInfo.node, startInfo.offset); 4276 range.setEnd(endInfo.node, endInfo.offset); 4277 4278 var contents = range.extractContents(); 4279 var mark = document.createElement('mark'); 4280 mark.className = 'search-highlight highlight-new'; 4281 mark.appendChild(contents);
4282 range.insertNode(mark); 4283 4284 found = true; 4285 } catch (e) { 4286 // Range API can throw in rare DOM structures â skip this match 4287 break; 4288 } 4289 } 4290 } 4291 }, 4292 4293 // ââ Phase 2: Per-node word highlighting ââââââââââââââââââââââââââ 4294 4295 /** 4296 * Walk unhighlighted text nodes and mark individual words. 4297 */ 4298 highlightWords: function(element, words) { 4299 var self = this; 4300 var skipTags = ['SCRIPT', 'STYLE', 'MARK', 'INPUT', 'TEXTAREA']; 4301 4302 if (skipTags.indexOf(element.tagName) !== -1) return; 4303 if (element.classList && element.classList.contains('search-highlight')) return; 4304 4305 var childNodes = Array.prototype.slice.call(element.childNodes); 4306 4307 childNodes.forEach(function(node) { 4308 if (node.nodeType === Node.TEXT_NODE) { 4309 self.highlightTextNode(node, words); 4310 } else if (node.nodeType === Node.ELEMENT_NODE) { 4311 self.highlightWords(node, words); 4312 } 4313 }); 4314 }, 4315 4316 /** 4317 * Replace matching words in a single text node with <mark> elements. 4318 */ 4319 highlightTextNode: function(textNode, words) { 4320 var text = textNode.textContent; 4321 if (!text.trim()) return; 4322 4323 var escapedTerms = words.map(function(term) { 4324 return '\\b' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\b'; 4325 }); 4326 4327 var pattern = new RegExp('(' + escapedTerms.join('|') + ')', 'gi'); 4328 4329 if (!pattern.test(text)) return; 4330 4331 var fragment = document.createDocumentFragment(); 4332 var lastIndex = 0; 4333 var match; 4334 4335 pattern.lastIndex = 0; 4336 4337 while ((match = pattern.exec(text)) !== null) { 4338 if (match.index > lastIndex) { 4339 fragment.appendChild(document.createTextNode(text.substring(lastIndex, match.index))); 4340 } 4341 4342 var mark = document.createElement('mark'); 4343 mark.className = 'search-highlight highlight-new'; 4344 mark.textContent = match[1]; 4345 fragment.appendChild(mark); 4346 4347 lastIndex = pattern.lastIndex; 4348 } 4349 4350 if (lastIndex < text.length) { 4351 fragment.appendChild(document.createTextNode(text.substring(lastIndex))); 4352 } 4353 4354 textNode.parentNode.replaceChild(fragment, textNode); 4355 }, 4356 4357 init: function() { 4358 var self = this; 4359 4360 $(document).on('facetwp-loaded', function() { 4361 var searchTerm = self.getSearchTerm(); 4362 if (searchTerm) { 4363 setTimeout(function() { 4364 $('.facetwp-template .search-result-card').each(function() { 4365 self.highlightElement($(this), searchTerm); 4366 }); 4367 }, 50); 4368 } 4369 }); 4370 4371 $(document).ready(function() { 4372 var searchTerm = self.getSearchTerm(); 4373 if (searchTerm) { 4374 $('.facetwp-template .search-result-card').each(function() { 4375 self.highlightElement($(this), searchTerm); 4376 }); 4377 } 4378 }); 4379 } 4380 }; 4381
4382 ISWSearchHighlight.init(); 4383 4384 })(jQuery); 4385 </script>
4385 4386
4386<script> 4387 (function() { 4388 function updateNavLinks() { 4389 var updated = false; 4390 4391 // Show the nav-posts container (it starts hidden) 4392 var navContainers = document.querySelectorAll('.nav-posts, #nav-posts'); 4393 navContainers.forEach(function(container) { 4394 container.style.display = 'flex'; 4395 }); 4396 4397 // Handle previous button 4398 var prevBtns = document.querySelectorAll('a.btn-post-nav__prev, .btn-post-nav__prev a, a[href*="prev"]'); 4399 var prevWrappers = document.querySelectorAll('.post-navigation-link-previous, .btn-post-nav__prev'); 4400 // No prev post - hide just the prev wrapper 4401 prevWrappers.forEach(function(wrapper) { 4402 wrapper.style.display = 'none'; 4403 }); 4404 4405 // Handle next button 4406 var nextBtns = document.querySelectorAll('a.btn-post-nav__next, .btn-post-nav__next a, a[href*="next"]'); 4407 var nextWrappers = document.querySelectorAll('.post-navigation-link-next, .btn-post-nav__next'); 4408 // No next post - hide just the next wrapper 4409 nextWrappers.forEach(function(wrapper) { 4410 wrapper.style.display = 'none'; 4411 }); 4412 4413 return updated; 4414 } 4415 4416 // Try to update immediately 4417 updateNavLinks(); 4418 4419 // Try again when DOM is ready 4420 if (document.readyState === 'loading') { 4421 document.addEventListener('DOMContentLoaded', updateNavLinks); 4422 } else { 4423 updateNavLinks(); 4424 } 4425 4426 // Try again after a short delay (in case of dynamic content) 4427 setTimeout(updateNavLinks, 100); 4428 setTimeout(updateNavLinks, 500); 4429 setTimeout(updateNavLinks, 1000); 4430 4431 // Also use MutationObserver to catch dynamically added elements 4432 if (window.MutationObserver) { 4433 var observer = new MutationObserver(function(mutations) { 4434 mutations.forEach(function(mutation) { 4435 if (mutation.addedNodes.length) { 4436 updateNavLinks(); 4437 } 4438 }); 4439 }); 4440 4441 // Start observing 4442 observer.observe(document.body, { 4443 childList: true, 4444 subtree: true 4445 }); 4446 4447 // Stop observing after 5 seconds 4448 setTimeout(function() { 4449 observer.disconnect(); 4450 }, 5000); 4451 } 4452 })(); 4453 </script>
4453 4454
4455<script id="optimization-detective-detect-args" type="application/json"> 4456["https://understandingwar.org/wp-content/plugins/optimization-detective/detect.min.js?ver=1.0.0-beta6",{"minViewportAspectRatio":0.4,"maxViewportAspectRatio":2.5,"isDebug":false,"extensionModuleUrls":[],"restApiEndpoint":"https://understandingwar.org/wp-json/optimization-detective/v1/url-metrics:store","currentETag":"f2dac656fb0a79fc25a7e6586d18cb76","currentUrl":"https://understandingwar.org/about-isw/our-capabilities/","urlMetricSlug":"3044a45ac5ada1f5105c88c052125a0c","cachePurgePostId":9058,"urlMetricHMAC":"da7087e42b9790693237e0ee1ece9f21","urlMetricGroupStatuses":[{"minimumViewportWidth":0,"maximumViewportWidth":480,"complete":false},{"minimumViewportWidth":480,"maximumViewportWidth":600,"complete":false},{"minimumViewportWidth":600,"maximumViewportWidth":782,"complete":true},{"minimumViewportWidth":782,"maximumViewportWidth":null,"complete":true}],"storageLockTTL":60,"freshnessTTL":604800,"webVitalsLibrarySrc":"https://understandingwar.org/wp-content/plugins/optimization-detective/build/web-vitals.js?ver
4456=5.1.0","gzdecodeAvailable":true,"maxUrlMetricSize":1048576}] 4457</script>
vendor: 1 bytes, line 4457
4457
4458<script type="module"> 4459async function load(){await new Promise((t=>{"complete"===document.readyState?t():window.addEventListener("load",t,{once:!0})})),"function"==typeof requestIdleCallback&&await new Promise((t=>{requestIdleCallback(t)}));const t="script#optimization-detective-detect-args",e=document.querySelector(t);if(!(e instanceof HTMLScriptElement))throw new Error(`Missing: ${t}`);const o=JSON.parse(e.text);if(!Array.isArray(o)||2!==o.length||"string"!=typeof o[0]||"object"!=typeof o[1])throw new Error("SCRIPT#optimization-detective-detect-args is not [ string, object ]");const i=o[0],a=o[1],n=(await import(i)).default;await n(a)}load(); 4460//# sourceURL=https://understandingwar.org/wp-content/plugins/optimization-detective/detect-loader.min.js?ver=1.0.0-beta6 4461</script>
4461 4462</body> 4463</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.