PageSourceSearch

https://www.drownedinsound.org/

html drownedinsound.org collected 2026-10-02 03:03:31 UTC 138,240 bytes, 2,598 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <title>Drowned in Sound - Championing Independent Music</title>
5    <meta charset="utf-8" />
6    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
7    <meta name="HandheldFriendly" content="True" />
8    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
10    <link rel="preconnect" href="https://fonts.googleapis.com">
11    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12    <link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
13    <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
14    
14<script src="https://www.drownedinsound.org/assets/js/global.js?v=kNRfD9v-88Y5vLSb"></script>
14
15
16    <link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/global.css?v=zypZlIhrOXf6VBGG" />
17
18        <style>
19            :root {
20                --background-color: #ffffff;
21                --text-color: #1b1b1b;
22                --text-60-opac: #767676;
23                --text-color-lower-opac: #a4a4a4;
24                --placeholder-color: #f5f5f5;
25            }
26        </style>
27
28
29
30     <style>
31        :root{
32            --font1: var(--gh-font-heading, 'Butler');
33            --font2: var(--gh-font-body, 'Montserrat');
34            --font3: var(--gh-font-body, 'Roboto');
35            --logo-scale: 1;
36            --heading-one-scale: 1;
37        }
38
39        @media (min-width: 1920px) {
40            :root{
41                --scale: 0.8;
42            }
43        }
44     </style>
45
46     <meta name="description" content="For 25 years our publication and podcast has recommended music. We now also spark conversations and create resources to help music fans discover their collective power.">
47    <link rel="icon" href="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w256h256/2024/01/DiS-waves-600px--2-.png" type="image/png">
48    <link rel="canonical" href="https://www.drownedinsound.org/">
49    <meta name="referrer" content="no-referrer-when-downgrade">
50    <link rel="next" href="https://www.drownedinsound.org/page/2/">
51    
52    <meta property="og:site_name" content="Drowned in Sound">
53    <meta property="og:type" content="website">
54    <meta property="og:title" content="Drowned in Sound">
55    <meta property="og:description" content="For 25 years our publication and podcast has recommended music. We now also spark conversations and create resources to help music fans discover their collective power.">
56    <meta property="og:url" content="https://www.drownedinsound.org/">
57    <meta property="og:image" content="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2025/07/DiS-waves-1-1.png">
58    <meta property="article:publisher" content="https://www.facebook.com/drownedinsounduk">
59    <meta name="twitter:card" content="summary_large_image">
60    <meta name="twitter:title" content="Drowned in Sound">
61    <meta name="twitter:description" content="For 25 years our publication and podcast has recommended music. We now also spark conversations and create resources to help music fans discover their collective power.">
62    <meta name="twitter:url" content="https://www.drownedinsound.org/">
63    <meta name="twitter:image" content="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2025/07/DiS-waves-1-1.png">
64    <meta property="og:image:width" content="1200">
65    <meta property="og:image:height" content="675">
66    
67    
67<script type="application/ld+json">
68{
69    "@context": "https://schema.org",
70    "@type": "WebSite",
71    "publisher": {
72        "@type": "Organization",
73        "name": "Drowned in Sound",
74        "url": "https://www.drownedinsound.org/",
75        "logo": {
76            "@type": "ImageObject",
77            "url": "https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/2025/07/Untitled-July-18-2025.png"
78        }
79    },
80    "url": "https://www.drownedinsound.org/",
81    "name": "Drowned in Sound",
82    "image": {
83        "@type": "ImageObject",
84        "url": "https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2025/07/DiS-waves-1-1.png",
85        "width": 1200,
86        "height": 675
87    },
88    "mainEntityOfPage": "https://www.drownedinsound.org/",
89    "description": "For 25 years our publication and podcast has recommended music. We now also spark conversations and create resources to help music fans discover their collective power."
90}
91    </script>
91
92
93    <meta name="generator" content="Ghost 6.68">
94    <link rel="alternate" type="application/rss+xml" title="Drowned in Sound" href="https://www.drownedinsound.org/rss/">
95    
95<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.71/umd/portal.min.js" data-i18n="true" data-ghost="https://www.drownedinsound.org/" data-key="f0fecc3cbf50327e087b5577f7" data-api="https://drowned-in-sound.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script>
95<style id="gh-members-styles">.gh-post-upgrade-cta-content,
96.gh-post-upgrade-cta {
97    display: flex;
98    flex-direction: column;
99    align-items: center;
100    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
101    text-align: center;
102    width: 100%;
103    color: #ffffff;
104    font-size: 16px;
105}
106
107.gh-post-upgrade-cta-content {
108    border-radius: 8px;
109    padding: 40px 4vw;
110}
111
112.gh-post-upgrade-cta h2 {
113    color: #ffffff;
114    font-size: 28px;
115    letter-spacing: -0.2px;
116    margin: 0;
117    padding: 0;
118}
119
120.gh-post-upgrade-cta p {
121    margin: 20px 0 0;
122    padding: 0;
123}
124
125.gh-post-upgrade-cta small {
126    font-size: 16px;
127    letter-spacing: -0.2px;
128}
129
130.gh-post-upgrade-cta a {
131    color: #ffffff;
132    cursor: pointer;
133    font-weight: 500;
134    box-shadow: none;
135    text-decoration: underline;
136}
137
138.gh-post-upgrade-cta a:hover {
139    color: #ffffff;
140    opacity: 0.8;
141    box-shadow: none;
142    text-decoration: underline;
143}
144
145.gh-post-upgrade-cta a.gh-btn {
146    display: block;
147    background: #ffffff;
148    text-decoration: none;
149    margin: 28px 0 0;
150    padding: 8px 18px;
151    border-radius: 4px;
152    font-size: 16px;
153    font-weight: 600;
154}
155
156.gh-post-upgrade-cta a.gh-btn:hover {
157    opacity: 0.92;
158}</style>
158<script async src="https://js.stripe.com/v3/"></script>
158
159    
159<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="f0fecc3cbf50327e087b5577f7" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://drowned-in-sound.ghost.io/" data-locale="en" crossorigin="anonymous"></script>
159
160    
160<script defer src="https://cdn.jsdelivr.net/ghost/announcement-bar@~1.1/umd/announcement-bar.min.js" data-announcement-bar="https://www.drownedinsound.org/" data-api-url="https://www.drownedinsound.org/members/api/announcement/" crossorigin="anonymous"></script>
160
161    <link href="https://www.drownedinsound.org/webmentions/receive/" rel="webmention">
162    
162<script defer src="/public/cards.min.js?v=3VmbfVx_4GrHkd6m"></script>
162
163    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=-nD-PvLcSEpXvK2-">
164    
164<script defer src="/public/comment-counts.min.js?v=oFYkaGLdiMqB8VN9" data-ghost-comments-counts-api="https://www.drownedinsound.org/members/api/comments/counts/"></script>
164
165    
165<script defer src="/public/member-attribution.min.js?v=AKG4hWena9j3yX3I"></script>
165
166    
166<script defer src="/public/ghost-stats.min.js?v=vFcCUf6ZQ0Hyhc8h" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://www.drownedinsound.org/.ghost/analytics/api/v1/page_hit"  tb_site_uuid="f85aaacd-e9e1-4577-9f78-c62a1ee936d4" tb_post_uuid="undefined" tb_post_type="null" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script>
166<style>:root {--ghost-accent-color: #f307b0;}</style>
167    
167<script src="https://analytics.ahrefs.com/analytics.js" data-key="pM8CCQGtNbcULxoNSnL+cw" async></script>
167
168</head>
169<body>
170<div class="viewport">
171    <div class="site-content">
172        <link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/navbar.css?v=eryeKW4XIypwXwWM" />
173<link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/section-header.css?v=rV91iBuiCdM77aXl" />
174<link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/card.css?v=mAuVmg3ah5DstO44" />
175
176<custom-header id="header" data-content-api-key="">
177    <div class="menu" isopen="false">
178        <div class="menu-top">
179            <a class="mobile-logo" href="https://www.drownedinsound.org">
180                    <img src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/2025/07/Untitled-July-18-2025.png" alt="Drowned in Sound">
181            </a>
182            <div class="menu-and-search-wrapper">
183                <button class="search-icon-wrapper-mobile" data-ghost-search aria-label="Search button">
184                    <svg class="search-icon" width="100%" height="100%" viewBox="0 0 29 29" fill="none" xmlns="http://www.w3.org/2000/svg">
185    <path d="M23.6833 25.375L16.0708 17.7625C15.4667 18.2458 14.7719 18.6285 13.9865 18.9104C13.201 19.1924 12.3653 19.3333 11.4792 19.3333C9.28403 19.3333 7.42642 18.5729 5.90633 17.052C4.38625 15.5311 3.62581 13.6735 3.625 11.4792C3.625 9.28403 4.38544 7.42642 5.90633 5.90633C7.42722 4.38625 9.28483 3.62581 11.4792 3.625C13.6743 3.625 15.5319 4.38544 17.052 5.90633C18.5721 7.42722 19.3325 9.28483 19.3333 11.4792C19.3333 12.3653 19.1924 13.201 18.9104 13.9865C18.6285 14.7719 18.2458 15.4667 17.7625 16.0708L25.375 23.6833L23.6833 25.375ZM11.4792 16.9167C12.9896 16.9167 14.2736 16.3878 15.3313 15.3301C16.389 14.2724 16.9175 12.9888 16.9167 11.4792C16.9167 9.96875 16.3878 8.68469 15.3301 7.627C14.2724 6.56931 12.9888 6.04086 11.4792 6.04167C9.96875 6.04167 8.68469 6.57051 7.627 7.62821C6.56931 8.6859 6.04086 9.96956 6.04167 11.4792C6.04167 12.9896 6.57051 14.2736 7.62821 15.3313C8.6859 16.389 9.96956 16.9175 11.4792 16.9167Z" fill="var(--text-color)"/>
186</svg>
187                </button>
188                <button class="menu-button" aria-label="Menu button">
189                    <div class="menu-line first-line"></div>
190                    <div class="menu-line mobile-line"></div>
191                    <div class="menu-line second-line"></div>
192                </button>
193            </div>
194        </div>
195        <div class="menu-content">
196            <div class="menu-links">
197                
198    <ul class="nav">
199            <li class="nav-home nav-current" data-label="Home">  
200                <a class="nav-link" href="https://www.drownedinsound.org/">Home</a>
201            </li>
202            <li class="nav-newsletter" data-label="Newsletter">  
203                <a class="nav-link" href="https://www.drownedinsound.org/tag/newsletter/">Newsletter</a>
204            </li>
205            <li class="nav-features" data-label="Features">  
206                <a class="nav-link" href="https://www.drownedinsound.org/tag/essay/">Features</a>
207            </li>
208            <li class="nav-podcasts" data-label="Podcasts">  
209                <a class="nav-link" href="https://www.drownedinsound.org/podcasts/">Podcasts</a>
210            </li>
211            <li class="nav-playlists" data-label="Playlists">  
212                <a class="nav-link" href="https://www.drownedinsound.org/playlists/">Playlists</a>
213            </li>
214            <li class="nav-magazine" data-label="Magazine">  
215                <a class="nav-link" href="https://www.drownedinsound.org/shownotes/">Magazine</a>
216            </li>
217            <li class="nav-community" data-label="Community">  
218                <a class="nav-link" href="https://community.drownedinsound.com/">Community</a>
219            </li>
220    </ul>
221
222            </div>
223                <div class="mobile-menu-cta">
224                        <a href="#/portal/signin" class="light-button signin-button button">Sign in</a>
225                            <a href="#/portal/signup" class="button">Subscribe</a>
226                </div>
227            <div class="sidebar">
228                <a class="logo" href="https://www.drownedinsound.org">
229                        <img src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/2025/07/Untitled-July-18-2025.png" alt="Drowned in Sound">
230                </a>
231            </div>
232        </div>
233    </div>
234    <div class="navbar">
235        <div class="search-bar-wrapper">
236            <input type="text" class="search-input" placeholder="Search" data-ghost-search />
237            <div class="search-icon-wrapper">
238                <span class="search-icon-open">
239                    <svg class="search-icon" width="100%" height="100%" viewBox="0 0 29 29" fill="none" xmlns="http://www.w3.org/2000/svg">
240    <path d="M23.6833 25.375L16.0708 17.7625C15.4667 18.2458 14.7719 18.6285 13.9865 18.9104C13.201 19.1924 12.3653 19.3333 11.4792 19.3333C9.28403 19.3333 7.42642 18.5729 5.90633 17.052C4.38625 15.5311 3.62581 13.6735 3.625 11.4792C3.625 9.28403 4.38544 7.42642 5.90633 5.90633C7.42722 4.38625 9.28483 3.62581 11.4792 3.625C13.6743 3.625 15.5319 4.38544 17.052 5.90633C18.5721 7.42722 19.3325 9.28483 19.3333 11.4792C19.3333 12.3653 19.1924 13.201 18.9104 13.9865C18.6285 14.7719 18.2458 15.4667 17.7625 16.0708L25.375 23.6833L23.6833 25.375ZM11.4792 16.9167C12.9896 16.9167 14.2736 16.3878 15.3313 15.3301C16.389 14.2724 16.9175 12.9888 16.9167 11.4792C16.9167 9.96875 16.3878 8.68469 15.3301 7.627C14.2724 6.56931 12.9888 6.04086 11.4792 6.04167C9.96875 6.04167 8.68469 6.57051 7.627 7.62821C6.56931 8.6859 6.04086 9.96956 6.04167 11.4792C6.04167 12.9896 6.57051 14.2736 7.62821 15.3313C8.6859 16.389 9.96956 16.9175 11.4792 16.9167Z" fill="var(--text-color)"/>
241</svg>
242                </span>
243                <span class="search-icon-close">
244                    <div class="search-icon-close-line"></div>
245                    <div class="search-icon-close-line search-icon-close-line-second"></div>
246                </span>
247            </div>
248        </div>
249                <a href="#/portal/signin" class="light-button signin-button navbar-button button">Sign in</a>
250                    <a href="#/portal/signup" class="signin-button button navbar-button">Subscribe</a>
251    </div>
252    <div class="blur"></div>
253
254     <span id="navbar-texts" style="display: none; width: 0px; height: 0px;" data-no-results="0 results" data-results="results"></span>
255</custom-header>
256        <div class="site-main">
257            
258<main>
259    
260<section class="hero ">
261    <div class="hero-content">
262        <div class="heading-1-wrapper">
263            <h1>Surfacing Music&#x27;s Collective Power for Change</h1>
264        </div>
265            <div class="hero-description-wrapper ">
266                <p>
267                    For 25 years our publication and podcast has recommended music. We now also spark conversations and create resources to help music fans discover their collective power.
268                </p>           
269            </div>
270
271            <div class="action-wrapper">
272                                <form data-members-form="subscribe" class="subscribe-form">
273                <div class="subscribe-with-alerts">
274                    <div class="subscribe-wrapper">
275                        <input data-members-email type="email" required="true" placeholder="[email protected]" class="subscribe-input"/>
276                        <button type="submit">Subscribe</button>
277                    </div>
278                    <div class="subscribe-alerts">
279                        <small class="subscribe-alert loading-alert">Processing your request...</small>
280                        <small class="subscribe-alert success-alert">Please check your inbox and click the link to confirm your subscription.</small>
281                        <small class="subscribe-alert error-alert" data-members-error></small>
282                    </div> 
283                </div>            
284            </form>
285            </div>
286    </div>
287</section>    <link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/latest-post.css?v=-JQL0FbYBMZm-zhL" />
288
289        <section class="latest-post">                    
290            <custom-card class="latest-post-content" data-chars="150">
291                <div class="latest-post-top">
292                        <a href="https://www.drownedinsound.org/tag/newsletter/" class="latest-post-tag medium-text">Newsletter</a>
293                    <a class="latest-post-title" href="/theres-comfort-in-rage-but-rage-is-not-enough/">
294                        <h2>There’s comfort in rage – but rage is not enough</h2>
295                    </a>
296                </div>
297                <div class="latest-post-bottom">
298                    <div class="latest-post-paragraph">
299                        <p class="truncate">
300                            Slipknot and Manson. The Cornell 7. The resulting rage is a reminder that we’ve not been desensitised to violence against women – but when will this lead to change?
301                        </p>
302                    </div>
303                    
304    <a class="plus-button" href="https://www.drownedinsound.org/theres-comfort-in-rage-but-rage-is-not-enough/" aria-label="link to: https://www.drownedinsound.org/theres-comfort-in-rage-but-rage-is-not-enough/">
305        <div class="vertical-line"></div>
306        <div class="horizontal-line"></div>
307    </a>
308                </div>
309            </custom-card> 
310                <a class="latest-post-image-link" href="/theres-comfort-in-rage-but-rage-is-not-enough/">        
311                        <figure>
312                            <img
313                                srcset="https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;300 300w,
314                                        https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;720 720w,
315                                        https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
316                                        https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
317                                        https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
318                                src="https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200"
319                                alt="There’s comfort in rage – but rage is not enough"
320                            >
321                        </figure>                   
322                </a>          
323        </section>
324    
325            <section class="featured-stories">       
326                
327<section-header class="section-header" id="featured-stories-slider-controller" >
328    <div class="section-header-heading-link">
329        <h2>Featured stories</h2>
330    </div>
331
332        <div class="section-header-arrows">
333            <button class="arrow-button unstyled-button" aria-label="Button left" name="left">
334                <svg width="100%" height="100%" viewBox="0 0 80 22" fill="none" xmlns="http://www.w3.org/2000/svg">
335    <path d="M0 11L79 11" stroke="var(--text-color)" stroke-width="1.5"/>
336    <path d="M58.0026 21.0625C58.0026 21.0625 57.3026 11.2875 79.0026 11" stroke="var(--text-color)" stroke-width="1.5"/>
337    <path d="M58.0026 1C58.0026 1 57.3026 10.775 79.0026 11.0625" stroke="var(--text-color)" stroke-width="1.5"/>
338</svg>
339
340            </button>
341            <button class="arrow-button unstyled-button" aria-label="Button right" name="right">
342                <svg width="100%" height="100%" viewBox="0 0 80 22" fill="none" xmlns="http://www.w3.org/2000/svg">
343    <path d="M0 11L79 11" stroke="var(--text-color)" stroke-width="1.5"/>
344    <path d="M58.0026 21.0625C58.0026 21.0625 57.3026 11.2875 79.0026 11" stroke="var(--text-color)" stroke-width="1.5"/>
345    <path d="M58.0026 1C58.0026 1 57.3026 10.775 79.0026 11.0625" stroke="var(--text-color)" stroke-width="1.5"/>
346</svg>
347
348            </button>
349        </div>
350</section-header>                
351<custom-slider class="slider" id="featured-stories-slider">
352    <div class="slider-inner">
353                <custom-card class="card" data-chars="100">
354    <div class="card-link-category-link">
355        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
356    </div>
357    <a href="/hello-the-cd-resurgence-weve-been-expecting-you/" class="card-title-link">
358        <h3>Hello the CD resurgence, we&#x27;ve been expecting you...</h3>
359    </a>
360        <a href="/hello-the-cd-resurgence-weve-been-expecting-you/" class="card-image-link">
361            <figure>
362                <img
363                    srcset="https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;300 300w,
364                            https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;720 720w,
365                            https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
366                            https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
367                            https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
368                    src="https://images.unsplash.com/photo-1605286111427-67133b091012?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fENEc3xlbnwwfHx8fDE3ODQ2NTU2NjF8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200"
369                    alt="Hello the CD resurgence, we&#x27;ve been expecting you..."
370                >
371            </figure>
372        </a>
373    <div class="card-lower-part">
374        <div class="card-text-with-button">
375            <p class="truncate">
376                A report has confirmed that the growth in CD sales is outpacing that of vinyl - Emma Wilkes unpicks this (with some help from her sister).
377            </p>
378            
379    <a class="plus-button" href="https://www.drownedinsound.org/hello-the-cd-resurgence-weve-been-expecting-you/" aria-label="link to: https://www.drownedinsound.org/hello-the-cd-resurgence-weve-been-expecting-you/">
380        <div class="vertical-line"></div>
381        <div class="horizontal-line"></div>
382    </a>
383        </div>
384    </div>
385</custom-card>
386                <custom-card class="card" data-chars="100">
387    <div class="card-link-category-link">
388        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
389    </div>
390    <a href="/james-blake-smears-music-critics/" class="card-title-link">
391        <h3>James Blake Smears Music Critics</h3>
392    </a>
393        <a href="/james-blake-smears-music-critics/" class="card-image-link">
394            <figure>
395                <img
396                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/06/Untitled---September-30--2025-at-16.28.37-68.png 300w,
397                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2
397026/06/Untitled---September-30--2025-at-16.28.37-68.png 720w,
398                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/06/Untitled---September-30--2025-at-16.28.37-68.png 960w,
399                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/06/Untitled---September-30--2025-at-16.28.37-68.png 1200w,
400                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/06/Untitled---September-30--2025-at-16.28.37-68.png 2000w"
401                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/06/Untitled---September-30--2025-at-16.28.37-68.png"
402                    alt="James Blake Smears Music Critics"
403                >
404            </figure>
405        </a>
406    <div class="card-lower-part">
407        <div class="card-text-with-button">
408            <p class="truncate">
409                An open invitation to James Blake to retract his comments about music journalism.
410            </p>
411            
412    <a class="plus-button" href="https://www.drownedinsound.org/james-blake-smears-music-critics/" aria-label="link to: https://www.drownedinsound.org/james-blake-smears-music-critics/">
413        <div class="vertical-line"></div>
414        <div class="horizontal-line"></div>
415    </a>
416        </div>
417    </div>
418</custom-card>
419                <custom-card class="card" data-chars="100">
420    <div class="card-link-category-link">
421        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
422    </div>
423    <a href="/squeaky-bum-time-for-live-nation-again/" class="card-title-link">
424        <h3>Squeaky bum time for Live Nation... again?</h3>
425    </a>
426        <a href="/squeaky-bum-time-for-live-nation-again/" class="card-image-link">
427            <figure>
428                <img
429                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/05/gaga-live-nation-ticket-1.jpg 300w,
430                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2026/05/gaga-live-nation-ticket-1.jpg 720w,
431                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/05/gaga-live-nation-ticket-1.jpg 960w,
432                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/05/gaga-live-nation-ticket-1.jpg 1200w,
433                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/05/gaga-live-nation-ticket-1.jpg 2000w"
434                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/05/gaga-live-nation-ticket-1.jpg"
435                    alt="Squeaky bum time for Live Nation... again?"
436                >
437            </figure>
438        </a>
439    <div class="card-lower-part">
440        <div class="card-text-with-button">
441            <p class="truncate">
442                MPs in the UK say Live Nation has created a &quot;climate of fear&quot; whilst their data says they have a 58% grip on UK ticketing. Here&#39;s what else the Committee found.
443            </p>
444            
445    <a class="plus-button" href="https://www.drownedinsound.org/squeaky-bum-time-for-live-nation-again/" aria-label="link to: https://www.drownedinsound.org/squeaky-bum-time-for-live-nation-again/">
446        <div class="vertical-line"></div>
447        <div class="horizontal-line"></div>
448    </a>
449        </div>
450    </div>
451</custom-card>
452                <custom-card class="card" data-chars="100">
453    <div class="card-link-category-link">
454        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
455    </div>
456    <a href="/five-new-artists-one-cool-thing-in-common/" class="card-title-link">
457        <h3>Five new artists, one cool thing in common</h3>
458    </a>
459        <a href="/five-new-artists-one-cool-thing-in-common/" class="card-image-link">
460            <figure>
461                <img
462                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/05/yakkie-press-pic.jpg 300w,
463                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2
463026/05/yakkie-press-pic.jpg 720w,
464                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/05/yakkie-press-pic.jpg 960w,
465                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/05/yakkie-press-pic.jpg 1200w,
466                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/05/yakkie-press-pic.jpg 2000w"
467                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/05/yakkie-press-pic.jpg"
468                    alt="Five new artists, one cool thing in common"
469                >
470            </figure>
471        </a>
472    <div class="card-lower-part">
473        <div class="card-text-with-button">
474            <p class="truncate">
475                Emma Wilkes recommends 5 emerging names you need to see live + our weekly music news round up.
476            </p>
477            
478    <a class="plus-button" href="https://www.drownedinsound.org/five-new-artists-one-cool-thing-in-common/" aria-label="link to: https://www.drownedinsound.org/five-new-artists-one-cool-thing-in-common/">
479        <div class="vertical-line"></div>
480        <div class="horizontal-line"></div>
481    </a>
482        </div>
483    </div>
484</custom-card>
485                <custom-card class="card" data-chars="100">
486    <div class="card-link-category-link">
487        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
488    </div>
489    <a href="/are-phone-free-events-the-way-forward-for-live-music/" class="card-title-link">
490        <h3>Are phone-free events the way forward for live music?</h3>
491    </a>
492        <a href="/are-phone-free-events-the-way-forward-for-live-music/" class="card-image-link">
493            <figure>
494                <img
495                    srcset="https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;300 300w,
496                            https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;720 720w,
497                            https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
498                            https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
499                            https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
500                    src="https://images.unsplash.com/photo-1737107917737-27f5530650db?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDF8fHBob25lJTIwZ2lnfGVufDB8fHx8MTc3ODYwNjg0NXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200"
501                    alt="Are phone-free events the way forward for live music?"
502                >
503            </figure>
504        </a>
505    <div class="card-lower-part">
506        <div class="card-text-with-button">
507            <p class="truncate">
508                Plus a new UK-wide music festival, our emergency podcast, Eurovision, and more.
509            </p>
510            
511    <a class="plus-button" href="https://www.drownedinsound.org/are-phone-free-events-the-way-forward-for-live-music/" aria-label="link to: https://www.drownedinsound.org/are-phone-free-events-the-way-forward-for-live-music/">
512        <div class="vertical-line"></div>
513        <div class="horizontal-line"></div>
514    </a>
515        </div>
516    </div>
517</custom-card>
518                <custom-card class="card" data-chars="100">
519    <div class="card-link-category-link">
520        <a href="https://www.drownedinsound.org/tag/essay/" class="category-link">Essay</a>
521            <div class="restricted-access-icon">
522                <svg width="100%" height="100%" viewBox="0 0 96 113" fill="none" xmlns="http://www.w3.org/2000/svg">
523    <path d="M16 42.9997V33.6663C16 15.5063 29.3493 0.333008 48 0.333008C66.6507 0.333008 80 15.5063 80 33.6663V42.9997H82.6667C86.2029 42.9997 89.5943 44.4044 92.0948 46.9049C94.5952 49.4054 96 52.7968 96 56.333V98.9997C96 102.536 94.5952 105.927 92.0948 108.428C89.5943 110.928 86.2029 112.333 82.6667 112.333H13.3333C9.79711 112.333 6.40573 110.928 3.90524 108.428C1.40476 105.927 0 102.536 0 98.9997V56.333C0 52.7968 1.40476 49.4054 3.90524 46.9049C6.40573 44.4044 9.79711 42.9997 13.3333 42.9997H16ZM8 56.333V98.9997C8 100.414 8.5619 101.771 9.5621 102.771C10.5623 103.771 11.9188 104.333 13.3333 104.333H82.6667C84.0812 104.333 85.4377 103.771 86.4379 102.771C87.4381 101.771 88 100.414 88 98.9997V56.333C88 54.9185 87.4381 53.562 86.4379 52.5618C85.4377 51.5616 84.0812 50.9997 82.6667 50.9997H13.3333C11.9188 50.9997 10.5623 51.5616 9.5621 52.5618C8.5619 53.562 8 54.9185 8 56.333ZM24 33.6663V42.9997H72V33.6663C72 19.4263 61.7493 8.33301 48 8.33301C34.2507 8.33301 24 19.4263 24 33.6663Z" fill="var(--text-color)"/>
524</svg>
525            </div>
526    </div>
527    <a href="/gene-simmons-the-last-gasp-of-an-old-order/" class="card-title-link">
528        <h3>Gene Simmons &amp; The Last Gasp of an Old Order</h3>
529    </a>
530        <a href="/gene-simmons-the-last-gasp-of-an-old-order/" class="card-image-link">
531            <figure>
532                <img
533                    srcset="https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;300 300w,
534                            https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;720 720w,
535                            https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
536                            https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
537                            https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
538                    src="https://images.unsplash.com/photo-1485504750689-aa2121ffe6c6?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDEyfHwlMjBidXJuaW5nfGVufDB8fHx8MTc3Mzc3MjI3MHww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200"
539                    alt="Gene Simmons &amp; The Last Gasp of an Old Order"
540                >
541            </figure>
542        </a>
543    <div class="card-lower-part">
544        <div class="card-text-with-button">
545            <p class="truncate">
546                An old world is dying, a new world is waiting to be born. What we see in politics, we sometimes see in music too…
547            </p>
548            
549    <a class="plus-button" href="https://www.drownedinsound.org/gene-simmons-the-last-gasp-of-an-old-order/" aria-label="link to: https://www.drownedinsound.org/gene-simmons-the-last-gasp-of-an-old-order/">
550        <div class="vertical-line"></div>
551        <div class="horizontal-line"></div>
552    </a>
553        </div>
554    </div>
555</custom-card>
556    </div>
557</custom-slider>
558            </section>
559
560        <section class="latest-stories">
561            
562<section-header class="section-header" id="latest-stories-header" >
563    <div class="section-header-heading-link">
564        <h2>Latest stories</h2>
565    </div>
566
567        <div class="section-header-number">
568            <div class="big-text">223 posts</div>
569        </div>
570</section-header>            <div class="grid pagination-grid" id="latest-stories-grid">
571      <custom-card class="card" data-chars="100">
572    <div class="card-link-category-link">
573        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
574    </div>
575    <a href="/theres-comfort-in-rage-but-rage-is-not-enough/" class="card-title-link">
576        <h3>There’s comfort in rage – but rage is not enough</h3>
577    </a>
578        <a href="/theres-comfort-in-rage-but-rage-is-not-enough/" class="card-image-link">
579            <figure>
580                <img
581                    srcset="https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;300 300w,
582                            https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;720 720w,
583                            https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
584                            https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
585                            https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
586                    src="https://images.unsplash.com/photo-1485113771930-4e8b61c60d64?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxmZW1pbmlzbXxlbnwwfHx8fDE3OTA3OTMzMjB8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200"
587                    alt="There’s comfort in rage – but rage is not enough"
588                >
589            </figure>
590        </a>
591    <div class="card-lower-part">
592        <div class="card-text-with-button">
593            <p class="truncate">
594                Slipknot and Manson. The Cornell 7. The resulting rage is a reminder that we’ve not been desensitised to violence against women – but when will this lead to change?
595            </p>
596            
597    <a class="plus-button" href="https://www.drownedinsound.org/theres-comfort-in-rage-but-rage-is-not-enough/" aria-label="link to: https://www.drownedinsound.org/theres-comfort-in-rage-but-rage-is-not-enough/">
598        <div class="vertical-line"></div>
599        <div class="horizontal-line"></div>
600    </a>
601        </div>
602    </div>
603</custom-card>
604      <custom-card class="card" data-chars="100">
605    <div class="card-link-category-link">
606        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
607    </div>
608    <a href="/26-lessons-from-26-years-of-drowned-in-sound/" class="card-title-link">
609        <h3>26 Lessons from 26 Years of Drowned in Sound</h3>
610    </a>
611        <a href="/26-lessons-from-26-years-of-drowned-in-sound/" class="card-image-link">
612            <figure>
613                <img
614                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png 300w,
615                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2
615026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png 720w,
616                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png 960w,
617                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png 1200w,
618                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png 2000w"
619                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/10/Untitled---September-30--2025-at-16.28.37-67--1-.png"
620                    alt="26 Lessons from 26 Years of Drowned in Sound"
621                >
622            </figure>
623        </a>
624    <div class="card-lower-part">
625        <div class="card-text-with-button">
626            <p class="truncate">
627                Being called a &quot;gobsh*te&quot; by Liam Gallagher and the things I wish I knew 26 years ago.
628            </p>
629            
630    <a class="plus-button" href="https://www.drownedinsound.org/26-lessons-from-26-years-of-drowned-in-sound/" aria-label="link to: https://www.drownedinsound.org/26-lessons-from-26-years-of-drowned-in-sound/">
631        <div class="vertical-line"></div>
632        <div class="horizontal-line"></div>
633    </a>
634        </div>
635    </div>
636</custom-card>
637      <custom-card class="card" data-chars="100">
638    <div class="card-link-category-link">
639        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
640    </div>
641    <a href="/burnout-is-not-brat-charli-xcxs-struggles-with-touring-are-just-the-tip-of-the-iceberg/" class="card-title-link">
642        <h3>Burnout is not brat: Charli xcx’s struggles with touring are just the tip of the iceberg</h3>
643    </a>
644        <a href="/burnout-is-not-brat-charli-xcxs-struggles-with-touring-are-just-the-tip-of-the-iceberg/" class="card-image-link">
645            <figure>
646                <img
647                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/09/photo-1620820890113-d23d17e54643.jpeg 300w,
648                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2026/09/photo-1620820890113-d23d17e54643.jpeg 720w,
649                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/09/photo-1620820890113-d23d17e54643.jpeg 960w,
650                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/photo-1620820890113-d23d17e54643.jpeg 1200w,
651                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/09/photo-1620820890113-d23d17e54643.jpeg 2000w"
652                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/photo-1620820890113-d23d17e54643.jpeg"
653                    alt="Burnout is not brat: Charli xcx’s struggles with touring are just the tip of the iceberg"
654                >
655            </figure>
656        </a>
657    <div class="card-lower-part">
658        <div class="card-text-with-button">
659            <p class="truncate">
660                Emma Wilkes asks  - if one of the biggest popstars in the world is struggling, what must it be like for everyone else?
661            </p>
662            
663    <a class="plus-button" href="https://www.drownedinsound.org/burnout-is-not-brat-charli-xcxs-struggles-with-touring-are-just-the-tip-of-the-iceberg/" aria-label="link to: https://www.drownedinsound.org/burnout-is-not-brat-charli-xcxs-struggles-with-touring-are-just-the-tip-of-the-iceberg/">
664        <div class="vertical-line"></div>
665        <div class="horizontal-line"></div>
666    </a>
667        </div>
668    </div>
669</custom-card>
670      <custom-card class="card" data-chars="100">
671    <div class="card-link-category-link">
672        <a href="https://www.drownedinsound.org/tag/essay/" class="category-link">Essay</a>
673            <div class="restricted-access-icon">
674                <svg width="100%" height="100%" viewBox="0 0 96 113" fill="none" xmlns="http://www.w3.org/2000/svg">
675    <path d="M16 42.9997V33.6663C16 15.5063 29.3493 0.333008 48 0.333008C66.6507 0.333008 80 15.5063 80 33.6663V42.9997H82.6667C86.2029 42.9997 89.5943 44.4044 92.0948 46.9049C94.5952 49.4054 96 52.7968 96 56.333V98.9997C96 102.536 94.5952 105.927 92.0948 108.428C89.5943 110.928 86.2029 112.333 82.6667 112.333H13.3333C9.79711 112.333 6.40573 110.928 3.90524 108.428C1.40476 105.927 0 102.536 0 98.9997V56.333C0 52.7968 1.40476 49.4054 3.90524 46.9049C6.40573 44.4044 9.79711 42.9997 13.3333 42.9997H16ZM8 56.333V98.9997C8 100.414 8.5619 101.771 9.5621 102.771C10.5623 103.771 11.9188 104.333 13.3333 104.333H82.6667C84.0812 104.333 85.4377 103.771 86.4379 102.771C87.4381 101.771 88 100.414 88 98.9997V56.333C88 54.9185 87.4381 53.562 86.4379 52.5618C85.4377 51.5616 84.0812 50.9997 82.6667 50.9997H13.3333C11.9188 50.9997 10.5623 51.5616 9.5621 52.5618C8.5619 53.562 8 54.9185 8 56.333ZM24 33.6663V42.9997H72V33.6663C72 19.4263 61.7493 8.33301 48 8.33301C34.2507 8.33301 24 19.4263 24 33.6663Z" fill="var(--text-color)"/>
676</svg>
677            </div>
678    </div>
679    <a href="/id-like-to-thank-chino-moreno/" class="card-title-link">
680        <h3>I’d like to thank Chino Moreno…</h3>
681    </a>
682        <a href="/id-like-to-thank-chino-moreno/" class="card-image-link">
683            <figure>
684                <img
685                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/09/deftones-press-photo.jpg 300w,
686                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2026/09/deftones-press-photo.jpg 720w,
687                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/09/deftones-press-photo.jpg 960w,
688                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/deftones-press-photo.jpg 1200w,
689                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/09/deftones-press-photo.jpg 2000w"
690                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/deftones-press-photo.jpg"
691                    alt="I’d like to thank Chino Moreno…"
692                >
693            </figure>
694        </a>
695    <div class="card-lower-part">
696        <div class="card-text-with-button">
697            <p class="truncate">
698                Emma Wilkes&#39; DiS essay Deftones is for the girls won at the IMJAs at Reeperbahn Festival in Hamburg. She recounts how her prize-winning essay came together...
699            </p>
700            
701    <a class="plus-button" href="https://www.drownedinsound.org/id-like-to-thank-chino-moreno/" aria-label="link to: https://www.drownedinsound.org/id-like-to-thank-chino-moreno/">
702        <div class="vertical-line"></div>
703        <div class="horizontal-line"></div>
704    </a>
705        </div>
706    </div>
707</custom-card>
708      <custom-card class="card" data-chars="100">
709    <div class="card-link-category-link">
710        <a href="https://www.drownedinsound.org/tag/shownotes/" class="category-link">SHOWNOTES</a>
711    </div>
712    <a href="/introducing-shownotes/" class="card-title-link">
713        <h3>Introducing... SHOWNOTES</h3>
714    </a>
715        <a href="/introducing-shownotes/" class="card-image-link">
716            <figure>
717                <img
718                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/09/Untitled---September-21--2026-at-14.23.13-1.png 300w,
719                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2026/09/Untitled---September-21--2026-at-14.23.13-1.png 720w,
720                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/09/Untitled---September-21--2026-at-14.23.13-1.png 960w,
721                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/Untitled---September-21--2026-at-14.23.13-1.png 1200w,
722                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/09/Untitled---September-21--2026-at-14.23.13-1.png 2000w"
723                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/Untitled---September-21--2026-at-14.23.13-1.png"
724                    alt="Introducing... SHOWNOTES"
725                >
726            </figure>
727        </a>
728    <div class="card-lower-part">
729        <div class="card-text-with-button">
730            <p class="truncate">
731                We&#39;re thrilled to share details about our new print publication.
732            </p>
733            
734    <a class="plus-button" href="https://www.drownedinsound.org/introducing-shownotes/" aria-label="link to: https://www.drownedinsound.org/introducing-shownotes/">
735        <div class="vertical-line"></div>
736        <div class="horizontal-line"></div>
737    </a>
738        </div>
739    </div>
740</custom-card>
741      <custom-card class="card" data-chars="100">
742    <div class="card-link-category-link">
743        <a href="https://www.drownedinsound.org/tag/newsletter/" class="category-link">Newsletter</a>
744    </div>
745    <a href="/drowned-in-sound-news-update-september-2026/" class="card-title-link">
746        <h3>From Ed Sheeran to streaming emissions: All the news you might have missed</h3>
747    </a>
748        <a href="/drowned-in-sound-news-update-september-2026/" class="card-image-link">
749            <figure>
750                <img
751                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg 300w,
752                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2
752026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg 720w,
753                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg 960w,
754                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg 1200w,
755                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w2000/2026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg 2000w"
756                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w1200/2026/09/Untitled---September-30--2025-at-16.28.37-67.jpeg"
757                    alt="From Ed Sheeran to streaming emissions: All the news you might have missed"
758                >
759            </figure>
760        </a>
761    <div class="card-lower-part">
762        <div class="card-text-with-button">
763            <p class="truncate">
764                Summer&#39;s over, autumn&#39;s here, and the news cycle just keeps running. Emma Wilkes rounds up all you need to know.
765            </p>
766            
767    <a class="plus-button" href="https://www.drownedinsound.org/drowned-in-sound-news-update-september-2026/" aria-label="link to: https://www.drownedinsound.org/drowned-in-sound-news-update-september-2026/">
768        <div class="vertical-line"></div>
769        <div class="horizontal-line"></div>
770    </a>
771        </div>
772    </div>
773</custom-card>
774</div>
775
776  <custom-pagination>
777    <nav>
778        <button id="load-more-btn" data-current-page="1" class="pagination-button button">Load more</button>
779    </nav>
780  </custom-pagination>
781        </section>
782    
783            <section class="browse-by-tags">
784                
785<section-header class="section-header" id="browse-by-tags-slider-controller" style="border-bottom: none;">
786    <div class="section-header-heading-link">
787        <h2>Browse by tags</h2>
788    </div>
789
790        <div class="section-header-arrows">
791            <button class="arrow-button unstyled-button" aria-label="Button left" name="left">
792                <svg width="100%" height="100%" viewBox="0 0 80 22" fill="none" xmlns="http://www.w3.org/2000/svg">
793    <path d="M0 11L79 11" stroke="var(--text-color)" stroke-width="1.5"/>
794    <path d="M58.0026 21.0625C58.0026 21.0625 57.3026 11.2875 79.0026 11" stroke="var(--text-color)" stroke-width="1.5"/>
795    <path d="M58.0026 1C58.0026 1 57.3026 10.775 79.0026 11.0625" stroke="var(--text-color)" stroke-width="1.5"/>
796</svg>
797
798            </button>
799            <button class="arrow-button unstyled-button" aria-label="Button right" name="right">
800                <svg width="100%" height="100%" viewBox="0 0 80 22" fill="none" xmlns="http://www.w3.org/2000/svg">
801    <path d="M0 11L79 11" stroke="var(--text-color)" stroke-width="1.5"/>
802    <path d="M58.0026 21.0625C58.0026 21.0625 57.3026 11.2875 79.0026 11" stroke="var(--text-color)" stroke-width="1.5"/>
803    <path d="M58.0026 1C58.0026 1 57.3026 10.775 79.0026 11.0625" stroke="var(--text-color)" stroke-width="1.5"/>
804</svg>
805
806            </button>
807        </div>
808</section-header>                
809<custom-slider class="slider" id="browse-by-tags-slider">
810    <div class="slider-inner">
811                
812<div class="tag-card">
813    <a href="/tag/essay/" class="card-image-link" aria-label="link to: ">
814            <figure>
815                <img
816                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/07/Untitled-July-02-2025.png 150w,
817                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/07/Untitled-July-02-2025.png 300w,
818                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2025/07/Untitled-July-02-2025.png 720w,
819                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025.png 960w"
820                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025.png"
821                    alt=""
822                >
823            </figure>                   
824    </a>
825    <a class="tag-heading-link" href="/tag/essay/">
826        <div class="big-text">Essay</div>
827    </a>
828</div>                
829<div class="tag-card">
830    <a href="/tag/interview/" class="card-image-link" aria-label="link to: ">
831            <figure>
832                <img
833                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/07/Untitled-July-2-2025--27-.png 150w,
834                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/07/Untitled-July-2-2025--27-.png 300w,
835                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2
835025/07/Untitled-July-2-2025--27-.png 720w,
836                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-2-2025--27-.png 960w"
837                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-2-2025--27-.png"
838                    alt=""
839                >
840            </figure>                   
841    </a>
842    <a class="tag-heading-link" href="/tag/interview/">
843        <div class="big-text">Interview</div>
844    </a>
845</div>                
846<div class="tag-card">
847    <a href="/tag/newsletter/" class="card-image-link" aria-label="link to: ">
848            <figure>
849                <img
850                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/07/Untitled-July-02-2025--4-.png 150w,
851                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/07/Untitled-July-02-2025--4-.png 300w,
852                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2025/07/Untitled-July-02-2025--4-.png 720w,
853                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025--4-.png 960w"
854                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025--4-.png"
855                    alt=""
856                >
857            </figure>                   
858    </a>
859    <a class="tag-heading-link" href="/tag/newsletter/">
860        <div class="big-text">Newsletter</div>
861    </a>
862</div>                
863<div class="tag-card">
864    <a href="/tag/offers/" class="card-image-link" aria-label="link to: ">
865            <figure>
866                <img
867                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/07/Untitled-July-02-2025--5-.png 150w,
868                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/07/Untitled-July-02-2025--5-.png 300w,
869                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2025/07/Untitled-July-02-2025--5-.png 720w,
870                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025--5-.png 960w"
871                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-02-2025--5-.png"
872                    alt=""
873                >
874            </figure>                   
875    </a>
876    <a class="tag-heading-link" href="/tag/offers/">
877        <div class="big-text">Offers</div>
878    </a>
879</div>                
880<div class="tag-card">
881    <a href="/tag/podcast-2/" class="card-image-link" aria-label="link to: ">
882            <figure>
883                <img
884                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2026/03/DiS-Artwork-04.jpg 150w,
885                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2026/03/DiS-Artwork-04.jpg 300w,
886                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2026/03/DiS-Artwork-04.jpg 720w,
887                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/03/DiS-Artwork-04.jpg 960w"
888                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2026/03/DiS-Artwork-04.jpg"
889                    alt=""
890                >
891            </figure>                   
892    </a>
893    <a class="tag-heading-link" href="/tag/podcast-2/">
894        <div class="big-text">
894Podcast</div>
895    </a>
896</div>                
897<div class="tag-card">
898    <a href="/tag/recommendations/" class="card-image-link" aria-label="link to: ">
899            <figure>
900                <img
901                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/07/Untitled-July-2-2025--28-.png 150w,
902                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/07/Untitled-July-2-2025--28-.png 300w,
903                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2025/07/Untitled-July-2-2025--28-.png 720w,
904                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-2-2025--28-.png 960w"
905                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/07/Untitled-July-2-2025--28-.png"
906                    alt=""
907                >
908            </figure>                   
909    </a>
910    <a class="tag-heading-link" href="/tag/recommendations/">
911        <div class="big-text">Recommended</div>
912    </a>
913</div>                
914<div class="tag-card">
915    <a href="/tag/resources/" class="card-image-link" aria-label="link to: ">
916            <figure>
917                <img
918                    srcset="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w150/2025/12/Screenshot-2025-12-04-at-17.40.22.png 150w,
919                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w300/2025/12/Screenshot-2025-12-04-at-17.40.22.png 300w,
920                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w720/2025/12/Screenshot-2025-12-04-at-17.40.22.png 720w,
921                            https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/12/Screenshot-2025-12-04-at-17.40.22.png 960w"
922                    src="https://storage.ghost.io/c/f8/5a/f85aaacd-e9e1-4577-9f78-c62a1ee936d4/content/images/size/w960/2025/12/Screenshot-2025-12-04-at-17.40.22.png"
923                    alt=""
924                >
925            </figure>                   
926    </a>
927    <a class="tag-heading-link" href="/tag/resources/">
928        <div class="big-text">Resources</div>
929    </a>
930</div>    </div>
931</custom-slider>
932            </section>
933</main>
934
935            <link rel="stylesheet" type="text/css" href="https://www.drownedinsound.org/assets/css/footer.css?v=waZfg0ug1NlkszVw" />
936
937<custom-footer>
938    <nav class="footer-navigation">
939        
940    <ul class="footer-nav" >
941            <li class="footer-nav-about-us" data-label="About Us">  
942                <a class="footer-nav-link" href="https://www.drownedinsound.org/about/">About Us</a>
943            </li>
944            <li class="footer-nav-subscribe" data-label="Subscribe">  
945                <a class="footer-nav-link" href="#/portal/">Subscribe</a>
946            </li>
947            <li class="footer-nav-archive" data-label="Archive">  
948                <a class="footer-nav-link" href="https://www.drownedinsound.org/tag/archive/">Archive</a>
949            </li>
950            <li class="footer-nav-resources" data-label="Resources">  
951                <a class="footer-nav-link" href="https://www.drownedinsound.org/resources/">Resources</a>
952            </li>
953            <li class="footer-nav-faqs" data-label="FAQs">  
954                <a class="footer-nav-link" href="https://www.drownedinsound.org/faqs/">FAQs</a>
955            </li>
956            <li class="footer-nav-contact" data-label="Contact">  
957                <a class="footer-nav-link" href="https://www.drownedinsound.org/contact-us/">Contact</a>
958            </li>
959    </ul>
960
961    </nav>
962
963    <div class="footer-socials">
964        <h2 class="footer-subscribe-heading">Subscribe to our newsletter</h2>
965        <div class="action-wrapper">
966                        <form data-members-form="subscribe" class="subscribe-form">
967                <div class="subscribe-with-alerts">
968                    <div class="subscribe-wrapper">
969                        <input data-members-email type="email" required="true" placeholder="[email protected]" class="subscribe-input"/>
970                        <button type="submit">Subscribe</button>
971                    </div>
972                    <div class="subscribe-alerts">
973                        <small class="subscribe-alert loading-alert">Processing your request...</small>
974                        <small class="subscribe-alert success-alert">Please check your inbox and click the link to confirm your subscription.</small>
975                        <small class="subscribe-alert error-alert" data-members-error></small>
976                    </div> 
977                </div>            
978            </form>
979        </div>
980        <div class="footer-socials-inner">
981            <a href="https://www.facebook.com/drownedinsounduk" target="_blank" class="social" aria-label="Facebook">
982                <div class="social-inner">
983                    <svg width="100%" height="100%" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
984    <path d="M33 18C33 9.72 26.28 3 18 3C9.72 3 3 9.72 3 18C3 25.26 8.16 31.305 15 32.7V22.5H12V18H15V14.25C15 11.355 17.355 9 20.25 9H24V13.5H21C20.175 13.5 19.5 14.175 19.5 15V18H24V22.5H19.5V32.925C27.075 32.175 33 25.785 33 18Z" fill="var(--text-color)"/>
985</svg>
986                </div>
987            </a>
988
989            <a href="" class="social" target="_blank" aria-label="Twitter">
990                <div class="social-inner">
991                    <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
992    <path d="M17.1763 4L12.6289 9.11194L8.69691 4H3L9.80552 12.7505L3.35589 20H6.11742L11.0953 14.4056L15.446 20H21L13.9059 10.7768L19.936 4H17.1763ZM16.2078 18.3754L6.22391 5.53869H7.86499L17.737 18.3745L16.2078 18.3754Z" fill="var(--text-color)"/>
993</svg>
994                </div>
995            </a>
996
997
998        </div>
999    </div>
1000
1001    <div class="footer-credits">
1002        <span>&copy; 2026&nbsp;</span><a href="https://www.drownedinsound.org">Drowned in Sound</a><span>&nbsp;- Published with&nbsp;</span><a href="https://ghost.org/" target="_blank">Ghost</a><span>&nbsp;&&nbsp;</span><a href="https://www.kusa-projects.com/" target="_blank">Drowned in Sound</a>
1003    </div>
1004    <span id="no-footer-form-text" style="display: none; width: 0px; height: 0px;" data-no-footer-form-text="Follow us on social media"></span>
1005</custom-footer>        </div>
1006    </div>
1007</div>
1008
1009
1010<div class="global-notifications">
1011    <div class="notification subscribe-false">
1012        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1013    <path d="M9.9987 0.833496C4.9387 0.833496 0.832031 4.94016 0.832031 10.0002C0.832031 15.0602 4.9387 19.1668 9.9987 19.1668C15.0587 19.1668 19.1654 15.0602 19.1654 10.0002C19.1654 4.94016 15.0587 0.833496 9.9987 0.833496ZM10.9154 14.5835H9.08203V12.7502H10.9154V14.5835ZM10.9154 10.9168H9.08203V5.41683H10.9154V10.9168Z" fill="var(--error-color)"/>
1014</svg>
1015
1016        <small>Your link has expired. Please request a new one.</small>
1017    </div>
1018    <div class="notification signup-false">
1019        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1020    <path d="M9.9987 0.833496C4.9387 0.833496 0.832031 4.94016 0.832031 10.0002C0.832031 15.0602 4.9387 19.1668 9.9987 19.1668C15.0587 19.1668 19.1654 15.0602 19.1654 10.0002C19.1654 4.94016 15.0587 0.833496 9.9987 0.833496ZM10.9154 14.5835H9.08203V12.7502H10.9154V14.5835ZM10.9154 10.9168H9.08203V5.41683H10.9154V10.9168Z" fill="var(--error-color)"/>
1021</svg>
1022
1023        <small>Your link has expired. Please request a new one.</small>
1024    </div>
1025    <div class="notification signin-false">
1026        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1027    <path d="M9.9987 0.833496C4.9387 0.833496 0.832031 4.94016 0.832031 10.0002C0.832031 15.0602 4.9387 19.1668 9.9987 19.1668C15.0587 19.1668 19.1654 15.0602 19.1654 10.0002C19.1654 4.94016 15.0587 0.833496 9.9987 0.833496ZM10.9154 14.5835H9.08203V12.7502H10.9154V14.5835ZM10.9154 10.9168H9.08203V5.41683H10.9154V10.9168Z" fill="var(--error-color)"/>
1028</svg>
1029
1030        <small>Your link has expired. Please request a new one.</small>
1031    </div>
1032    <div class="notification subscribe-true">
1033        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1034    <path d="M10 0.375C12.5527 0.375 15.0009 1.38906 16.8059 3.1941C18.6109 4.99913 19.625 7.44729 19.625 10C19.625 12.5527 18.6109 15.0009 16.8059 16.8059C15.0009 18.6109 12.5527 19.625 10 19.625C7.44729 19.625 4.99913 18.6109 3.1941 16.8059C1.38906 15.0009 0.375 12.5527 0.375 10C0.375 7.44729 1.38906 4.99913 3.1941 3.1941C4.99913 1.38906 7.44729 0.375 10 0.375ZM8.801 11.8989L6.66288 9.75937C6.58622 9.68272 6.49523 9.62192 6.39508 9.58044C6.29493 9.53895 6.18759 9.5176 6.07919 9.5176C5.97079 9.5176 5.86345 9.53895 5.7633 9.58044C5.66315 9.62192 5.57215 9.68272 5.4955 9.75937C5.3407 9.91418 5.25373 10.1241 5.25373 10.3431C5.25373 10.562 5.3407 10.7719 5.4955 10.9268L8.218 13.6493C8.29444 13.7263 8.38536 13.7874 8.48554 13.8292C8.58572 13.8709 8.69317 13.8924 8.80169 13.8924C8.91021 13.8924 9.01765 13.8709 9.11783 13.8292C9.21801 13.7874 9.30894 13.7263 9.38538 13.6493L15.0229 8.01038C15.1005 7.93404 15.1623 7.84309 15.2047 7.74275C15.247 7.64242 15.2691 7.53469 15.2696 7.42579C15.2701 7.31689 15.2491 7.20896 15.2076 7.10824C15.1662 7.00751 15.1053 6.91599 15.0283 6.83893C14.9514 6.76188 14.8599 6.70083 14.7592 6.6593C14.6586 6.61
1034777 14.5507 6.59658 14.4418 6.59696C14.3328 6.59734 14.2251 6.61927 14.1247 6.6615C14.0243 6.70373 13.9333 6.76542 13.8569 6.843L8.801 11.8989Z" fill="var(--success-color)"/>
1035</svg>
1036        <small>Great! You&#x27;ve successfully signed up.</small>
1037    </div>
1038    <div class="notification signup-true">
1039        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1040    <path d="M10 0.375C12.5527 0.375 15.0009 1.38906 16.8059 3.1941C18.6109 4.99913 19.625 7.44729 19.625 10C19.625 12.5527 18.6109 15.0009 16.8059 16.8059C15.0009 18.6109 12.5527 19.625 10 19.625C7.44729 19.625 4.99913 18.6109 3.1941 16.8059C1.38906 15.0009 0.375 12.5527 0.375 10C0.375 7.44729 1.38906 4.99913 3.1941 3.1941C4.99913 1.38906 7.44729 0.375 10 0.375ZM8.801 11.8989L6.66288 9.75937C6.58622 9.68272 6.49523 9.62192 6.39508 9.58044C6.29493 9.53895 6.18759 9.5176 6.07919 9.5176C5.97079 9.5176 5.86345 9.53895 5.7633 9.58044C5.66315 9.62192 5.57215 9.68272 5.4955 9.75937C5.3407 9.91418 5.25373 10.1241 5.25373 10.3431C5.25373 10.562 5.3407 10.7719 5.4955 10.9268L8.218 13.6493C8.29444 13.7263 8.38536 13.7874 8.48554 13.8292C8.58572 13.8709 8.69317 13.8924 8.80169 13.8924C8.91021 13.8924 9.01765 13.8709 9.11783 13.8292C9.21801 13.7874 9.30894 13.7263 9.38538 13.6493L15.0229 8.01038C15.1005 7.93404 15.1623 7.84309 15.2047 7.74275C15.247 7.64242 15.2691 7.53469 15.2696 7.42579C15.2701 7.31689 15.2491 7.20896 15.2076 7.10824C15.1662 7.00751 15.1053 6.91599 15.0283 6.83893C14.9514 6.76188 14.8599 6.70083 14.7592 6.6593C14.6586 6.61777 14.5507 6.59658 14.4418 6.59696C14.3328 6.59734 14.2251 6.61927 14.1247 6.6615C14.0243 6.70373 13.9333 6.76542 13.8569 6.843L8.801 11.8989Z" fill="var(--success-color)"/>
1041</svg>
1042        <small>Great! You&#x27;ve successfully signed up.</small>
1043    </div>
1044    <div class="notification signin-true">
1045        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1046    <path d="M10 0.375C12.5527 0.375 15.0009 1.38906 16.8059 3.1941C18.6109 4.99913 19.625 7.44729 19.625 10C19.625 12.5527 18.6109 15.0009 16.8059 16.8059C15.0009 18.6109 12.5527 19.625 10 19.625C7.44729 19.625 4.99913 18.6109 3.1941 16.8059C1.38906 15.0009 0.375 12.5527 0.375 10C0.375 7.44729 1.38906 4.99913 3.1941 3.1941C4.99913 1.38906 7.44729 0.375 10 0.375ZM8.801 11.8989L6.66288 9.75937C6.58622 9.68272 6.49523 9.62192 6.39508 9.58044C6.29493 9.53895 6.18759 9.5176 6.07919 9.5176C5.97079 9.5176 5.86345 9.53895 5.7633 9.58044C5.66315 9.62192 5.57215 9.68272 5.4955 9.75937C5.3407 9.91418 5.25373 10.1241 5.25373 10.3431C5.25373 10.562 5.3407 10.7719 5.4955 10.9268L8.218 13.6493C8.29444 13.7263 8.38536 13.7874 8.48554 13.8292C8.58572 13.8709 8.69317 13.8924 8.80169 13.8924C8.91021 13.8924 9.01765 13.8709 9.11783 13.8292C9.21801 13.7874 9.30894 13.7263 9.38538 13.6493L15.0229 8.01038C15.1005 7.93404 15.1623 7.84309 15.2047 7.74275C15.247 7.64242 15.2691 7.53469 15.2696 7.42579C15.2701 7.31689 15.2491 7.20896 15.2076 7.10824C15.1662 7.00751 15.1053 6.91599 15.0283 6.83893C14.9514 6.76188 14.8599 6.70083 14.7592 6.6593C14.6586 6.61777 14.5507 6.59658 14.4418 6.59696C14.3328 6.59734 14.2251 6.61927 14.1247 6.6615C14.0243 6.70373 13.9333 6.76542 13.8569 6.843L8.801 11.8989Z" fill="var(--success-color)"/>
1047</svg>
1048        <small>Welcome back! You&#x27;ve successfully signed in.</small>
1049    </div>
1050    <div class="notification stripe-success">
1051        <svg class="notification-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1052    <path d="M10 0.375C12.5527 0.375 15.0009 1.38906 16.8059 3.1941C18.6109 4.99913 19.625 7.44729 19.625 10C19.625 12.5527 18.6109 15.0009 16.8059 16.8059C15.0009 18.6109 12.5527 19.625 10 19.625C7.44729 19.625 4.99913 18.6109 3.1941 16.8059C1.38906 15.0009 0.375 12.5527 0.375 10C0.375 7.44729 1.38906 4.99913 3.1941 3.1941C4.99913 1.38906 7.44729 0.375 10 0.375ZM8.801 11.8989L6.66288 9.75937C6.58622 9.68272 6.49523 9.62192 6.39508 9.58044C6.29493 9.53895 6.18759 9.5176 6.07919 9.5176C5.97079 9.5176 5.86345 9.53895 5.7633 9.58044C5.66315 9.62192 5.57215 9.68272 5.4955 9.75937C5.3407 9.91418 5.25373 10.1241 5.25373 10.3431C5.25373 10.562 5.3407 10.7719 5.4955 10.9268L8.218 13.6493C8.29444 13.7263 8.38536 13.7874 8.48554 13.8292C8.58572 13.8709 8.69317 13.8924 8.80169 13.8924C8.91021 13.8924 9.01765 13.8709 9.11783 13.8292C9.21801 13.7874 9.30894 13.7263 9.38538 13.6493L15.0229 8.01038C15.1005 7.93404 15.1623 7.84309 15.2047 7.74275C15.247 7.64242 15.2691 7.53469 15.2696 7.42579C15.2701 7.31689 15.2491 7.20896 15.2076 7.10824C15.1662 7.00751 15.1053 6.91599 15.0283 6.83893C14.9514 6.76188 14.8599 6.70083 14.7592 6.6593C14.6586 6.61
1052777 14.5507 6.59658 14.4418 6.59696C14.3328 6.59734 14.2251 6.61927 14.1247 6.6615C14.0243 6.70373 13.9333 6.76542 13.8569 6.843L8.801 11.8989Z" fill="var(--success-color)"/>
1053</svg>
1054        <small>Success! You now have access to additional content.</small>
1055    </div>
1056</div>
1057
1058
1059
1060<script src="https://www.drownedinsound.org/assets/js/custom-elements.js?v=yKrWd1sGyKzE3iEF"></script>
1060
1061
1062<!-- ======================== Drowned In Sound — Global Injection (clean + stable) ======================== -->
1063
1064<!-- ========== Global tokens & small layout tweaks ========== -->
1065<style>
1066  /* Your current overrides */
1067  .dis-podcasts-section .section-header-arrows { padding-right: 12px !important; }
1068  .dis-podcasts-section[data-pb-ready] .ls-rail { padding-top: 20px; }
1069
1070  .dis-podcast-title {
1071    margin: 0px 0 -50px !important;
1072    padding-bottom: 0px !important;
1073    font-size: clamp(1.8rem, 5vw, 4rem) !important;
1074  }
1075
1076  a.navbar-button.dis-subscribe-btn,
1077  .mobile-menu-cta a.button.dis-subscribe-btn,
1078  a.navbar-button.signin-button,
1079  .mobile-menu-cta a.button.signin-button,
1080  a.dis-subscribe-btn,
1081  .signin-button { border-radius: 0px !important; }
1082
1083  .latest-stories[data-ls-ready] .ls-item { border-radius: 0 !important; }
1084
1085  .post-content a:not([class*="button"]):not(.kg-bookmark-container),
1086  .post-excerpt a,
1087  article p a,
1088  .hero-description-wrapper a { color: white !important; }
1089
1090  :root{
1091    --dis-tag-scale: .7;
1092
1093    --dis-pink: #f307b0;
1094    --dis-social-scale: .86;
1095    --dis-header-font: "Francois One", system-ui, sans-serif;
1096
1097    --ls-gap: 0px;
1098    --ls-gap-sm: 0px;
1099    --ls-w: clamp(320px, 30vw + 140px, 520px);
1100    --ls-w-sm: min(92vw, 520px);
1101    --ls-divider: rgba(255,255,255);
1102    --ls-match-shadow: inset 0 0 0 1px var(--ls-divider);
1103    --ls-match-radius: 0px;
1104    --ls-match-bg: transparent;
1105
1106    --yt-gap: var(--ls-gap);
1107    --yt-gap-sm: var(--ls-gap-sm);
1108    --yt-w: var(--ls-w);
1109    --yt-w-sm: var(--ls-w-sm);
1110    --pb-gap: var(--ls-gap);
1111    --pb-gap-sm: var(--ls-gap-sm);
1112    --pb-w: var(--ls-w);
1113    --pb-w-sm: var(--ls-w-sm);
1114  }
1115
1116  .section-header-number{ margin-top:auto; display:none; }
1117  section.browse-by-tags .slider-inner{ gap:0px; }
1118  custom-pagination nav{ display:none; }
1119
1120  @media (min-width:1439px){
1121    .logo img{ height:calc(2.5vw * var(--scale) * var(--logo-scale)); }
1122  }
1123  .logo img{ height:calc(36px * var(--logo-scale)); width:auto; }
1124
1125  .big-text{ font-size:200% !important; font-family:'Francois One' !important; }
1126  .dis-podcasts-section .pb-thumb{ padding:5%; }
1127  .search-input{ font-family:'Francois One'; }
1128  button, .kg-btn, .kg-header-card-button, .button{
1129    font-family:'Francois One';
1130    font-size:26px;
1131    font-weight:600;
1132  }
1133
1134  section.browse-by-tags .tag-card{
1135    transform:scale(var(--dis-tag-scale));
1136    transform-origin:top left;
1137  }
1138  section.browse-by-tags .slider-inner{
1139    gap:calc(var(--dis-tag-scale) * var(--tags-gap, 24px));
1140  }
1141</style>
1142
1143<!-- ================================ Podcasts section shell (after Latest) ================================ -->
1144<style>
1145  .dis-podcast-stack{
1146    display:flex !important;
1147    flex-direction:column !important;
1148    gap:12px;
1149    width:100%;
1150    grid-column:1 / -1 !important;
1151  }
1152  .dis-podcasts-section{ position:relative; }
1153</style>
1154
1155<script>
1156(function(){
1157  const ready = (fn) =>
1158    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1159
1160  ready(function(){
1161    const onlyHome = true;
1162    if (onlyHome && location.pathname.replace(/\/+$/,'/') !== '/') return;
1163
1164    const latest = document.querySelector('.latest-stories');
1165    if (!latest || document.querySelector('.dis-podcasts-section')) return;
1166
1167    const section = document.createElement(latest.tagName);
1168    section.className = (latest.className || '') + ' dis-podcasts-section';
1169
1170    const innerRef = latest.firstElementChild;
1171    let inner = section;
1172
1173    if (innerRef){
1174      inner = document.createElement(innerRef.tagName);
1175      inner.className = innerRef.className || '';
1176      section.appendChild(inner);
1177    }
1178
1179    const stack = document.createElement('div');
1180    stack.className = 'dis-podcast-stack';
1181    inner.appendChild(stack);
1182
1183    const ref = latest.querySelector('h1,h2,h3,.section-title,[class*="title"]');
1184    const h = document.createElement(ref?.tagName || 'h2');
1185    h.className = ref?.className || 'dis-podcast-title';
1186    h.textContent = 'Podcasts';
1187    if (!/^H[1-6]$/.test(h.tagName)) h.setAttribute('role','heading');
1188    stack.appendChild(h);
1189
1190    latest.insertAdjacentElement('afterend', section);
1191  });
1192})();
1193</script>
1193
1194
1195<!-- ================================= Header CTAs (Subscribe/Sign in) ================================= -->
1196<style>
1197  a.navbar-button.dis-subscribe-btn,
1198  .mobile-menu-cta a.button.dis-subscribe-btn,
1199  a.navbar-button.signin-button,
1200  .mobile-menu-cta a.button.signin-button,
1201  a.dis-subscribe-btn,
1202  .signin-button{
1203    font-family:var(--dis-header-font) !important;
1204    border-radius:4px;
1205    display:inline-flex;
1206    align-items:center;
1207    gap:8px;
1208    text-transform:capitalize;
1209    letter-spacing:.02em;
1210    font-weight:600;
1211    padding:.3em .85em;
1212  }
1213  a.dis-subscribe-btn{ background:var(--dis-pink); color:#fff !important; }
1214  .signin-button{ background:rgba(0,0,0,.5); color:#fff !important; }
1215  a.dis-subscribe-btn{
1216    font-size:1.5rem;
1217    line-height:1;
1218    padding:.65em 1.1em;
1219    text-decoration:none !important;
1220  }
1221  a.dis-subscribe-btn:hover, a.dis-subscribe-btn:focus{
1222    filter:brightness(1.05);
1223    text-decoration:none !important;
1224  }
1225</style>
1226<script>
1227(function(){
1228  const ready = (fn) =>
1229    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1230
1231  ready(function(){
1232    const isMember = !!document.querySelector('a[href="#/portal/account"]');
1233    document.querySelectorAll('a.navbar-button, .mobile-menu-cta a.button').forEach(a=>{
1234      const label = (a.textContent||'').trim().toLowerCase();
1235      if (label === 'subscribe' && !isMember){
1236        a.href = '#/portal/signup';
1237        a.classList.add('dis-subscribe-btn');
1238      }
1239      if (label === 'sign in'){
1240        a.classList.add('signin-button');
1241      }
1242    });
1243  });
1244})();
1245</script>
1245
1246
1247<!-- ================================= Open community links in a new tab ================================= -->
1248<script>
1249(function(){
1250  const ready = (fn) =>
1251    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1252
1253  ready(function(){
1254    document.querySelectorAll('a[href*="community.drownedinsound.com"]').forEach(a=>{
1255      a.target = '_blank';
1256      a.rel = 'noopener noreferrer';
1257    });
1258  });
1259})();
1260</script>
1260
1261
1262<!-- ================================= Footer socials (inject icons; remove white tiles) ================================= -->
1263<style>
1264  custom-footer .footer-socials-inner a.social[aria-label="X" i],
1265  custom-footer .footer-socials-inner a.social[aria-label*="twitter" i],
1266  custom-footer .footer-socials-inner a.social[aria-label="Instagram" i]:not([data-injected]),
1267  custom-footer .footer-socials-inner a.social[aria-label*="instagram" i]:not([data-injected]),
1268  custom-footer .footer-socials-inner a.social[aria-label="Facebook" i]:not([data-injected]),
1269  custom-footer .footer-socials-inner a.social[aria-label*="facebook" i]:not([data-injected]){ display:none !important; }
1270
1271  custom-footer .footer-socials-inner a.social[data-injected] .social-inner{
1272    display:flex; align-items:center; justify-content:center; background:none !important;
1273  }
1274  custom-footer .footer-socials-inner a.social[data-injected] .social-inner svg{
1275    width:100% !important; height:100% !important; display:block; margin:auto;
1276    transform:scale(var(--dis-social-scale));
1277    transform-origin:50% 50%;
1278  }
1279  custom-footer .footer-socials-inner a.social[data-injected]::before,
1280  custom-footer .footer-socials-inner a.social[data-injected]::after{ content:none !important; }
1281
1282  custom-footer .footer-socials-inner a.social[data-injected="Podbean"] .social-inner svg { transform: scale(1.10); }
1283  custom-footer .footer-socials-inner a.social[data-injected="Facebook"] .social-inner svg { transform: scale(1.10); }
1284</style>
1285<script>
1286(function(){
1287  const LINKS={
1288    Podbean:"https://drownedinsound.podbean.com/",
1289    YouTube:"https://www.youtube.com/@drownedinsound",
1290    Instagram:"https://www.instagram.com/drownedinsound",
1291    TikTok:"https://www.tiktok.com/@drownedinsounduk",
1292    Facebook:"https://www.facebook.com/drownedinsound"
1293  };
1294  const ICONS={
1295    Podbean:`<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12 5c-4.418 0-8 3.582-8 8h2a6 6 0 0 1 12 0h2c0-4.418-3.582-8-8-8z"/><rect x="4.5" y="12" width="3" height="5" rx="1.2" ry="1.2" fill="currentColor"/><rect x="16.5" y="12" width="3" height="5" rx="1.2" ry="1.2" fill="currentColor"/><circle cx="12" cy="15" r="1.7" fill="currentColor"/></svg>`,
1296    YouTube:`<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M23.5 6.2a3.1 3.1 0 0 0-2.2-2.2C19.9 3.5 12 3.5 12 3.5s-7.9 0-9.3.5A3.1 3.1 0 0 0 .5 6.2 32.7 32.7 0 0 0 0 12c0 2 .1 3.9.5 5.8a3.1 3.1 0 0 0 2.2 2.2c1.4.4 9.3.5 9.3.5s7.9 0 9.3-.5a3.1 3.1 0 0 0 2.2-2.2c.3-1.9.5-3.8.5-5.8s-.2-3.9-.5-5.8zM9.7 15.6V8.4L15.6 12l-5.9 3.6z"/></svg>`,
1297    Instagram:`<svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="4" ry="4" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="12" cy="12" r="4.5" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="17.5" cy="6.5" r="1.5" fill="currentColor"/></svg>`,
1298    TikTok:`<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M21 8.1a6.9 6.9 0 0 1-4.3-1.5v8.4A8 8 0 1 1 9 7.3v3.4a4.6 4.6 0 1 0 3.3 4.4V2h3.3a6.9 6.9 0 0 0 4.4 4v2.1z"/></svg>`,
1299    Facebook:`<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.988H7.898v-2.89h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.772-1.63 1.562v1.875h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"/></svg>`
1300  };
1301
1302  const ready = (fn) =>
1303    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1304
1305  ready(function(){
1306    const wrap = document.querySelector('custom-footer .footer-socials-inner');
1307    if(!wrap) return;
1308
1309    const ensure=(label)=>{
1310      const existing =
1311        wrap.querySelector(`a.social[data-injected="${label}"]`) ||
1312        [...wrap.querySelectorAll('a.social')].find(a => (a.getAttribute('aria-label')||'') === label);
1313
1314      const a = existing || document.createElement('a');
1315      a.className='social';
1316      a.setAttribute('data-injected',label);
1317      a.setAttribute('aria-label',label);
1318      a.href=LINKS[label];
1319      a.target='_blank';
1320      a.rel='noopener noreferrer';
1321
1322      let inner=a.querySelector('.social-inner');
1323      if(!inner){
1324        inner=document.createElement('div');
1325        inner.className='social-inner';
1326        a.appendChild(inner);
1327      }
1328      inner.style.background='none';
1329      inner.innerHTML=ICONS[label];
1330      return a;
1331    };
1332
1333    const frag=document.createDocumentFragment();
1334    ['Podbean','YouTube','Instagram','TikTok','Facebook'].forEach(l=>frag.appendChild(ensure(l)));
1335    wrap.appendChild(frag);
1336  });
1337})();
1338</script>
1338
1339
1340<!-- ================================= Replace newsletter forms with Portal CTA ================================= -->
1341<script>
1342(function(){
1343  const ready = (fn) =>
1344    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1345
1346  ready(function(){
1347    const isMember=!!document.querySelector('a[href="#/portal/account"]');
1348    const selectors=[
1349      '.footer-newsletter','.footer-subscribe','.subscribe-cta','.home-subscribe',
1350      '.homepage .newsletter','.site-footer .subscribe','.newsletter',
1351      'form[data-members-form="subscribe"]'
1352    ];
1353    const nodes=new Set();
1354    selectors.forEach(s=>document.querySelectorAll(s).forEach(n=>nodes.add(n)));
1355    document.querySelectorAll('form').forEach(f=>{
1356      if(f.querySelector('input[type="email"], [data-members-email]')) nodes.add(f);
1357    });
1358
1359    nodes.forEach(node=>{
1360      if(isMember){
1361        if(node.tagName==='FORM') node.remove();
1362        else node.style.display='none';
1363        return;
1364      }
1365      if(node.querySelector('.dis-subscribe-btn')) return;
1366
1367      const btn=document.createElement('a');
1368      btn.href='#/portal/signup';
1369      btn.className='dis-subscribe-btn';
1370      btn.textContent='Subscribe now';
1371
1372      const wrap=document.createElement('div');
1373      wrap.style.textAlign='center';
1374      wrap.appendChild(btn);
1375
1376      if(node.tagName==='FORM') node.replaceWith(wrap);
1377      else { node.innerHTML=''; node.appendChild(wrap); }
1378    });
1379  });
1380})();
1381</script>
1381
1382
1383<!-- ================================= Footer legal links (above credits) ================================= -->
1384<style>
1385  .footer-credits{ font-size:.85rem; opacity:.85; }
1386  .footer-legal{
1387    display:flex;
1388    flex-wrap:wrap;
1389    gap:18px;
1390    justify-content:center;
1391    align-items:center;
1392    margin:14px 0 4px;
1393    font-size:.95rem;
1394    opacity:.9;
1395  }
1396  .footer-legal a{ color:var(--text-color,#fff); text-decoration:none; }
1397  .footer-legal a:hover,.footer-legal a:focus{ text-decoration:underline; }
1398</style>
1399<script>
1400(function(){
1401  const ready = (fn) =>
1402    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1403
1404  ready(function(){
1405    if(document.querySelector('.footer-legal')) return;
1406    const credits=document.querySelector('.footer-credits');
1407    const nav=document.createElement('nav');
1408    nav.className='footer-legal';
1409    nav.innerHTML=`<a href="/privacy">Privacy Policy</a><a href="/cookies">Cookie Policy</a><a href="/terms-of-service">Terms of Service</a>`;
1410    if(credits && credits.parentNode) credits.parentNode.insertBefore(nav,credits);
1411    else (document.querySelector('.footer-socials-inner')||document.querySelector('custom-footer')||document.querySelector('footer'))?.appendChild(nav);
1412  });
1413})();
1414</script>
1414
1415
1416<!-- ================================= Latest Stories — carousel scaffold ================================= -->
1417<style>
1418  .latest-stories{ position:relative; }
1419  .latest-stories[data-ls-ready] .ls-rail{
1420    display:flex !important;
1421    flex-wrap:nowrap !important;
1422    gap:var(--ls-gap);
1423    overflow-x:auto;
1424    overflow-y:visible;
1425    scroll-snap-type:x mandatory;
1426    scroll-behavior:smooth;
1427    -webkit-overflow-scrolling:touch;
1428    padding-bottom:8px;
1429    scrollbar-width:none;
1430    touch-action: pan-x pan-y;
1431  }
1432  .latest-stories[data-ls-ready] .ls-rail::-webkit-scrollbar{ display:none; height:0; }
1433  @media (max-width:920px){ .latest-stories[data-ls-ready] .ls-rail{ gap:var(--ls-gap-sm); } }
1434
1435  .latest-stories[data-ls-ready] .ls-item{
1436    flex:0 0 var(--ls-w) !important;
1437    max-width:var(--ls-w) !important;
1438    scroll-snap-align:start;
1439    box-shadow:var(--ls-match-shadow);
1440    border-radius:var(--ls-match-radius);
1441    background:var(--ls-match-bg);
1442    overflow:hidden;
1443    border:0 !important;
1444    outline:0 !important;
1445    margin:0 !important;
1446  }
1447  @media (max-width:920px){
1448    .latest-stories[data-ls-ready] .ls-item{
1449      flex-basis:var(--ls-w-sm) !important;
1450      max-width:var(--ls-w-sm) !important;
1451    }
1452  }
1453  .latest-stories[data-ls-ready] .ls-item > *{ border:0 !important; outline:0 !important; box-shadow:none !important; }
1454
1455  .latest-stories .ls-nav{
1456    position:absolute;
1457    inset-block-start:24px;
1458    inset-inline-end:max(24px, 2.5vw);
1459    display:inline-flex;
1460    gap:12px;
1461    z-index:3;
1462    pointer-events:auto;
1463  }
1464  @media (max-width:920px){
1465    .latest-stories .ls-nav{
1466      position:static;
1467      display:flex;
1468      justify-content:flex-end;
1469      gap:12px;
1470      margin:12px 0 18px;
1471    }
1472  }
1473  .latest-stories .ls-nav button{
1474    inline-size:48px;
1475    block-size:36px;
1476    padding:0 10px;
1477    border-radius:9px;
1478    border:1px solid rgba(255,255,255,.88);
1479    background:rgba(255,255,255,.06);
1480    color:var(--text-color,#fff);
1481    display:inline-flex;
1482    align-items:center;
1483    justify-content:center;
1484    transition:background .14s ease, transform .14s ease, opacity .12s ease;
1485    backdrop-filter:saturate(120%) blur(2px);
1486  }
1487  .latest-stories .ls-nav button:hover{ background:rgba(255,255,255,.12); transform:translateY(-1px); }
1488  .latest-stories .ls-nav button[disabled]{ opacity:.4; transform:none; }
1489  .latest-stories .ls-nav svg{ inline-size:18px; block-size:18px; display:block; }
1490
1491  .latest-stories [class*="posts"]{ margin-right: calc(48px * 2 + 24px); }
1492  @media (max-width:920px){ .latest-stories [class*="posts"]{ margin-right:0; } }
1493</style>
1494
1495<script>
1496(function(){
1497  const ready = (fn) =>
1498    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1499
1500  function enableMouseDrag(rail){
1501    // Mouse drag only (touch stays native swipe)
1502    let dragging=false, pid=null, startX=0, startY=0, startScroll=0;
1503
1504    rail.addEventListener('pointerdown', (e) => {
1505      if (e.pointerType !== 'mouse') return;
1506      if (e.button !== 0) return;
1507      dragging=false;
1508      pid=e.pointerId;
1509      startX=e.clientX||0;
1510      startY=e.clientY||0;
1511      startScroll=rail.scrollLeft;
1512    }, { passive:true });
1513
1514    rail.addEventListener('pointermove', (e) => {
1515      if (pid == null || e.pointerId !== pid) return;
1516      const dx=(e.clientX||0)-startX;
1517      const dy=(e.clientY||0)-startY;
1518
1519      if(!dragging){
1520        if (Math.abs(dx) > 7 && Math.abs(dx) > Math.abs(dy)){
1521          dragging=true;
1522          rail.setPointerCapture(pid);
1523        } else {
1524          return;
1525        }
1526      }
1527      e.preventDefault();
1528      rail.scrollLeft = startScroll - dx;
1529    }, { passive:false });
1530
1531    rail.addEventListener('pointerup', ()=>{ dragging=false; pid=null; });
1532    rail.addEventListener('pointercancel', ()=>{ dragging=false; pid=null; });
1533  }
1534
1535  function buildLatestCarousel(){
1536    const root=document.querySelector('.latest-stories');
1537    if(!root || root.dataset.lsReady) return null;
1538
1539    const prefer='.posts, .post-feed, .cards, .cards-grid, .grid, .row, .items, .feed';
1540    let rail=root.querySelector(prefer);
1541    const looksLikeCard=el=>el.matches('article, .post, [class*="post-card"], [class*="card"]');
1542
1543    if(!rail){
1544      const candidates=[...root.querySelectorAll(':scope *')];
1545      rail=candidates.find(el=>{
1546        const kids=[...el.children];
1547        const count=kids.filter(looksLikeCard).length;
1548        return count>=3 && getComputedStyle(el).display!=='none';
1549      })||root.firstElementChild||root;
1550    }
1551
1552    const direct=[...rail.children];
1553    const directCards=direct.filter(looksLikeCard);
1554    if(directCards.length){ directCards.forEach(el=>el.classList.add('ls-item')); }
1555    else { direct.forEach(w=>[...w.children].forEach(c=>{ if(looksLikeCard(c)) c.classList.add('ls-item'); })); }
1556
1557    let railEl=rail;
1558    if(![...railEl.children].some(c=>c.classList?.contains('ls-item'))){
1559      const wrapper=[...railEl.children].find(child=>child.querySelectorAll(':scope > .ls-item').length>=2);
1560      if(wrapper) railEl=wrapper;
1561    }
1562    railEl.classList.add('ls-rail');
1563
1564    if (!root.querySelector('.ls-nav')){
1565      const nav=document.createElement('div');
1566      nav.className='ls-nav';
1567      nav.innerHTML=`
1568        <button class="ls-prev" type="button" aria-label="Previous">
1569          <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M14.7 19.3a1 1 0 0 1-1.4 0l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 1 1 1.4 1.4L9.41 12l5.3 5.3a1 1 0 0 1 0 1.4z"/></svg>
1570        </button>
1571        <button class="ls-next" type="button" aria-label="Next">
1572          <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M9.3 4.7a1 1 0 0 1 1.4 0l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 1 1-1.4-1.4L14.59 12 9.3 6.7a1 1 0 0 1 0-1.4z"/></svg>
1573        </button>`;
1574      const postsCount=root.querySelector(':scope [class*="posts"]');
1575      if(postsCount && postsCount.parentNode) postsCount.insertAdjacentElement('afterend',nav);
1576      else root.insertAdjacentElement('afterbegin',nav);
1577
1578      const prevBtn=nav.querySelector('.ls-prev');
1579      const nextBtn=nav.querySelector('.ls-next');
1580      const step=(dir)=> railEl.scrollBy({left:Math.max(railEl.clientWidth*0.9,280)*dir, behavior:'smooth'});
1581      prevBtn.addEventListener('click',()=>step(-1));
1582      nextBtn.addEventListener('click',()=>step(1));
1583    }
1584
1585    // Shift+wheel horizontal helper (doesn't break touch)
1586    railEl.setAttribute('tabindex','0');
1587    railEl.addEventListener('wheel',e=>{
1588      if(!e.shiftKey) return;
1589      e.preventDefault();
1590      railEl.scrollBy({left:e.deltaY,behavior:'smooth'});
1591    },{passive:false});
1592
1593    enableMouseDrag(railEl);
1594
1595    root.dataset.lsReady='1';
1596    return { root, railEl };
1597  }
1598
1599  ready(buildLatestCarousel);
1600})();
1601</script>
1601
1602
1603<!-- ================================= Match Featured framing on Latest ================================= -->
1604<script>
1605(function(){
1606  const ready = (fn) =>
1607    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1608
1609  function syncFeaturedFraming(){
1610    const featured=document.querySelector('.featured-stories');
1611    const latestRoot=document.querySelector('.latest-stories');
1612    if(!featured || !latestRoot) return;
1613    const card=featured.querySelector('article, .post, [class*="post-card"], [class*="card"]');
1614    if(!card) return;
1615
1616    const cs=getComputedStyle(card);
1617    const radius=cs.borderRadius && cs.borderRadius!=='0px' ? cs.borderRadius : '8px';
1618    const bg=cs.backgroundColor || 'transparent';
1619    const borderColor = cs.borderColor && cs.borderColor!=='rgba(0, 0, 0, 0)' ? cs.borderColor : 'rgba(255,255,255,.16)';
1620    const shadow=(cs.boxShadow && cs.boxShadow!=='none') ? cs.boxShadow : `inset 0 0 0 1px ${borderColor}`;
1621
1622    latestRoot.style.setProperty('--ls-match-radius', radius);
1623    latestRoot.style.setProperty('--ls-match-bg', bg);
1624    latestRoot.style.setProperty('--ls-match-shadow', shadow);
1625  }
1626
1627  ready(syncFeaturedFraming);
1628  window.addEventListener('load',syncFeaturedFraming,{once:true});
1629})();
1630</script>
1630
1631
1632<!-- ================================= Podcasts (Podbean + YouTube) – carousel builders ================================= -->
1633<style>
1634  .dis-podcasts-section[data-yt-ready] .ls-rail,
1635  .dis-podcasts-section[data-pb-ready] .ls-rail{
1636    display:flex !important;
1637    flex-wrap:nowrap !important;
1638    overflow-x:auto;
1639    overflow-y:visible;
1640    scroll-snap-type:x mandatory;
1641    scroll-behavior:smooth;
1642    -webkit-overflow-scrolling:touch;
1643    padding-bottom:8px;
1644    scrollbar-width:none;
1645    touch-action: pan-x pan-y;
1646  }
1647  .dis-podcasts-section .ls-rail::-webkit-scrollbar{ display:none; height:0; }
1648
1649  @media (max-width:920px){
1650    .dis-podcasts-section[data-yt-ready] .ls-rail{ gap:var(--yt-gap-sm); }
1651    .dis-podcasts-section[data-pb-ready] .ls-rail{ gap:var(--pb-gap-sm); }
1652  }
1653
1654  .dis-podcasts-section[data-yt-ready] .ls-item{
1655    flex:0 0 var(--yt-w) !important;
1656    max-width:var(--yt-w) !important;
1657    scroll-snap-align:start;
1658    box-shadow:var(--ls-match-shadow);
1659    border-radius:var(--ls-match-radius);
1660    background:var(--ls-match-bg);
1661    overflow:hidden;
1662    border:0 !important;
1663    outline:0 !important;
1664    margin:0 !important;
1665  }
1666  .dis-podcasts-section[data-pb-ready] .ls-item{
1667    flex:0 0 var(--pb-w) !important;
1668    max-width:var(--pb-w) !important;
1669    scroll-snap-align:start;
1670    box-shadow: inset 0 0 0 1px rgba(255,255,255,.22) !important;
1671    border-radius:var(--ls-match-radius,12px);
1672    background:var(--ls-match-bg,transparent);
1673    overflow:hidden;
1674    border:0 !important;
1675    outline:0 !important;
1676    margin:0 !important;
1677  }
1678  @media (max-width:920px){
1679    .dis-podcasts-section[data-yt-ready] .ls-item{ flex-basis:var(--yt-w-sm) !important; max-width:var(--yt-w-sm) !important; }
1680    .dis-podcasts-section[data-pb-ready] .ls-item{ flex-basis:var(--pb-w-sm) !important; max-width:var(--pb-w-sm) !important; }
1681  }
1682
1683  .yt-card{ display:block; color:inherit; text-decoration:none; }
1684  .yt-thumb{ aspect-ratio:16/9; width:100%; display:block; background:#111; object-fit:cover; object-position:center; }
1685  .yt-meta{ padding:12px 14px 14px; }
1686  .yt-title{ font-weight:800; line-height:1.2; font-size:clamp(1rem,1.1vw+.8rem,1.25rem); font-family:var(--dis-header-font); }
1687
1688  .dis-podcasts-section .pb-card{ position:relative; display:block; aspect-ratio:16/9; text-decoration:none; color:inherit; }
1689  .dis-podcasts-section .pb-thumb{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1); transition:transform .28s ease; }
1690  .dis-podcasts-section .pb-card:hover .pb-thumb{ transform:scale(1.03); }
1691  .dis-podcasts-section .pb-card::before, .dis-podcasts-section .pb-card::after{ content:none !important; }
1692
1693  .dis-podcasts-section .pb-info{ padding:12px 14px 14px; display:grid; gap:6px; }
1694  .dis-podcasts-section .pb-title{
1695    font-weight:800;
1696    line-height:1.18;
1697    font-size:clamp(1rem,1.1vw+.8rem,1.25rem);
1698    font-family:var(--dis-header-font);
1699    display:-webkit-box;
1700    -webkit-line-clamp:2;
1701    -webkit-box-orient:vertical;
1702    overflow:hidden;
1703    text-overflow:ellipsis;
1704  }
1705  .dis-podcasts-section .pb-time{ opacity:.8; font-size:.95rem; }
1706
1707  .dis-podcasts-section .pb-nav{
1708    position:absolute;
1709    inset-block-start:24px;
1710    inset-inline-end:max(24px, 2.5vw);
1711    display:inline-flex;
1712    gap:12px;
1713    z-index:3;
1714    pointer-events:auto;
1715  }
1716  @media (max-width:920px){
1717    .dis-podcasts-section .pb-nav{ position:static; justify-content:flex-end; margin:12px 0 10px; }
1718  }
1719  .dis-podcasts-section .pb-nav button{
1720    inline-size:48px; block-size:36px; padding:0 10px; border-radius:9px;
1721    border:1px solid rgba(255,255,255,.88);
1722    background:rgba(255,255,255,.06);
1723    color:var(--text-color,#fff);
1724    display:inline-flex; align-items:center; justify-content:center;
1725    transition:background .14s ease, transform .14s ease, opacity .12s ease;
1726    backdrop-filter:saturate(120%) blur(2px);
1727  }
1728  .dis-podcasts-section .pb-nav button:hover{ background:rgba(255,255,255,.12); transform:translateY(-1px); }
1729  .dis-podcasts-section .pb-nav button[disabled]{ opacity:.4; transform:none; }
1730  .dis-podcasts-section .pb-nav svg{ inline-size:18px; block-size:18px; display:block; }
1731
1732  .dis-podcasts-section .pb-card, .dis-podcasts-section .yt-card{ aspect-ratio:1/1 !important; }
1733  .dis-podcasts-section .pb-thumb, .dis-podcasts-section .yt-thumb{ object-fit:cover !important; object-position:top center !important; }
1734
1735  .dis-podcasts-section{
1736    --pod-scale: 0.9;
1737    --pb-w: calc(var(--ls-w) * var(--pod-scale));
1738    --pb-w-sm: calc(var(--ls-w-sm) * var(--pod-scale));
1739    --yt-w: calc(var(--ls-w) * var(--pod-scale));
1740    --yt-w-sm: calc(var(--ls-w-sm) * var(--pod-scale));
1741  }
1742
1743  .dis-podcasts-section .pb-title[role="link"]{ cursor:pointer; }
1744  .dis-podcasts-section .pb-title[role="link"]:hover,
1745  .dis-podcasts-section .pb-title[role="link"]:focus{ text-decoration:underline; }
1746</style>
1747
1748<script>
1749(function(){
1750  const ready = (fn) =>
1751    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1752
1753  const MAX_ITEMS=12;
1754  const FEEDS=[
1755    'https://drownedinsound.podbean.com/feed.xml',
1756    'https://feed.podbean.com/drownedinsound/feed.xml'
1757  ];
1758
1759  const FALLBACK_IFRAME = `
1760    <div class="pb-fallback" style="margin-top:8px;">
1761      <div style="position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);background:var(--ls-match-bg);">
1762        <iframe title="Drowned in Sound" allowtransparency="true" style="position:absolute;inset:0;border:0;width:100%;height:100%;" scrolling="no" loading="lazy" allowfullscreen
1763          src="https://www.podbean.com/player-v2/?i=uy8kj-1411062-pbblog-playlist&share=1&download=1&fonts=Arial&skin=1b1b1b&font-color=auto&rtl=0&logo_link=episode_page&btn-skin=fb0584&size=315"></iframe>
1764      </div>
1765    </div>`;
1766
1767  const h=(t,a={},k=[])=>{
1768    const el=document.createElement(t);
1769    for(const [kk,v] of Object.entries(a)){
1770      if(kk==='class') el.className=v;
1771      else if(kk==='html') el.innerHTML=v;
1772      else el.setAttribute(kk,v);
1773    }
1774    (Array.isArray(k)?k:[k]).forEach(c=> c!=null && el.appendChild(typeof c==='string'?document.createTextNode(c):c));
1775    return el;
1776  };
1777
1778  const fmtDate=s=> s? new Date(s).toLocaleDateString(undefined,{year:'numeric',month:'short',day:'numeric'}) : '';
1779
1780  async function tryFetchFeed(){
1781    for(const url of FEEDS){
1782      try{
1783        const r=await fetch(url);
1784        if(!r.ok) continue;
1785        const xml=new DOMParser().parseFromString(await r.text(),'application/xml');
1786        const items=[...xml.querySelectorAll('item')].slice(0,MAX_ITEMS).map(it=>{
1787          const title=it.querySelector('title')?.textContent?.trim()||'Untitled';
1788          const link=it.querySelector('link')?.textContent?.trim()||'#';
1789          const pub=it.querySelector('pubDate')?.textContent||it.querySelector('published')?.textContent||'';
1790          const itunesImg=it.querySelector('itunes\\:image, image')?.getAttribute('href');
1791          const mediaThumb=it.querySelector('media\\:thumbnail')?.getAttribute('url');
1792          const img=itunesImg || mediaThumb || '';
1793          return {title,link,image:img,date:pub};
1794        }).filter(ep=>ep.link);
1795        if(items.length) return items;
1796      }catch(e){ /* try next */ }
1797    }
1798    return null;
1799  }
1800
1801  function enableMouseDrag(rail){
1802    let dragging=false, pid=null, startX=0, startY=0, startScroll=0;
1803
1804    rail.addEventListener('pointerdown', (e) => {
1805      if (e.pointerType !== 'mouse') return;
1806      if (e.button !== 0) return;
1807      dragging=false;
1808      pid=e.pointerId;
1809      startX=e.clientX||0;
1810      startY=e.clientY||0;
1811      startScroll=rail.scrollLeft;
1812    }, { passive:true });
1813
1814    rail.addEventListener('pointermove', (e) => {
1815      if (pid == null || e.pointerId !== pid) return;
1816      const dx=(e.clientX||0)-startX;
1817      const dy=(e.clientY||0)-startY;
1818
1819      if(!dragging){
1820        if (Math.abs(dx) > 7 && Math.abs(dx) > Math.abs(dy)){
1821          dragging=true;
1822          rail.setPointerCapture(pid);
1823        } else {
1824          return;
1825        }
1826      }
1827      e.preventDefault();
1828      rail.scrollLeft = startScroll - dx;
1829    }, { passive:false });
1830
1831    rail.addEventListener('pointerup', ()=>{ dragging=false; pid=null; });
1832    rail.addEventListener('pointercancel', ()=>{ dragging=false; pid=null; });
1833  }
1834
1835  function buildCarousel(stack, items){
1836    stack.querySelector('.pb-strip')?.remove();
1837
1838    const strip=h('div',{class:'pb-strip'});
1839    const nav=h('div',{class:'pb-nav',html:`
1840      <button class="pb-prev" type="button" aria-label="Previous">
1841        <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M14.7 19.3a1 1 0 0 1-1.4 0l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 1 1 1.4 1.4L9.41 12l5.3 5.3a1 1 0 0 1 0 1.4z"/></svg>
1842      </button>
1843      <button class="pb-next" type="button" aria-label="Next">
1844        <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M9.3 4.7a1 1 0 0 1 1.4 0l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 1 1-1.4-1.4L14.59 12 9.3 6.7a1 1 0 0 1 0-1.4z"/></svg>
1845      </button>`});
1846
1847    const rail=h('div',{class:'ls-rail'});
1848
1849    items.forEach(ep=>{
1850      const a=h('article',{class:'ls-item'});
1851
1852      /* IMPORTANT FIX: correct target + rel at creation time */
1853      const link=h('a',{
1854        class:'pb-card',
1855        href:ep.link,
1856        target:'_blank',
1857        rel:'noopener noreferrer'
1858      });
1859
1860      link.appendChild(h('img',{class:'pb-thumb',src:ep.image||'https://i.imgur.com/8Km9tLL.png',alt:ep.title}));
1861
1862      const info=h('div',{class:'pb-info'},[
1863        h('div',{class:'pb-title'},ep.title),
1864        h('div',{class:'pb-time'},fmtDate(ep.date))
1865      ]);
1866
1867      a.appendChild(link);
1868      a.appendChild(info);
1869      rail.appendChild(a);
1870    });
1871
1872    strip.appendChild(nav);
1873    strip.appendChild(rail);
1874
1875    const titleEl=stack.querySelector('.dis-podcast-title, h1, h2, h3, [class*="title"]');
1876    (titleEl||stack).insertAdjacentElement('afterend',strip);
1877
1878    const root=stack.closest('.dis-podcasts-section')||stack;
1879    root.setAttribute('data-pb-ready','1');
1880
1881    const prevBtn=nav.querySelector('.pb-prev');
1882    const nextBtn=nav.querySelector('.pb-next');
1883
1884    const maxScroll=()=>Math.max(0, rail.scrollWidth - rail.clientWidth);
1885    const atStart=()=>rail.scrollLeft<=2;
1886    const atEnd=()=>(maxScroll()-rail.scrollLeft)<=2;
1887
1888    const update=()=>{
1889      prevBtn.disabled=atStart();
1890      nextBtn.disabled=atEnd();
1891      nav.style.display=(maxScroll()>2)?'inline-flex':'none';
1892    };
1893
1894    const step=dir=>rail.scrollBy({left:Math.max(rail.clientWidth*.9,280)*dir,behavior:'smooth'});
1895
1896    prevBtn.addEventListener('click',()=>step(-1));
1897    nextBtn.addEventListener('click',()=>step(1));
1898
1899    rail.setAttribute('tabindex','0');
1900    rail.addEventListener('keydown',e=>{
1901      if(e.key==='ArrowLeft'){e.preventDefault();step(-1);}
1902      if(e.key==='ArrowRight'){e.preventDefault();step(1);}
1903    });
1904
1905    rail.addEventListener('wheel',e=>{
1906      if(!e.shiftKey) return;
1907      e.preventDefault();
1908      rail.scrollBy({left:e.deltaY,behavior:'smooth'});
1909    },{passive:false});
1910
1911    enableMouseDrag(rail);
1912
1913    if ('ResizeObserver' in window) new ResizeObserver(update).observe(rail);
1914    rail.addEventListener('scroll',update,{passive:true});
1915    window.addEventListener('resize',()=>requestAnimationFrame(update));
1916    requestAnimationFrame(update);
1917
1918    // Make titles clickable (kept exactly as before)
1919    document.querySelectorAll('.dis-podcasts-section .ls-rail .ls-item').forEach(item=>{
1920      const link=item.querySelector('a.pb-card');
1921      const title=item.querySelector('.pb-title');
1922      if(!link || !title) return;
1923      if(title.dataset.clickBound) return;
1924
1925      title.dataset.clickBound='1';
1926      title.setAttribute('role','link');
1927      title.setAttribute('tabindex','0');
1928
1929      const open=()=> window.open(link.href,'_blank','noopener');
1930      title.addEventListener('click',open);
1931      title.addEventListener('keydown',e=>{
1932        if(e.key==='Enter'||e.key===' '){ e.preventDefault(); open(); }
1933      });
1934    });
1935  }
1936
1937  ready(async function(){
1938    const stack=document.querySelector('.dis-podcasts-section .dis-podcast-stack');
1939    if(!stack) return;
1940
1941    const items = await tryFetchFeed();
1942    if(items && items.length) buildCarousel(stack, items);
1943    else {
1944      if(!stack.querySelector('.pb-fallback')){
1945        const wrap=document.createElement('div');
1946        wrap.innerHTML = FALLBACK_IFRAME;
1947        stack.appendChild(wrap.firstElementChild);
1948      }
1949    }
1950  });
1951})();
1952</script>
1952
1953
1954<!-- ================================= Open specific support link in new tab ================================= -->
1955<script>
1956(function(){
1957  const ready = (fn) =>
1958    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1959
1960  ready(function() {
1961    var specificLink = document.querySelector('a[href="https://www.drownedinsound.org/#/portal/support"]');
1962    if (specificLink) {
1963      specificLink.setAttribute('target','_blank');
1964      specificLink.setAttribute('rel','noopener noreferrer');
1965    }
1966  });
1967})();
1968</script>
1968
1969
1970<!-- ================================= Podcasts page: replace “[embed player]” with Podbean iframe ================================= -->
1971<style>
1972  .podbean-embed{ position:relative;width:100%;max-width:100%;margin:16px 0; }
1973  .podbean-embed iframe{ display:block;width:100%;height:450px;border:0; }
1974</style>
1975<script>
1976(function(){
1977  const ready = (fn) =>
1978    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
1979
1980  ready(function(){
1981    if(!/^\/podcasts\/?$/.test(location.pathname)) return;
1982    if(document.querySelector('.podbean-embed,[data-name="pb-iframe-player"]')) return;
1983
1984    const IFRAME_HTML = '<iframe title="Drowned in Sound" allowtransparency="true" height="450" width="100%" style="border:none;min-width:min(100%,430px);height:315px;" scrolling="no" data-name="pb-iframe-player" src="https://www.podbean.com/player-v2/?i=uy8kj-1411062-pbblog-playlist&share=1&download=1&fonts=Arial&skin=1b1b1b&font-color=&rtl=0&logo_link=&btn-skin=fb0584&size=315" loading="lazy" allowfullscreen></iframe>';
1985
1986    const roots=document.querySelectorAll('.gh-content, .post-content, .page-content, article, main, .content, body');
1987    let replaced=false;
1988
1989    for(const root of roots){
1990      const target=[...root.querySelectorAll('p,div,span,em,strong,h1,h2,h3,h4,h5,li')]
1991        .find(el=>(el.textContent||'').trim().toLowerCase()==='[embed player]');
1992      if(target){
1993        target.outerHTML='<div class="podbean-embed">'+IFRAME_HTML+'</div>';
1994        replaced=true;
1995        break;
1996      }
1997    }
1998
1999    if(!replaced){
2000      const walker=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{
2001        acceptNode:(n)=>/\[embed player\]/i.test(n.nodeValue||'')?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP
2002      });
2003      const node=walker.nextNode();
2004      if(node && node.parentNode){
2005        const wrap=document.createElement('div');
2006        wrap.className='podbean-embed';
2007        wrap.innerHTML=IFRAME_HTML;
2008        node.parentNode.replaceChild(wrap,node);
2009        replaced=true;
2010      }
2011    }
2012
2013    if(!replaced){
2014      const fall=document.querySelector('.gh-content, .post-content, .page-content, article, main, .content')||document.body;
2015      const wrap=document.createElement('div');
2016      wrap.className='podbean-embed';
2017      wrap.innerHTML=IFRAME_HTML;
2018      fall.appendChild(wrap);
2019    }
2020  });
2021})();
2022</script>
2022
2023
2024<!-- ================================= DIS Infinite Loader v7 — HP single-mount + strong dedupe ================================= -->
2025<style>
2026  .pagination, .load-more, a[rel="next"], button[rel="next"] { display:none !important; }
2027
2028  .dis-inf-sentinel { width:100%; height:1px; display:block; }
2029  .dis-inf-spinner {
2030    display:none; width:22px; height:22px; margin:18px auto;
2031    border-radius:50%; border:3px solid rgba(255,255,255,.25); border-top-color:#fff;
2032    animation:disSpin .8s linear infinite;
2033  }
2034  .dis-inf-sentinel[data-loading="1"] .dis-inf-spinner { display:block; }
2035  @keyframes disSpin { to { transform: rotate(360deg); } }
2036</style>
2037
2038<style>
2039/* Only the replacement tag-list control. Homepage/global typography is untouched. */
2040#dis-tag-pagination {
2041    display: flex;
2042    flex-direction: column;
2043    align-items: center;
2044    gap: 16px;
2045    padding: 32px 24px;
2046    text-align: center;
2047    border-top: 1px solid var(--text-color);
2048}
2049#dis-tag-pagination button {
2050    min-height: 48px;
2051    padding: 12px 28px;
2052    border: 1px solid var(--text-color);
2053    background: transparent;
2054    color: var(--text-color);
2055    cursor: pointer;
2056}
2057#dis-tag-pagination button:hover:not(:disabled) {
2058    background: var(--text-color);
2059    color: var(--background-color);
2060}
2061#dis-tag-pagination button:disabled { opacity: .55; cursor: wait; }
2062#dis-tag-pagination p { margin: 0; font-size: 16px; line-height: 1.5; }
2063#dis-tag-pagination a { color: var(--text-color); text-decoration: underline; }
2064#dis-tag-pagination :is(a,button):focus-visible { outline: 2px solid #f307b0; outline-offset: 4px; }
2065#dis-tag-pagination [hidden] { display: none !important; }
2066
2067</style>
2068<script>
2069// Candidate for the existing footer injection, NOT deployed or added to the theme.
2070(function () {
2071    'use strict';
2072
2073    function nextPageURL(value, current) {
2074        if (!value) return null;
2075        const here = new URL(current);
2076        const route = here.pathname.match(/^(.*\/tag\/[^/]+\/)(?:page\/(\d+)\/)?$/);
2077        if (!route) return null;
2078        const next = new URL(value, here);
2079        const page = Number(route[2] || 1) + 1;
2080        if (next.origin !== here.origin || next.username || next.password || next.search || next.hash ||
2081            !['http:', 'https:'].includes(next.protocol) ||
2082            next.pathname !== `${route[1]}page/${page}/`) {
2083            throw new Error('Unexpected listing page');
2084        }
2085        return next.href;
2086    }
2087
2088    function mount(doc) {
2089        const grid = doc.querySelector('#tag-stories-grid');
2090        if (!grid || !/\/tag\/[^/]+\/(?:page\/\d+\/)?$/.test(doc.location.pathname)) return false;
2091        if (doc.querySelector('#dis-tag-pagination')) return true;
2092
2093        const view = doc.defaultView;
2094        const nav = doc.createElement('nav');
2095        nav.id = 'dis-tag-pagination';
2096        nav.setAttribute('aria-label', 'More articles');
2097        const button = doc.createElement('button');
2098        button.type = 'button';
2099        button.className = 'button';
2100        button.textContent = 'Load more';
2101        button.setAttribute('aria-controls', grid.id);
2102        const status = doc.createElement('p');
2103        status.setAttribute('role', 'status');
2104        status.setAttribute('aria-live', 'polite');
2105        status.setAttribute('aria-atomic', 'true');
2106        const fallback = doc.createElement('a');
2107        fallback.textContent = 'Open next page';
2108        fallback.hidden = true;
2109        nav.append(button, status, fallback);
2110        grid.insertAdjacentElement('afterend', nav);
2111
2112        // The old custom element stays out of the interaction path; no competing handler.
2113        const old = grid.parentElement.querySelector('custom-pagination');
2114        if (old) old.remove();
2115        const cardSelector = ':scope > custom-card.card';
2116        const cardsIn = node => Array.from(node.querySelectorAll(cardSelector));
2117        const cardURL = card => {
2118            const link = card.querySelector('a.card-title-link[href]');
2119            if (!link) throw new Error('Article link missing');
2120            const url = new URL(link.getAttribute('href'), doc.location.href);
2121            if (url.origin !== doc.location.origin || !['http:', 'https:'].includes(url.protocol)) {
2122                throw new Error('Unexpected article link');
2123            }
2124            return url.origin + url.pathname;
2125        };
2126        const seen = new Set(cardsIn(grid).map(cardURL));
2127        let current = doc.location.href;
2128        let next;
2129        let busy = false;
2130        try {
2131            next = nextPageURL(doc.querySelector('link[rel="next"]')?.getAttribute('href'), current);
2132        } catch (_) {
2133            button.hidden = true;
2134            status.textContent = 'More articles are unavailable. Please reload this page.';
2135            return true; // Never fall back to the automatic loader on configuration errors.
2136        }
2137        const update = () => {
2138            button.hidden = !next;
2139            button.disabled = busy;
2140            button.textContent = busy ? 'Loading…' : 'Load more';
2141            grid.setAttribute('aria-busy', String(busy));
2142            if (next) fallback.href = next;
2143        };
2144        status.textContent = next ? 'More articles load only when you choose.' : 'You have reached the end of this listing.';
2145        update();
2146
2147        button.addEventListener('click', async () => {
2148            if (busy || !next) return;
2149            busy = true;
2150            fallback.hidden = true;
2151            status.textContent = 'Loading more articles…';
2152            update();
2153            const controller = new view.AbortController();
2154            const timer = view.setTimeout(() => controller.abort(), 15000);
2155            try {
2156                const response = await view.fetch(next, {
2157                    method: 'GET', credentials: 'omit', redirect: 'error',
2158                    referrerPolicy: 'no-referrer', signal: controller.signal
2159                });
2160                if (!response.ok) throw new Error('Listing unavailable');
2161                const incoming = new view.DOMParser().parseFromString(await response.text(), 'text/html');
2162                const incomingGrid = incoming.querySelector('#tag-stories-grid');
2163                const cards = incomingGrid ? cardsIn(incomingGrid) : [];
2164                if (!cards.length) throw new Error('Listing missing');
2165                // Validate the complete response before mutating the displayed grid.
2166                const following = nextPageURL(incoming.querySelector('link[rel="next"]')?.getAttribute('href'), next);
2167                const pending = new Set();
2168                const fresh = cards.filter(card => {
2169                    const key = cardURL(card);
2170                    if (seen.has(key) || pending.has(key)) return false;
2171                    pending.add(key);
2172                    return true;
2173                });
2174                const fragment = doc.createDocumentFragment();
2175                let firstNewLink;
2176                fresh.forEach(card => {
2177                    // Only import the article cards, never page scripts or active embeds.
2178                    const copy = doc.importNode(card, true);
2179                    copy.querySelectorAll('script,iframe,object,embed,form,link,style').forEach(el => el.remove());
2180                    [copy, ...copy.querySelectorAll('*')].forEach(el => {
2181                        Array.from(el.attributes).forEach(attr => {
2182                            if (/^on/i.test(attr.name) || attr.name === 'srcdoc') el.removeAttribute(attr.name);
2183                        });
2184                    });
2185                    if (!firstNewLink) firstNewLink = copy.querySelector('a.card-title-link');
2186                    fragment.appendChild(copy);
2187                });
2188                grid.appendChild(fragment);
2189                pending.forEach(key => seen.add(key));
2190                current = next;
2191                next = following;
2192                status.textContent = `${fresh.length} more articles loaded. ${cardsIn(grid).length} shown.` +
2193                    (!next ? ' You have reached the end of this listing.' : '');
2194                if (typeof view.calculateTextHeight === 'function') view.calculateTextHeight(['tag-stories-grid']);
2195                if (firstNewLink) firstNewLink.focus({preventScroll: true});
2196                else if (!next) { status.tabIndex = -1; status.focus({preventScroll: true}); }
2197            } catch (_) {
2198                status.textContent = 'Could not load more articles. Try again, or open the next page.';
2199                fallback.hidden = false; // The URL is unchanged: retries cannot silently skip a page.
2200            } finally {
2201                view.clearTimeout(timer);
2202                busy = false;
2203                update();
2204            }
2205        });
2206        return true;
2207    }
2208
2209    if (typeof module === 'object' && module.exports) module.exports = {nextPageURL, mount};
2210    else window.DiSManualTagPagination = {mount};
2211})();
2212
2213
2214(function(){
2215  if (window.__DIS_GLOBAL_V7__) return;
2216  window.__DIS_GLOBAL_V7__ = true;
2217
2218  var onReady = function (fn){
2219    if (document.readyState !== 'loading') fn();
2220    else document.addEventListener('DOMContentLoaded', fn, {once:true});
2221  };
2222
2223  function $(sel, root){ return (root||document).querySelector(sel); }
2224  function $all(sel, root){ return Array.prototype.slice.call((root||document).querySelectorAll(sel)); }
2225  function looksLikeCard(el){ return el && el.matches('article, .post, [class*="post-card"], [class*="gh-card"], [class*="card"]'); }
2226
2227  function canonKey(href){
2228    try{
2229      var u=new URL(href, location.origin);
2230      var host=(u.hostname||'').toLowerCase().replace(/^www\./,'');
2231      var path=(u.pathname||'/').replace(/\/+/g,'/').replace(/\/amp\/?$/i,'/').toLowerCase();
2232      return host + path;
2233    }catch(e){ return ''; }
2234  }
2235
2236  function primaryLinkFromCard(card){
2237    var candidates = card.querySelectorAll('a[rel="bookmark"], a.post-card-content-link, h2 a, h3 a, a[href]');
2238    for (var i=0;i<candidates.length;i++){
2239      var a = candidates[i]; var href = a.getAttribute('href') || '';
2240      var u; try{ u = new URL(href, location.origin); }catch(e){ continue; }
2241      var p = (u.pathname||'').replace(/\/+$/,'/').toLowerCase();
2242      var h = (u.hostname||'').toLowerCase().replace(/^www\./,'');
2243      if (!p || p==='/' ) continue;
2244      if (h && h!==location.hostname.toLowerCase().replace(/^www\./,'')) continue;
2245      if (p.startsWith('/tag/') || p.startsWith('/author/') || p.startsWith('/page/') || p.startsWith('/search') || p.startsWith('/community') || p.startsWith('/topic/') || p.startsWith('/category/') || p.startsWith('/rss')) continue;
2246      return u.href;
2247    }
2248    return null;
2249  }
2250
2251  function findFeed(root){
2252    root = root || document;
2253
2254    var rail = $('.latest-stories .ls-rail', root);
2255    if (rail) return rail;
2256
2257    var candidates = $all('.post-feed, .cards, .cards-grid, .gh-feed, .grid, .items, .feed, main, .content, section', root);
2258    var best=null, score=0;
2259
2260    candidates.forEach(function(el){
2261      var kids = $all(':scope > *', el);
2262      var count = kids.filter(looksLikeCard).length;
2263      if (count>=2 && count>score){ score=count; best=el; }
2264    });
2265
2266    if (!best){
2267      var cards = $all('article, .post, [class*="post-card"], [class*="gh-card"], [class*="card"]', root);
2268      if (cards.length>=2) best = cards[0].parentElement;
2269    }
2270    return best;
2271  }
2272
2273  function extractCards(doc){
2274    var feed = findFeed(doc);
2275    if (!feed) return [];
2276    var direct = $all(':scope > *', feed).filter(looksLikeCard);
2277    return direct.length ? direct : $all('article, .post, [class*="post-card"], [class*="gh-card"], [class*="card"]', feed);
2278  }
2279
2280  function ensureSlidesIntoLatest(targetFeed){
2281    var root = $('.latest-stories');
2282    if (!root || !root.dataset.lsReady) return;
2283    $all(':scope > *', targetFeed).forEach(function(el){ if (looksLikeCard(el)) el.classList.add('ls-item'); });
2284  }
2285
2286  function splitPath(pathname){
2287    var m = pathname.match(/^(.*?)(?:\/page\/(\d+)\/?)?$/);
2288    return {
2289      base: (m ? m[1] : pathname).replace(/\/?$/,'/'),
2290      page: m && m[2] ? parseInt(m[2],10) : 1
2291    };
2292  }
2293
2294  function nextRelFrom(doc){
2295    var ln = doc.querySelector && doc.querySelector('link[rel="next"]');
2296    if (ln && ln.href) return ln.href;
2297    var a = doc.querySelector && doc.querySelector('.pagination a[rel="next"], a[aria-label*="Next" i], a.next, .load-more a');
2298    return (a && a.href) ? a.href : null;
2299  }
2300
2301  function mountInfinite(scopeDoc){
2302    if (window.__DIS_INF_MOUNTED__) return;
2303    window.__DIS_INF_MOUNTED__ = true;
2304
2305    var scope = scopeDoc || document;
2306    var feed  = findFeed(scope);
2307    if (!feed) return;
2308
2309    var sentinel = (function(){
2310      var s = feed.parentNode.querySelector('.dis-inf-sentinel');
2311      if (s) return s;
2312      s = document.createElement('div');
2313      s.className = 'dis-inf-sentinel';
2314      s.innerHTML = '<div class="dis-inf-spinner" aria-hidden="true"></div>';
2315      feed.parentNode.appendChild(s);
2316      return s;
2317    })();
2318
2319    function setLoading(v){ if (!sentinel) return; if (v) sentinel.setAttribute('data-loading','1'); else sentinel.removeAttribute('data-loading'); }
2320    function hideSentinel(){ if (sentinel) sentinel.style.display='none'; }
2321
2322    var seen = new Set();
2323    $all('article, .post, [class*="post-card"], [class*="gh-card"], [class*="card"]', document).forEach(function(c){
2324      var href = primaryLinkFromCard(c);
2325      if (href) seen.add(canonKey(href));
2326    });
2327
2328    var baseInfo = splitPath(scope.location ? scope.location.pathname : location.pathname);
2329    var base = baseInfo.base;
2330    var currentPage = baseInfo.page;
2331    var nextURL = nextRelFrom(scope) || (location.origin + base + 'page/' + (currentPage + 1) + '/');
2332
2333    var busy=false, done=false;
2334    var missRuns=0;
2335    var MAX_EMPTY_RUNS=2;
2336    var PAGE_HARD_CAP=1000;
2337
2338    function appendCards(cards){
2339      var appended=0;
2340      if (!cards || !cards.length) return 0;
2341
2342      var frag = document.createDocumentFragment();
2343      cards.forEach(function(c){
2344        var href = primaryLinkFromCard(c);
2345        if (!href) return;
2346        var key = canonKey(href);
2347        if (seen.has(key)) return;
2348        seen.add(key);
2349        frag.appendChild(document.importNode(c, true));
2350        appended++;
2351      });
2352
2353      if (appended){ feed.appendChild(frag); ensureSlidesIntoLatest(feed); }
2354      return appended;
2355    }
2356
2357    function inferNextEnumerated(url){
2358      try{
2359        var u = new URL(url || (location.origin + base), location.origin);
2360        var bits = splitPath(u.pathname);
2361        var nextN = (bits.page || 1) + 1;
2362        return location.origin + bits.base + 'page/' + nextN + '/';
2363      }catch(e){ return null; }
2364    }
2365
2366    function loadNext(){
2367      if (busy || done) return;
2368      busy = true; setLoading(true);
2369
2370      if (!nextURL) nextURL = inferNextEnumerated(location.origin + base + 'page/' + (currentPage+1) + '/');
2371
2372      fetch(nextURL, { credentials:'same-origin' })
2373        .then(function(r){
2374          if (!r.ok) throw new Error(r.status);
2375          return r.text();
2376        })
2377        .then(function(html){
2378          var doc = new DOMParser().parseFromString(html, 'text/html');
2379          var got = appendCards(extractCards(doc));
2380          var rel = nextRelFrom(doc);
2381          nextURL = rel || inferNextEnumerated(nextURL);
2382          if (got>0){ missRuns=0; } else { missRuns++; }
2383          if (missRuns >= MAX_EMPTY_RUNS) { done=true; hideSentinel(); }
2384        })
2385        .catch(function(){
2386          missRuns++;
2387          if (missRuns >= MAX_EMPTY_RUNS){ done=true; hideSentinel(); }
2388          else { nextURL = inferNextEnumerated(nextURL); }
2389        })
2390        .finally(function(){ busy=false;
2390 setLoading(false); });
2391    }
2392
2393    loadNext();
2394
2395    var io = new IntersectionObserver(function(entries){
2396      entries.forEach(function(en){ if (en.isIntersecting) loadNext(); });
2397    }, { rootMargin:'2000px 0px 2000px 0px', threshold:0 });
2398    if (!done) io.observe(sentinel);
2399
2400    var isHomePath = location.pathname.replace(/\/+$/,'/') === '/';
2401    var timer = null;
2402
2403    if (!isHomePath) {
2404      timer = setInterval(function(){
2405        if (done) { clearInterval(timer); return; }
2406        loadNext();
2407      }, 2500);
2408    }
2409
2410    var pageCounter=0;
2411    var capTimer=setInterval(function(){
2412      if (done || ++pageCounter>PAGE_HARD_CAP){ clearInterval(capTimer); }
2413    }, 1000);
2414  }
2415
2416  onReady(function(){
2417    if (window.DiSManualTagPagination.mount(document)) return;
2418    (function ensureLS(){
2419      const root=document.querySelector('.latest-stories');
2420      if (root && !root.dataset.lsReady){
2421        const ev = new Event('DOMContentLoaded');
2422        window.dispatchEvent ? window.dispatchEvent(ev) : document.dispatchEvent(ev);
2423      }
2424    })();
2425
2426    const isHome = location.pathname.replace(/\/+$/,'/') === '/';
2427    if (isHome && $('.latest-stories')) mountInfinite(document);
2428    else if (!isHome && findFeed(document)) mountInfinite(document);
2429  });
2430})();
2431
2432</script>
2432
2433
2434<!-- ================= DIS — Make Latest/Podcasts arrows match Featured/Tags (use arrow-button) ================= -->
2435<style>
2436  .latest-stories .ls-nav,
2437  .dis-podcasts-section .pb-nav{
2438    display:none !important;
2439  }
2440  .latest-stories [class*="posts"]{ margin-right: 0 !important; }
2441
2442  .dis-injected-header-row{
2443    display:flex;
2444    align-items:center;
2445    justify-content:space-between;
2446    gap:18px;
2447  }
2448
2449  /* Podcasts: keep your current “under-title, right aligned” placement */
2450  .dis-podcasts-section .section-header-arrows[data-dis="podcasts"]{
2451    display:flex !important;
2452    width:100% !important;
2453    justify-content:flex-end !important;
2454    align-items:center !important;
2455    gap:12px !important;
2456    margin-top:10px !important;
2457  }
2458</style>
2459
2460<script>
2461(function(){
2462  const ready = (fn) =>
2463    document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn, { once:true });
2464
2465  const DIS_ARROW_SVG = `
2466    <svg width="100%" height="100%" viewBox="0 0 80 22" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
2467      <path d="M0 11L79 11" stroke="var(--text-color)" stroke-width="1.5"></path>
2468      <path d="M58.0026 21.0625C58.0026 21.0625 57.3026 11.2875 79.0026 11" stroke="var(--text-color)" stroke-width="1.5"></path>
2469      <path d="M58.0026 1C58.0026 1 57.3026 10.775 79.0026 11.0625" stroke="var(--text-color)" stroke-width="1.5"></path>
2470    </svg>
2471  `;
2472
2473  function makeSectionHeaderArrows(mark){
2474    const wrap = document.createElement('div');
2475    wrap.className = 'section-header-arrows';
2476    wrap.setAttribute('data-dis', mark);
2477    wrap.innerHTML = `
2478      <button class="arrow-button unstyled-button" aria-label="Button left" name="left" disabled>
2479        ${DIS_ARROW_SVG}
2480      </button>
2481      <button class="arrow-button unstyled-button" aria-label="Button right" name="right">
2482        ${DIS_ARROW_SVG}
2483      </button>
2484    `;
2485    return wrap;
2486  }
2487
2488  function bindArrowsToRail(arrowsWrap, rail){
2489    const prev = arrowsWrap.querySelector('button[name="left"]');
2490    const next = arrowsWrap.querySelector('button[name="right"]');
2491
2492    const maxScroll = () => Math.max(0, rail.scrollWidth - rail.clientWidth);
2493    const atStart   = () => rail.scrollLeft <= 2;
2494    const atEnd     = () => (maxScroll() - rail.scrollLeft) <= 2;
2495
2496    const step = (dir) => {
2497      rail.scrollBy({ left: Math.max(rail.clientWidth * 0.9, 280) * dir, behavior: 'smooth' });
2498    };
2499
2500    const update = () => {
2501      const m = maxScroll();
2502      prev.disabled = (m <= 2) || atStart();
2503      next.disabled = (m <= 2) || atEnd();
2504      arrowsWrap.style.display = (m > 2) ? '' : 'none';
2505    };
2506
2507    prev.addEventListener('click', () => step(-1));
2508    next.addEventListener('click', () => step(1));
2509
2510    rail.addEventListener('scroll', update, { passive:true });
2511    window.addEventListener('resize', () => requestAnimationFrame(update));
2512    if ('ResizeObserver' in window) new ResizeObserver(update).observe(rail);
2513
2514    requestAnimationFrame(update);
2515  }
2516
2517  function ensureHeaderRow(sectionRoot, titleEl){
2518    const existingHeader =
2519      (titleEl && titleEl.closest('.section-header')) ||
2520      (sectionRoot && sectionRoot.querySelector('.section-header')) ||
2521      null;
2522
2523    if (existingHeader) return existingHeader;
2524
2525    const row = document.createElement('div');
2526    row.className = 'dis-injected-header-row';
2527    if (titleEl && titleEl.parentNode) {
2528      titleEl.parentNode.insertBefore(row, titleEl);
2529      row.appendChild(titleEl);
2530    } else if (sectionRoot) {
2531      sectionRoot.insertAdjacentElement('afterbegin', row);
2532    }
2533    return row;
2534  }
2535
2536  function installLatestArrows(){
2537    const root = document.querySelector('.latest-stories');
2538    if (!root) return;
2539
2540    const rail = root.querySelector('.ls-rail');
2541    if (!rail) return;
2542
2543    const title = root.querySelector('h1,h2,h3,.section-title,[class*="title"]') || null;
2544    const headerRow = ensureHeaderRow(root, title);
2545
2546    if (headerRow.querySelector('.section-header-arrows[data-dis="latest"]')) return;
2547
2548    const arrows = makeSectionHeaderArrows('latest');
2549    headerRow.appendChild(arrows);
2550    bindArrowsToRail(arrows, rail);
2551  }
2552
2553  function installPodcastArrows(){
2554    const sec = document.querySelector('.dis-podcasts-section');
2555    if (!sec) return;
2556
2557    const rail = sec.querySelector('.ls-rail');
2558    if (!rail) return;
2559
2560    const stack = sec.querySelector('.dis-podcast-stack') || sec;
2561    const title = stack.querySelector('.dis-podcast-title') || sec.querySelector('h1,h2,h3,.section-title,[class*="title"]');
2562    if (!title) return;
2563
2564    // Under-title placement (your current working layout)
2565    if (!stack.querySelector('.section-header-arrows[data-dis="podcasts"]')) {
2566      const arrows = makeSectionHeaderArrows('podcasts');
2567      title.insertAdjacentElement('afterend', arrows);
2568      bindArrowsToRail(arrows, rail);
2569    }
2570  }
2571
2572  ready(function(){
2573    installLatestArrows();
2574    installPodcastArrows();
2575
2576    // Minimal observer: only to catch async podcast build (feed fetch)
2577    const mo = new MutationObserver(() => {
2578      installLatestArrows();
2579      installPodcastArrows();
2580    });
2581    mo.observe(document.documentElement, { childList:true, subtree:true });
2582  });
2583})();
2584</script>
2584
2585
2586<script>
2587document.addEventListener("DOMContentLoaded", function() {
2588  const links = document.querySelectorAll("a");
2589  links.forEach(function(link) {
2590    if (link.host !== window.location.host) {
2591      link.setAttribute("target", "_blank");
2592      link.setAttribute("rel", "noopener noreferrer");
2593    }
2594  });
2595});
2596</script>
2596
2597</body>
2598</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.