PageSourceSearch

https://kingsatan.net/

html kingsatan.net collected 2026-09-26 18:49:27 UTC 62,638 bytes, 1,348 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5  <title>KING SATAN - Official Website | Industrial Metal Symphony & Death Metal Disco</title>
6  <!-- icon -->
7  <link rel="browser_icon" href="/favicon.ico" type="image/x-icon">
8  <meta charset="UTF-8">
9  <meta name="viewport" content="width=device-width, initial-scale=1">
10
11  <!-- SEO Meta Tags -->
12  <meta name="description"
13    content="King Satan - official website of the Finnish industrial metal symphony and death metal disco band. News, discography, tour dates, gallery, and more.">
14  <meta name="keywords"
15    content="King Satan, King Aleister Satan, industrial metal, death metal disco, groove metal, electronic metal, industrial rock, symphonic metal, melodic death metal, metal from finland, finnish metal, scandinavian metal, party metal">
16  <meta name="robots" content="index, follow">
17  <link rel="canonical" href="https://kingsatan.net/">
18
19  <!-- Open Graph -->
20  <meta property="og:type" content="website">
21  <meta property="og:title" content="KING SATAN - Official Website">
22  <meta property="og:description"
23    content="Official website of King Satan - Finnish industrial metal symphony and death metal disco band.">
24  <meta property="og:url" content="https://kingsatan.net/">
25  <meta property="og:image" content="https://kingsatan.net/img/band/kingsatan_2026.jpg">
26  <meta property="og:site_name" content="King Satan">
27
28  <!-- Twitter Card -->
29  <meta name="twitter:card" content="summary_large_image">
30  <meta name="twitter:title" content="KING SATAN - Official Website">
31  <meta name="twitter:description"
32    content="Official website of King Satan - Finnish industrial metal symphony and death metal disco band.">
33  <meta name="twitter:image" content="https://kingsatan.net/img/band/kingsatan_2026.jpg">
34
35  <!-- JSON-LD Structured Data -->
36  
36<script type="application/ld+json">
37  {
38    "@context": "https://schema.org",
39    "@type": "MusicGroup",
40    "name": "King Satan",
41    "url": "https://kingsatan.net",
42    "image": "https://kingsatan.net/img/band/kingsatan_2026.jpg",
43    "genre": ["Industrial Metal", "Death Metal"],
44    "description": "King Satan is a Finnish industrial metal symphony and death metal disco band from the north",
45    "sameAs": [
46      "https://www.facebook.com/kingsatan616",
47      "https://www.instagram.com/kingsatanofficial",
48      "https://www.youtube.com/kingsatantv",
49      "https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW"
50    ]
51  }
52  </script>
52
53
54  <!-- Icons and Fonts -->
55  
55<script src="https://kit.fontawesome.com/7f622c65bc.js" crossorigin="anonymous"></script>
55
56  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
57  <link rel="stylesheet" href="/fonts/fontawesome-free-5.3.1-web/css/all.css">
58
59  <!-- JavaScript Libraries -->
60  
60<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
60
61  
61<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
61
62  
62<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
62
63
64  <!-- CSS -->
65  <link rel="stylesheet" href="css/linearicons.css">
66  <link rel="stylesheet" href="css/font-awesome.min.css">
67  <link rel="stylesheet" href="css/magnific-popup.css">
68  <link rel="stylesheet" href="css/w3.css">
69  <link rel="stylesheet" href="css/bootstrap.min.css?v=1.4">
70  <link rel="stylesheet" type="text/css" href="css/style.css?v=2.7">
71  <link rel="stylesheet" type="text/css" href="css/card-styles.css?v=2.7">
72  <link rel="stylesheet" type="text/css" href="css/mobile.css?v=2.7">
73
74  <!-- Page Content Loading -->
75  
75<script>
76    $(function () {
77      // Load music.html content
78      $("#MusicSection").load("music.html .music-container", function (response, status, xhr) {
79        if (status == "error") {
80          console.log("Error loading music content: " + xhr.status + " " + xhr.statusText);
81          // Show error message
82          $("#MusicSection").html('<p style="color: red; text-align: center; padding: 20px;">Error loading discography content. Please refresh the page.</p>');
83        } else {
84          console.log("Music content loaded successfully");
85          // Remove any loading text
86          $("#MusicSection").find('p:contains("Loading")').remove();
87          initializeMusicFilter();
88        }
89      });
90      // The following are commented out as they are not present in the body
91      // $("#NavbarSection").load("navbar.html");
92      // $("#HeaderSection").load("header.html");
93    });
94
95    // Music filter function for the loaded content
96    function filterSelection(evt, filterName) {
97      var i, x, tablinks;
98      x = document.getElementsByClassName("filter");
99      for (i = 0; i < x.length; i++) {
100        x[i].style.display = "none";
101      }
102      tablinks = document.getElementsByClassName("tablink");
103      for (i = 0; i < tablinks.length; i++) {
104        tablinks[i].className = tablinks[i].className.replace(" filter-selection", "");
105      }
106      document.getElementById(filterName).style.display = "block";
107      evt.currentTarget.className += " filter-selection";
108    }
109
110    // Initialize music filter after content loads
111    function initializeMusicFilter() {
112      // Show albums by default
113      var albumsFilter = document.getElementById("albums");
114      if (albumsFilter) {
115        albumsFilter.style.display = "block";
116      }
117
118      // Ensure album links work properly after dynamic loading
119      var albumLinks = document.querySelectorAll('#MusicSection a[href*="discography.html"]');
120      albumLinks.forEach(function (link) {
121        // Ensure the link has the correct href attribute
122        if (link.href && link.href.includes('discography.html')) {
123          // The links should work automatically, but we can add click tracking if needed
124          link.addEventListener('click', function (e) {
125            // Let the default link behavior work
126            // console.log('Album link clicked:', this.href);
127          });
128        }
129      });
130    }
131  </script>
131
132</head>
133
134<body data-spy="scroll" data-target=".navbar" data-offset="50" id="home">
135  <button onclick="topFunction()" id="TopBtn" title="Go to top">
136    <i class="fa-solid fa-circle-up"></i>
137  </button>
138
139  <!-- The Navbar Section -->
140  <nav class="navbar navbar-inverse" id="navbar">
141    <div class="w3-row w3-center">
142      <div class="navbar-header">
143        <a class="navbar-brand" href="https://www.kingsatan.net/">KING SATAN</a>
144        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
145          <i class="fa fa-navicon"></i>
146        </button>
147      </div>
148    </div>
149    <!-- Large Navbar-->
150    <div class="collapse navbar-collapse nav-center " id="myNavbar">
151      <div id="navbar-large">
152        <!-- <a class="navbar-brand" href="https://www.kingsatan.net/">KING SATAN</a> -->
153        <ul class="nav navbar-nav nav-center">
154          <li><a href="#home">KING SATAN</a></li>
155          <li><a href="#music">MUSIC</a></li>
156          <li><a href="#shop" data-external-link="https://shop.kingsatan.net/"
157              onclick="window.open(this.dataset.externalLink, '_blank'); document.getElementById('shop').scrollIntoView({behavior: 'smooth'}); return false;">SHOP
158              <i class="fas fa-external-link-alt shop-icon"></i></a></li>
159          <li><a href="https://www.deathagency.fi/djkings8n.html" target="_blank" rel="noopener noreferrer">DJ
160              <i class="fas fa-external-link-alt shop-icon"></i></a></li>
161          <li><a href="#videos">VIDEOS</a></li>
162          <li><a href="#band">BAND</a></li>
163          <li><a href="#tour">TOUR</a></li>
164          <li><a href="#book">BOOK</a></li>
165          <li><a href="#contact">CONTACT</a></li>
166          <li class="dropdown">
167            <a class="dropdown-toggle" data-toggle="dropdown" href="#">MORE<span class="caret"></span></a>
168            <ul class="dropdown-content">
169              <li><a href="#newsletter">NEWSLETTER</a></li>
170              <li><a href="discography">DISCOGRAPHY</a></li>
171              <li><a href="gallery">GALLERY</a></li>
172              <li><a href="media">MEDIA</a></li>
173              <li><a href="https://linktr.ee/kingsatan">LINKTR.EE</a></li>
174            </ul>
175          </li>
176          <!-- small screen MORE links -->
177          <li class="more"><a href="#newsletter">NEWSLETTER</a></li>
178          <li class="more"><a href="discography">DISCOGRAPHY</a></li>
179          <li class="more"><a href="gallery">GALLERY</a></li>
180          <li class="more"><a href="media">MEDIA</a></li>
181          <li class="more"><a href="https://linktr.ee/kingsatan">LINKTR.EE</a></li>
182        </ul>
183      </div> <!-- END of navbar-large -->
184    </div> <!-- END of myNavbar -->
185  </nav>
186
187  <!-- Full Width Header -->
188  <div class="hero-section">
189    <div class="hero-image">
190      <img src="img/band/kingsatan_2026.jpg" alt="King Satan - Industrial Metal & Death Metal Disco" class="hero-img">
191      <div class="hero-overlay">
192        <div class="hero-content">
193          <h1 class="hero-title">KING SATAN</h1>
194          <div class="hero-subtitle">INDUSTRIAL METAL & DEATH METAL DISCO</div>
195          <!--  <p class="hero-description"></p> -->
196          <!-- Scroll Down Arrow -->
197          <div class="scroll-arrow" onclick="scrollToContent()">
198            <i class="fas fa-chevron-down"></i>
199          </div>
200        </div>
201      </div>
202    </div>
203  </div>
204  <!-- END of Header -->
205
206  <!-- Page content -->
207  <div class="w3-content page-content">
208    <!--SoMe links-->
209    <div class="w3-xxlarge somelinks stickysome">
210      <a href="https://www.facebook.com/kingsatan616" target="_blank" title="Facebook">
211        <i class="fa fa-facebook-official"></i>
212      </a>
213      <a href="https://www.instagram.com/kingsatanofficial" target="_blank" title="Instagram">
214        <i class="fa fa-instagram"></i>
215      </a>
216      <a href="https://www.youtube.com/kingsatantv" target="_blank" title="YouTube">
217        <i class="fa fa-youtube"></i>
218      </a>
219      <a href="https://www.tiktok.com/@kingsatanofficial" target="_blank" title="TikTok">
220        <i class="fab fa-tiktok"></i>
221      </a>
222      <a href="https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW?si=vTjdYup_TSmbPNaU5GisZQ" target="_blank"
223        title="Spotify">
224        <i class="fa fa-spotify"></i>
225      </a>
226      <a href="https://kingsatan.bfan.link/occult-spiritual-anarchy" target="_blank"
227        title="Get Occult Spiritual Anarchy">
228        <i class="fa fa-music"></i>
229      </a>
230    </div> <!-- End of SoMe links-->
231
232    <!-- Streaming Section -->
233    <div class="streaming-section" id="music">
234      <div class="w3-container w3-content w3-center">
235        <div class="section-title">STREAM NOW</div>
236        <div class="w3-row w3-center">
237          <div class="streaming-links">
238            <a href="https://open.spotify.com/artist/1V9mrCXH8tey5uHZlsAxKW" target="_blank" class="streaming-button">
239              <i class="fa fa-spotify"></i> Spotify
240            </a>
241            <a href="https://www.youtube.com/@KingSatanTV" target="_blank" class="streaming-button stream-youtube">
242              <i class="fa fa-youtube"></i> YouTube
243            </a>
244            <a href="https://kingsatan.bfan.link/occult-spiritual-anarchy" target="_blank" class="streaming-button">
245              <i class="fa fa-music"></i> All Platforms
246            </a>
247          </div>
248        </div>
249        <div class="w3-row w3-center">
250          <div class="streaming-widget">
251            <iframe style="border-radius:12px"
252              src="https://open.spotify.com/embed/artist/1V9mrCXH8tey5uHZlsAxKW?utm_source=generator" width="100%"
253              height="352" frameBorder="0" allowfullscreen=""
254              allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy">
255            </iframe>
256          </div>
257        </div>
258      </div>
259    </div> <!-- End of Streaming Section -->
260
261    <!-- Discography Section -->
262    <div class="discography-section" id="discography">
263      <div class="w3-container w3-content w3-center">
264        <div class="section-title">DISCOGRAPHY</div>
265        <!-- Discography Section from music.html -->
266        <div id="MusicSection"></div>
267      </div>
268    </div> <!-- End of Discography Section -->
269
270    <!-- Shop Section -->
271    <div class="shop-section" id="shop">
272      <div class="w3-container w3-content w3-center">
273        <div class="section-title">MERCH SHOP</div>
274        <!-- ÄXclusive -->
275        <div class="w3-row w3-center">
276          <div class="shop-image-container">
277            <a href="https://www.levykauppax.fi/v2/search/?q=King+Satan+Black+Magick+Abraxas&fbclid=IwY2xjawTcCRNwZG9mBWV4dG4DYWVtAjEwAGJyaWQRMXltV0k4NlpOd2NRUzlyUkFzcnRjBmFwcF9pZBAyMjIwMzkxNzg4MjAwODkyAAEefeuuiyO1dpWGLdEYktKf4yS9L2lmPLQ-CMtSjG0U1watkJhMgZDNqgbCApY_aem_sgCTNYRt4nzunMqvFTxtdA" target="_blank">
278              <img src="img/shop/shop_header_äxclusive.jpg" alt="ÄXClusive pre-order bundles">
279              <i class="fa-solid fa-basket-shopping shop-card-icon"></i>
280            </a>
281          </div>
282        </div> <!-- End of ÄXclusive -->
283        <div class="w3-row w3-center">
284          <div class="shop-image-container">
285            <a href="https://shop.kingsatan.net" target="_blank">
286              <img src="img/shop/shop_header.jpeg" alt="Official King Satan Merchandise Store">
287              <i class="fa-solid fa-basket-shopping shop-card-icon"></i>
288            </a>
289          </div>
290        </div>
291      </div>
292    </div> <!-- End of Shop Section -->
293
294    <!-- Featured Videos Section -->
295    <div class="featured-videos-section" id="videos">
296      <div class="w3-container w3-content w3-center">
297        <div class="section-title">LATEST MUSIC VIDEOS</div>
298        <div class="w3-row w3-center">
299          <div class="video-grid">
300            <div class="video-card">
301              <div class="video-card-image"
302                onclick="window.open('https://youtu.be/tvJVGD6OJJA?si=L3t4fYWaiVn0MsQv', '_blank')"
303                style="cursor: pointer;">
304                <img class="video-image" src="img/videos/2026_fire_in_the_hole.jpeg" alt="King Satan - Fire in the Hole"
305                  loading="lazy">
306                <i class="fab fa-youtube video-card-icon"></i>
307              </div>
308              <h4>Fire in the Hole</h4>
309            </div>
310            <div class="video-card">
311              <div class="video-card-image"
312                onclick="window.open('https://youtu.be/ITi-czgEGQk?si=fzI0Kyib7Av9H_gz', '_blank')"
313                style="cursor: pointer;">
314                <img class="video-image" src="img/videos/2026_crazy.jpeg" alt="King Satan - (You Drive Me) Crazy [Britney Spears Cover]"
315                  loading="lazy">
316                <i class="fab fa-youtube video-card-icon"></i>
317              </div>
318              <h4>(You Drive Me) Crazy</h4>
319            </div>
320            <div class="video-card">
321              <div class="video-card-image"
322                onclick="window.open('https://youtu.be/pQ2YFpB8RWc?si=OnNRlH2HnFRzzyZc', '_blank')"
323                style="cursor: pointer;">
324                <img class="video-image" src="img/videos/2026_LightOfDarkness.jpeg" alt="King Satan - Light Of Darkness"
325                  loading="lazy">
326                <i class="fab fa-youtube video-card-icon"></i>
327              </div>
328              <h4>Light Of Darkness</h4>
329            </div>
330            <div class="video-card">
331              <div class="video-card-image"
332                onclick="window.open('https://youtu.be/SGJzCj9RI7c?si=5zBOxtpEug6ocxrZ', '_blank')"
333                style="cursor: pointer;">
334                <img class="video-image" src="img/videos/2026_BMRR.jpeg" alt="King Satan - Black Magick Rock 'N' Roll"
335                  loading="lazy">
336                <i class="fab fa-youtube video-card-icon"></i>
337              </div>
338              <h4>Black Magick Rock 'N' Roll</h4>
339            </div>
340            <div class="video-card">
341              <div class="video-card-image"
342                onclick="window.open('https://www.youtube.com/watch?v=miTnTm_BvWs', '_blank')" style="cursor: pointer;">
343                <img class="video-image" src="img/videos/new_aeon_gospel.jpg" alt="King Satan - New Aeon Gospel"
344                  loading="lazy">
345                <i class="fab fa-youtube video-card-icon"></i>
346              </div>
347              <h4>New Aeon Gospel</h4>
348            </div>
349            <div class="video-card">
350              <div class="video-card-image"
351                onclick="window.open('https://www.youtube.com/watch?v=o_IAyyQXcT8', '_blank')" style="cursor: pointer;">
352                <img class="video-image" src="img/videos/abyss_of_the_souls.jpg" alt="King Satan - Abyss of the Souls"
353                  loading="lazy">
354                <i class="fab fa-youtube video-card-icon"></i>
355              </div>
356              <h4>Abyss of the Souls</h4>
357            </div>
358            <div class="video-card">
359              <div class="video-card-image"
360                onclick="window.open('https://www.youtube.com/watch?v=wjiK58zh2HM', '_blank')" style="cursor: pointer;">
361                <img class="video-image" src="img/videos/chaos_forever_now.jpg" alt="King Satan - Chaos Forever Now"
362                  loading="lazy">
363                <i class="fab fa-youtube video-card-icon"></i>
364              </div>
365              <h4>Chaos Forever Now</h4>
366            </div>
367          </div>
368          <div class="w3-center" id="video-button">
369            <a href="https://www.youtube.com/@KingSatanTV" target="_blank" class="action-button">
370              <i class="fa fa-youtube"></i> View All Music Videos
371            </a>
372          </div>
373        </div>
374      </div>
375    </div> <!-- End of Featured Videos Section -->
376
377    <!-- The Band Section -->
378    <div class="band-section" id="band">
379      <div class="w3-container w3-content w3-center">
380        <div class="section-title">THE BAND</div>
381        <div class="w3-row w3-center">
382          <div class="band-image-container">
383            <div class="band-main-image-frame">
384              <img src="/img/band/kingsatan_2026.jpg" class="band-main-image" id="bandMainImage"
385                alt="King Satan band photo 2026" loading="lazy">
386            </div>
387            <p class="image-caption" id="bandImageCaption">
388              <i>King Satan, 2026 - Photography by Joonas Juntunen</i>
389            </p>
390            <div class="band-photo-thumbnails" aria-label="Band promo photo selector">
391              <button type="button" class="band-photo-thumb active" data-src="/img/band/kingsatan_2026.jpg"
392                data-alt="King Satan band photo 2026" data-caption="King Satan, 2026 - Photography by Joonas Juntunen"
393                aria-label="Show King Satan promo photo 2026" aria-pressed="true">
394                <img src="/img/band/kingsatan_2026.jpg" alt="King Satan promo photo thumbnail 2026">
395                <span>2026</span>
396              </button>
397              <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2024.jpg"
398                data-alt="King Satan band photo 2024" data-caption="King Satan, 2024 - Photography by Joonas Juntunen"
399                aria-label="Show King Satan promo photo 2024" aria-pressed="false">
400                <img src="/img/band/kingsatan_2024.jpg" alt="King Satan promo photo thumbnail 2024">
401                <span>2024</span>
402              </button>
403              <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2024_2.jpg"
404                data-alt="King Satan band photo 2024 - alternate"
405                data-caption="King Satan, 2024 - Photography by Joonas Juntunen"
406                aria-label="Show King Satan promo photo 2024 - alternate" aria-pressed="false">
407                <img src="/img/band/kingsatan_2024_2.jpg" alt="King Satan promo photo thumbnail 2024 - alternate">
408                <span>2024</span>
409              </button>
410              <button type="button" class="band-photo-thumb" data-src="/img/band/kingsatan_2021.jpg"
411                data-alt="King Satan band photo 2021" data-caption="King Satan, 2021 - Photography by Cerulean Midnight"
412                aria-label="Show King Satan promo photo 2021" aria-pressed="false">
413                <img src="/img/band/kingsatan_2021.jpg" alt="King Satan promo photo thumbnail 2021">
414                <span>2021</span>
415              </button>
416            </div>
417          </div>
418        </div>
419        <div class="w3-row w3-center">
420          <p class="band-text" id="bandText">
421            <span class="band-text-short">
422              King Satan is a genre-bending industrial metal band from Finland, created by enigmatic artist,
423              multi-instrumentalist and producer King Aleister Satan. A spawn of sleazy riffs, seductive groove ’n’
424              roll, mesmerizing melodies, and provocative yet philosophical themes, the band’s music offers a
425              carnivalesque blend of extreme metal crossover. An unique fusion of electronic party music and the occult
426              side of heavy metal, served with the raw energy of rock’n’roll, the group themselves dubs as ’death metal
427              disco’
428            </span>
429            <span class="band-text-full">
430              <br /><br />
431              Founded in 2015 at the City of Tampere, King Satan has steadily carved out a distinct identity within the
432              alternative, industrial and extreme metal scenes, gaining loyal following through relentless touring,
433              provocative theatrics and a mercurial sound resonating somewhere between avantgarde and shock rock.
434              Originally a solo studio project, the act crew into a full line-up band known for their energetic live
435              shows, trickster-like narrative and infectious charisma.
436              <br /><br />
437              The band’s unapologetic approach, not shy of controversy, combines dark humor, absurdism and social
438              provocation together with esoteric and philosophical themes inspired by the dark side of the human
439              psychology and the world’s mythologies. Renowned for their explosive stage presence, crowned by the
440              dynamic vocal interplay between the band’s mastermind and keyboardist-vocalist Hekate ”Kate” Boss,
441              creating a ’Beauty and the Beast’ style of a dialogue between raw darkness and eloquent power.
442              <br /><br />
443              King Satan has toured extensively across their native Finland and Europe with own their headliner shows
444              and also supporting such prominent names like Deathstars, Turmion Kätilöt and Gothminister. Touring has
445              taken the band to perform to prestigious metal festivals as well like Tuska Festival and Masters Of Rock
446              but also to acclaimed industrial-alternative festivals like Dark Malta and Hellsinki Industrial Festival -
447              demonstrating the band’s versatile genre-defying expression.
448              <br /><br />
449              The band has revealed that there will be a new album out during 2026, but before that the group announced
450              a collaboration single with renowned Finnish blues rock guitar virtuoso Erja Lyytinen, with a song titled
451              ”Black Magick Rock ’N’ Roll” to be out in March 2026. With multiple full-length albums, charting releases
452              and award-winning music videos the band continues to expand their unholy metal carnival beyond the
453              boundaries of kitsch entertainment and mystic arts in the name of the wicked one!
454              <br />
455            </span>
456          </p>
457          <div class="more-button">
458            <button class="read-more-btn" id="readMoreBtn">Read more</button>
459            <p><span class="preview-text">Founded in 2015, the group is the brainchild of enigmatic artist King Aleister
460                Satan (a.k.a. Seth Aleister de King Satan)</span></p>
461          </div>
462        </div>
463
464        <!-- Lineup -->
465        <div class="lineup">
466          <h3 class="section-subtitle">KING SATAN LINE-UP</h3>
467          <div class="w3-row w3-center">
468            <div class="member-grid">
469              <div class="member-card">
470                <div class="member-card-image">
471                  <img src="img/band/promo2026/4-3/HekateBoss.png" class="member-img" alt="Hekate Boss - Keyboards and vocals"
472                    loading="lazy">
473                </div>
474                <h4>Hekate Boss<br>Keyboards, vocals</h4>
475              </div>
476              <div class="member-card">
477                <div class="member-card-image">
478                  <img src="img/band/promo2026/4-3/MrSatan.png" class="member-img"
479                    alt="King Aleister Satan - Vocals and programming" loading="lazy">
480                </div>
481                <h4>King Aleister Satan<br>Vocals, programming</h4>
482              </div>
483              <div class="member-card">
484                <div class="member-card-image">
485                  <img src="img/band/promo2026/4-3/PeteHellraiser.png" class="member-img" alt="Pete Hellraiser - Drums" loading="lazy">
486                </div>
487                <h4>Pete Hellraiser<br>Drums</h4>
488              </div>
489              <div class="member-card">
490                <div class="member-card-image">
491                  <img src="img/band/promo2026/4-3/JerryRockNRoll.png" class="member-img" alt="Jerry Rock'n'Roll - Bass"
492                    loading="lazy">
493                </div>
494                <h4>Jerry Rock'n'Roll<br>Bass</h4>
495              </div>
496              <div class="member-card">
497                <div class="member-card-image">
498                  <img src="img/band/promo2026/4-3/EF-13.png" class="member-img" alt="EF-13 - Guitar" loading="lazy">
499                </div>
500                <h4>EF-13<br>Guitar</h4>
501              </div>
502            </div>
503          </div>
504          <!-- former lineup-->
505          <div class="w3-row">
506            <h3 class="section-subtitle former-members">FORMER / LIVE MEMBERS</h3>
507            <ul class="former-members-ul">
508              <li><span class="member-name">Strangerfriend</span> - Live guitars (2025)</li>
509              <li><span class="member-name">Infinite Rivals</span> - Live keyboards (2022)</li>
510              <li><span class="member-name">Jack Heretic</span> - Live percussions (2019-2020)</li>
511              <li><span class="member-name">Dalai Daimonicus</span> - Guitars (2018-2019)</li>
512              <li><span class="member-name">Sir Changa McKenna</span> - Drums / percussions (2017-2019) </li>
513              <li><span class="member-name">Magister Demaniac</span> - Programming (2016-2017), (Guitars 2017-2018)</li>
514              <li><span class="member-name">Martin Shemhamforash</span>
514 - 2nd synth & bass (2017-2017)</li>
515              <li><span class="member-name">John Oscar Dee</span> - Bass / Guitars (2015-2017)</li>
516              <li><span class="member-name">B.B. Kill</span> - Guitar (2016-2017)</li>
517              <li><span class="member-name">DJ Instixx</span> - Beats (2016-2016)</li>
518              <li><span class="member-name">Tomax Xamot</span> - Bass (2016-2016 )</li>
519              <li><span class="member-name">Captain Veisalgia</span> - Bass (2015-2016)</li>
520            </ul>
521          </div>
522        </div> <!-- End of Lineup -->
523      </div> <!-- End of Band container -->
524    </div> <!-- End of Band section -->
525
526    <!-- The Tour Section -->
527    <div class="tour-section" id="tour">
528      <div class="w3-container w3-content w3-center">
529        <div class="section-title">TOUR DATES</div>
530        <!-- Bandsintown widget -->
531        <div class="w3-row w3-center tour-widget">
532          <p class="w3-opacity w3-center tour-text">
533            <i>For King Satan concert bookings see <a href="#contact"><u>Contact</u></a> for more info</i>
534          </p>
535          <div class="bandsintown-widget">
536            
536<script charset="utf-8" src="https://widget.bandsintown.com/main.min.js"></script>
536
537            <a class="bit-widget-initializer" data-artist-name="King Satan" data-display-local-dates="true"
538              data-display-past-dates="true" data-auto-style="true" data-text-color="#FFFFFF"
539              data-link-color="rgba(255,210,50, 0.8)" data-popup-background-color="rgba(0,0,0,0)"
540              data-background-color="rgba(0,0,0,0)" data-display-limit="10" data-link-text-color="#000"></a>
541          </div>
542        </div>
543        <!-- Tour grid -->
544        <div class="w3-row w3-center">
545          <div class="tour-grid">
546            <div class="tour-card" onclick="openTourSlideshow(0)" style="cursor: pointer;">
547              <div class="tour-card-image">
548                <img class="tourImg" src="img/tours/kingsatan-tour2025.jpg" alt="King Satan tour dates 2025"
549                  loading="lazy">
550                <i class="fa-solid fa-expand tour-card-icon"></i>
551              </div>
552            </div>
553            <div class="tour-card" onclick="openTourSlideshow(1)" style="cursor: pointer;">
554              <div class="tour-card-image">
555                <img class="tourImg" src="img/tours/turmionkatilot_kingsatan_2025.jpg" alt="Reset World Tour 2025"
556                  loading="lazy">
557                <i class="fa-solid fa-expand tour-card-icon"></i>
558              </div>
559            </div>
560            <div class="tour-card" onclick="openTourSlideshow(2)" style="cursor: pointer;">
561              <div class="tour-card-image">
562                <img class="tourImg" src="img/tours/gothminister_2023.jpg" alt="Gothminister - Pandemonium Tour 2023"
563                  loading="lazy">
564                <i class="fa-solid fa-expand tour-card-icon"></i>
565              </div>
566            </div>
567            <div class="tour-card" onclick="openTourSlideshow(3)" style="cursor: pointer;">
568              <div class="tour-card-image">
569                <img class="tourImg" src="img/tours/deathstars_2023.jpg"
570                  alt="Deathstars - Everything Destroys Europe Tour 2023" loading="lazy">
571                <i class="fa-solid fa-expand tour-card-icon"></i>
572              </div>
573            </div>
574          </div> <!-- End of Tour grid -->
575
576          <!-- Tour Slideshow Modal -->
577          <div id="tourSlideshow" class="w3-modal tour-slideshow-modal">
578            <div class="w3-modal-content w3-animate-zoom w3-center tour-slideshow-content">
579              <!-- Close button -->
580              <span onclick="closeTourSlideshow()" class="w3-button w3-hover-red tour-slideshow-close">&times;</span>
581
582              <!-- Image container with fixed dimensions -->
583              <div class="tour-slideshow-image-container">
584                <!-- Fixed size image container -->
585                <div class="tour-slideshow-image-wrapper">
586                  <img id="tourSlideImg" class="tour-slideshow-image">
587                </div>
588
589                <!-- Navigation arrows positioned outside the container -->
590                <div onclick="changeTourSlide(-1)" class="tour-slideshow-arrow tour-slideshow-arrow-left">
591                  &#10094;
592                </div>
593                <div onclick="changeTourSlide(1)" class="tour-slideshow-arrow tour-slideshow-arrow-right">
594                  &#10095;
595                </div>
596              </div>
597
598              <!-- Title below image -->
599              <div class="w3-center tour-slideshow-title-container">
600                <h3 id="tourSlideTitle" class="tour-slideshow-title"></h3>
601              </div>
602            </div>
603          </div> <!-- End of Tour Slideshow Modal -->
604        </div> <!-- End of Tour posters -->
605      </div> <!-- End of Tour container -->
606    </div> <!-- End of Tour Section -->
607
608    <!-- book Section -->
609    <div class="book-section" id="book">
610      <div class="w3-container w3-content w3-center">
611        <div class="section-title">LITERATURE</div>
612        <div class="w3-row w3-center">
613          <div class="literature-layout">
614            <div class="book-content">
615              <div class="book-image-container">
616                <a href="https://shop.kingsatan.net/product/book-the-devils-evangelion-and-the-law-of-chaos"
617                  target="_blank" class="book-main-image"><img src="img/shop/lawofchaos_book.png"
618                    alt="The Devil's Evangelion and the Law of Chaos - King Satan Book"></a>
619              </div>
620              <p class="book-text">
621                Written by Seth Aleister de King Satan, <span class="text-yellow">The Devil's Evangelion and the Law of
622                  Chaos</span> is a compilation of all published lyrics written for King Satan between 2015 and 2024,
623                accompanied by selected lyrics and related interview excerpts from his longest-running band, Saturnian
624                Mist (est. 2006).<br><br>
625                This opus offers a holistic outlook on the artist's unorthodox and trickster-like vision of Satanism,
626                Occultism, Mysticism and Spiritual Anarchy, revealed through a carnivalesque mixture of rock lyrics,
627                esoteric poetry, and prosaic pathos.
628                <br /><br />
629                Includes the complete lyrics of the following King Satan albums: The Devil's Evangelion (2024), Occult
630                Spiritual Anarchy (2022), I Want You to Worship Satan (2019), and King Fucking Satan (2017), along with
631                selected pieces of Saturnian Mist's lyrics and miscellaneous interview excerpts.
632              </p>
633            </div>
634            <div class="w3-center book-button">
635              <a href="https://shop.kingsatan.net/product/the-devil-s-evangelion-and-the-law-of-chaos-book"
636                class="action-button">Buy from webshop</a>
637            </div>
638          </div>
639        </div>
640      </div>
641    </div> <!-- End of Book Section -->
642
643    <!-- The Contact Section -->
644    <div class="modern-contact-section" id="contact">
645      <div class="w3-container w3-content w3-center">
646        <div class="section-title">CONTACT</div>
647
648        <!-- BOOKING & MANAGEMENT -->
649        <h2 class="contact-category-title">Booking &amp; Management</h2>
650        <div class="contact-grid contact-grid-2">
651          <div class="contact-card">
652            <a href="https://www.deathagency.fi/king_satan.html" target="_blank" class="contact-logo-link">
653              <div class="contact-icon contact-logo">
654                <img src="img/record_labels/death_agency_white_logo.png" alt="Death Agency">
655              </div>
656            </a>
657            <h3>Management &amp; Concert Booking Finland</h3>
658            <p class="contact-description">Tiina Käpylä / Death Agency</p>
659            <div class="contact-links">
660              <a href="mailto:[email protected]" class="contact-link">
661                <i class="fa fa-envelope"></i>[email protected]
662              </a>
663            </div>
664          </div>
665
666          <div class="contact-card">
667            <a href="https://www.dreamtidemusic.com" target="_blank" class="contact-logo-link">
668              <div class="contact-icon contact-logo">
669                <img src="img/record_labels/dreamtide.jpg" alt="Dreamtide">
670              </div>
671            </a>
672            <h3>Concert Booking International</h3>
673            <p class="contact-description">Martin Schulman / Dreamtide Music</p>
674            <div class="contact-links">
675              <a href="mailto:[email protected]" class="contact-link">
676                <i class="fa fa-envelope"></i>[email protected]
677              </a>
678            </div>
679          </div>
680        </div>
681
682        <!-- PRESS -->
683        <h2 class="contact-category-title">Press</h2>
684        <div class="contact-grid contact-grid-3">
685          <div class="contact-card">
686            <a href="https://www.holdtight.co/" target="_blank" class="contact-logo-link">
687              <div class="contact-icon contact-logo">
688                <img src="img/record_labels/holdtight.jpg" alt="Hold Tight PR">
689              </div>
690            </a>
691            <h3>Press International</h3>
692            <p class="contact-description">Jessica Otten / Hold Tight</p>
693            <div class="contact-links">
694              <a href="mailto:[email protected]" class="contact-link">
695                <i class="fa fa-envelope"></i>[email protected]
696              </a>
697            </div>
698          </div>
699          <div class="contact-card">
700            <a href="https://www.gingervine.com/fi/" target="_blank" class="contact-logo-link">
701              <div class="contact-icon contact-logo">
702                <img src="img/record_labels/gvm-logo-pieni.png" alt="Ginger Vine PR">
703              </div>
704            </a>
705            <h3>Press Finland</h3>
706            <p class="contact-description">Heta Hyttinen / Ginger Vine PR</p>
707            <div class="contact-links">
708              <a href="mailto:[email protected]" class="contact-link">
709                <i class="fa fa-envelope"></i>[email protected]
710              </a>
711              <a href="tel:+358405817575" class="contact-link">
712                <i class="fa fa-phone"></i>+358 40 581 7575
713              </a>
714            </div>
715          </div>
716          <div class="contact-card">
717            <a href="https://agenciacipress.cl" target="_blank" rel="noopener noreferrer" class="contact-logo-link">
718              <div class="contact-icon contact-logo">
719                <img src="img/contact/cipress.png" alt="Agencia Cipress">
720              </div>
721            </a>
722            <h3>Press South America</h3>
723            <p class="contact-description">Agencia Cipress</p>
724            <div class="contact-links">
725              <a href="https://agenciacipress.cl/#contacto" target="_blank" rel="noopener noreferrer" class="contact-link">
726                <i class="fa fa-external-link"></i>Contact Form
727              </a>
728              <a href="https://wa.me/56999749330" target="_blank" rel="noopener noreferrer" class="contact-link">
729                <i class="fa fa-phone"> </i><i class="fab fa-whatsapp"></i>+56 9 9774 9330 (Rodrigo Bravo)
730              </a>
731              <a href="https://wa.me/56988387931" target="_blank" rel="noopener noreferrer" class="contact-link">
732                <i class="fa fa-phone"> </i><i class="fab fa-whatsapp"></i>+56 9 8838 7931 (Paulo Domic)
733              </a>
734            </div>
735          </div>
736        </div>
737
738        <!-- DISTRIBUTION / RECORD LABEL -->
739        <h2 class="contact-category-title">Distribution / Record Label</h2>
740        <div class="contact-grid contact-grid-2">
741          <a href="mailto:[email protected]" class="contact-card-link">
742            <div class="contact-card">
743              <div class="contact-icon contact-logo">
744                <img src="img/record_labels/Blood-Blast-logo-Nuclear-Blast.jpg" alt="Blood Blast">
745              </div>
746              <h3>Blood Blast</h3>
747              <p class="contact-description"></p>
748              <div class="contact-links">
749                <span class="contact-link">
750                  <i class="fa fa-envelope"></i>[email protected]
751                </span>
752                <span class="contact-address">
753                  <i class="fa fa-map-marker"></i>24 rue Toulouse Lautrec, Paris 75017, France
754                </span>
755              </div>
756            </div>
757          </a>
758          <a href="mailto:[email protected]" class="contact-card-link">
759            <div class="contact-card">
760              <div class="contact-icon contact-logo">
761                <img src="img/record_labels/rawversion.jpg" alt="Raw Version Productions">
762              </div>
763              <h3>Raw Version Productions</h3>
764              <p class="contact-description">Tampere, Finland</p>
765              <div class="contact-links">
766                <span class="contact-link">
767                  <i class="fa fa-envelope"></i>[email protected]
768                </span>
769              </div>
770            </div>
771          </a>
772        </div>
773
774        <!-- ONLINE SHOP -->
775        <h2 class="contact-category-title">Online Shop</h2>
776        <div class="contact-grid contact-grid-1">
777          <div class="contact-card">
778            <a href="https://shop.kingsatan.net/contact" target="_blank" class="card-cover-link"
779              aria-label="Open Online Shop Contact"></a>
780            <div class="contact-icon contact-logo">
781              <img src="img/logos/symbol.png" alt="King Satan Shop">
782            </div>
783            <h3>Online Shop Contact</h3>
784            <p class="contact-description">Orders, wholesale, returns &amp; inquiries</p>
785            <div class="contact-links">
786              <span class="contact-link">
787                <i class="fa fa-external-link"></i>shop.kingsatan.net/contact
788              </span>
789              <a href="mailto:[email protected]" class="contact-link">
790                <i class="fa fa-envelope"></i>[email protected]
791              </a>
792            </div>
793          </div>
794        </div> <!-- End of Contact grid -->
795
796        <!-- Record labels & endorsements -->
797        <div class="w3-row record-labels lineup">
798          <h3 class="section-subtitle">Past record labels</h3>
799          <div class="record-labels-container labels-grid">
800            <a href="https://ucm.one/en/music-labels/noble-demon/" target="_blank" class="logo-item">
801              <img src="img/record_labels/L-Noble-Demon-Web.png" alt="Noble Demon">
802            </a>
803            <a href="http://www.saturnalrecords.com/web/" target="_blank" class="logo-item">
804              <img src="img/record_labels/saturnalrecordslogo.jpg" alt="Saturnal Records">
805            </a>
806            <a href="https://www.inverse.fi/" target="_blank" class="logo-item">
807              <img src="img/record_labels/inverserecords.jpg" alt="Inverse Records">
808            </a>
809            <a href="https://www.facebook.com/alprods/" target="_blank" class="logo-item">
810              <img src="img/record_labels/alt.jpg" alt="Alt Records">
811            </a>
812            <a href="https://www.electricsparkrecords.com/" target="_blank" class="logo-item">
813              <img src="img/record_labels/electricspark.jpg" alt="Electric Spark Records">
814            </a>
815          </div>
816
817          <!-- Endorsements -->
818          <div class="w3-row endorsements">
819            <h3 class="section-subtitle">Endorsements</h3>
820            <div class="record-labels-container labels-grid">
821              <a href="https://us.thepickshouse.com/artists/king-satan/" target="_blank" class="logo-item">
822                <img src="img/endorsement/thepickshouse.jpg" alt="The Picks House">
823              </a>
824              <a href="https://www.jackshop.fi/" target="_blank" class="logo-item">
825                <img src="img/endorsement/jackshop.jpg" alt="Jackshop">
826              </a>
827              <a href="https://pellwood.com/en" target="_blank" class="logo-item">
828                <img src="img/endorsement/pellwood_logo.svg" alt="Pellwood Drumsticks">
829              </a>
830              <a href="https://www.instagram.com/wwt_wildwesttattoo/" target="_blank" class="logo-item">
831                <img src="img/endorsement/wildwesttattoo_logo.jpg" alt="Wild West Tattoo">
832              </a>
833            </div>
834          </div>
835        </div>
836      </div>
837    </div><!-- End of Contact section -->
838
839    <!-- Newsletter Section -->
840    <div class="newsletter-section" id="newsletter">
841      <div class="w3-container w3-content w3-center">
842        <div class="section-title">NEWSLETTER</div>
843        <div class="w3-row w3-center">
844          <p class="w3-opacity"><i>Subscribe to get updates, releases and tour news directly to your inbox.</i></p>
845          <div class="newsletter-embed">
846            <form id="newsletterForm" class="newsletter-form"
847              action="https://mc.us2.list-manage.com/subscribe/landing-page?u=39b9a00de0ca7f1719252fba1&id=5b84970fab&f_id=003303e1f0"
848              method="post" target="newsletter-submit-frame" novalidate>
849              <div class="newsletter-form-row">
850                <label for="newsletter-email" class="newsletter-label">Email Address</label>
851                <input id="newsletter-email" type="email" name="EMAIL" class="newsletter-input"
852                  placeholder="[email protected]" required>
853              </div>
854
855              <div class="newsletter-form-row">
856                <label for="newsletter-fname" class="newsletter-label">First Name (optional)</label>
857                <input id="newsletter-fname" type="text" name="FNAME" class="newsletter-input" placeholder="First name">
858              </div>
859
860              <div class="newsletter-form-row">
861                <label for="newsletter-lname" class="newsletter-label">Last Name (optional)</label>
862                <input id="newsletter-lname" type="text" name="LNAME" class="newsletter-input" placeholder="Last name">
863              </div>
864
865              <!-- Bot trap field expected by Mailchimp -->
866              <input type="text" name="b_39b9a00de0ca7f1719252fba1_1738652" tabindex="-1" value=""
867                class="newsletter-honeypot" aria-hidden="true" autocomplete="off">
868
869              <button type="submit" class="action-button newsletter-submit">Subscribe</button>
870            </form>
871            <iframe title="Newsletter submission" name="newsletter-submit-frame" id="newsletter-submit-frame"
872              class="newsletter-submit-frame" src="about:blank"></iframe>
873            <p id="newsletterStatus" class="newsletter-status" aria-live="polite"></p>
874          </div>
875          <p class="w3-small newsletter-note">
876            Your subscription is processed securely via Mailchimp.
877          </p>
878        </div>
879      </div>
880    </div> <!-- End of Newsletter Section -->
881  </div><!-- End Page Content -->
882  <!-- Footer -->
883  <div class="footer-style">
884    <footer class="w3-center w3-xxlarge footer">
885      <p class="w3-medium">All rights reserved by
886        <a href="https://www.kingsatan.net" target="_blank"><span class="contact-text-yellow-ks">King Satan
887            2026</span></a>
888      </p>
889      <p class="w3-small">Webmaster: Elina Ylkänen</p>
890    </footer> <!-- End of Footer -->
891  </div>
892
893
894  
894<script>
895    // Windows scroll functions
896    window.addEventListener('scroll', scrollFunction);
897    window.addEventListener('scroll', myFunction);
898
899    // Scroll Top -button //
900    let mybutton = document.getElementById("TopBtn");
901    // When the user scrolls down 250px from the top of the document, show the button
902    function scrollFunction() {
903      if (document.body.scrollTop > 250 || document.documentElement.scrollTop > 250) {
904        mybutton.classList.add("show");
905      } else {
906        mybutton.classList.remove("show");
907      }
908    }
909    // When the user clicks on the button, scroll to the top of the document
910    function topFunction() {
911      document.body.scrollTop = 0;
912      document.documentElement.scrollTop = 0;
913    }
914
915    // Scroll to content function - scrolls to #home (main content area)
916    function scrollToContent() {
917      // Since #home is the body element, we need to scroll to the main content area
918      // The most logical target is the page-content div which contains the actual content
919      const pageContent = document.querySelector('.page-content');
920      const navbar = document.getElementById('navbar');
921
922      if (pageContent) {
923        // Calculate offset to account for sticky navbar
924        const navbarHeight = navbar ? navbar.offsetHeight : 0;
925        const targetPosition = pageContent.offsetTop - navbarHeight;
926
927        window.scrollTo({
928          top: targetPosition,
929          behavior: 'smooth'
930        });
931      } else {
932        // Fallback: scroll to the first content section
933        const musicSection = document.getElementById('music');
934        if (musicSection) {
935          musicSection.scrollIntoView({
936            behavior: 'smooth',
937            block: 'start'
938          });
939        }
940      }
941    }
942
943    // Sticky nav
944    var navbar = document.getElementById("navbar");
945    var sticky = navbar.offsetTop;
946
947    function myFunction() {
948      if (window.pageYOffset >= sticky) {
949        navbar.classList.add("sticky")
950      }
951      else {
952        navbar.classList.remove("sticky");
953      }
954    }
955  </script>
955
956  <!-- jQuery for auto-collapse mobile navbar -->
957  
957<script>
958    $(document).ready(function () {
959      // Auto-collapse mobile navbar when menu item is clicked
960      $('.navbar-nav li a').on('click', function () {
961        if ($('.navbar-toggle').is(':visible')) {
962          $('.navbar-collapse').collapse('hide');
963        }
964      });
965    });
966  </script>
966
967  <!-- Active Navigation and Section Title Handler -->
968  
968<script>
969    $(document).ready(function () {
970      // Get all necessary elements
971      const navbar = document.getElementById("navbar");
972      const navLinks = $('#myNavbar a[href^="#"]:not([href="#"])'); // Exclude empty hrefs
973      const sectionTitles = $('.section-title');
974      const sectionSubtitles = $('h3.section-subtitle'); // Add section subtitles
975
976      // Get all sections that have corresponding nav links
977      const sections = [];
978      navLinks.each(function () {
979        const href = $(this).attr('href');
980        if (href && href !== '#') { // Check for valid href
981          const section = $(href);
982          if (section.length) {
983            sections.push({
984              id: href,
985              element: section,
986              navLink: $(this)
987            });
988          }
989        }
990      });
991
992      // Section title mapping - updated to match actual HTML content
993      const titleMapping = {
994        // Remove #home since it doesn't have a matching section title
995        '#music': ['STREAM NOW', 'DISCOGRAPHY'],
996        '#videos': 'LATEST MUSIC VIDEOS',
997        '#band': 'THE BAND',
998        '#tour': 'TOUR DATES',
999        '#shop': 'MERCH SHOP',
1000        '#book': 'LITERATURE',
1001        '#contact': 'CONTACT',
1002        '#newsletter': 'NEWSLETTER'
1003      };
1004
1005      // Function to update active states
1006      function updateActiveStates(activeSection) {
1007        // console.log('Updating active states for:', activeSection ? activeSection.id : 'none');
1008
1009        // Remove all active classes
1010        navLinks.parent().removeClass('active');
1011        sectionTitles.removeClass('active');
1012        sectionSubtitles.removeClass('active'); // Remove active from subtitles
1013
1014        if (activeSection) {
1015          // Add active class to navbar link
1016          activeSection.navLink.parent().addClass('active');
1017          // console.log('Added active class to navbar link:', activeSection.navLink.text());
1018
1019          // Add active class to corresponding section titles
1020          const expectedTitles = titleMapping[activeSection.id];
1021          // console.log('Expected titles for', activeSection.id, ':', expectedTitles);
1022
1023          if (expectedTitles) {
1024            sectionTitles.each(function () {
1025              const titleText = $(this).text().trim().toUpperCase();
1026              const matches = Array.isArray(expectedTitles)
1027                ? expectedTitles.includes(titleText)
1028                : titleText === expectedTitles;
1029
1030              // console.log('Checking title:', titleText, 'matches:', matches);
1031
1032              if (matches) {
1033                $(this).addClass('active');
1034                // console.log('Added active class to section title:', titleText);
1035              }
1036            });
1037          }
1038
1039          // Add active class to section subtitles within the active section
1040          activeSection.element.find('h3.section-subtitle').addClass('active');
1041          // console.log('Added active class to subtitles in section:', activeSection.id);
1042        }
1043      }
1044
1045      // Function to determine active section based on scroll position
1046      function checkActiveSection() {
1047        const scrollTop = $(window).scrollTop();
1048        const viewportHeight = $(window).height();
1049        const navbarHeight = navbar ? navbar.offsetHeight : 0;
1050        const triggerOffset = navbarHeight + (viewportHeight * 0.5); // 50% of viewport height
1051
1052        let activeSection = null;
1053        let currentActiveSection = null;
1054
1055        // Find the section that should be active based on scroll position
1056        for (let i = 0; i < sections.length; i++) {
1057          const section = sections[i];
1058          const sectionTop = section.element.offset().top;
1059          const sectionBottom = sectionTop + section.element.outerHeight();
1060
1061          // Check if we've scrolled past the section start
1062          if (scrollTop + triggerOffset >= sectionTop) {
1063            currentActiveSection = section;
1064          }
1065
1066          // If we haven't reached any section yet and we're near the top, use home
1067          if (!currentActiveSection && scrollTop < (viewportHeight * 0.3)) {
1068            currentActiveSection = sections.find(s => s.id === '#home');
1069          }
1070        }
1071
1072        activeSection = currentActiveSection;
1073        updateActiveStates(activeSection);
1074      }
1075
1076      // Throttled scroll handler for better performance
1077      let scrollTimeout;
1078      function handleScroll() {
1079        if (scrollTimeout) {
1080          clearTimeout(scrollTimeout);
1081        }
1082        scrollTimeout = setTimeout(checkActiveSection, 50);
1083      }
1084
1085      // Attach scroll listener
1086      $(window).on('scroll', handleScroll);
1087
1088      // Handle navigation link clicks
1089      navLinks.on('click', function (e) {
1090        const href = $(this).attr('href');
1091        if (!href || href === '#') return; // Skip invalid links
1092
1093        e.preventDefault();
1094        const targetSection = $(href);
1095
1096        if (targetSection.length) {
1097          const navbarHeight = navbar ? navbar.offsetHeight : 0;
1098
1099          $('html, body').animate({
1100            scrollTop: targetSection.offset().top - navbarHeight
1101          }, 800, function () {
1102            history.pushState(null, null, href);
1103            checkActiveSection();
1104          });
1105        }
1106      });
1107
1108      // Debug: Log all found sections
1109      // console.log('Found sections:', sections.map(s => s.id));
1110      // console.log('Found section titles:', sectionTitles.map(function() { return $(this).text().trim(); }).get());
1111
1112      // Initial check on page load
1113      setTimeout(checkActiveSection, 100);
1114    });
1115
1116    // Read More for band-text on mobile (toggle show/hide)
1117    document.addEventListener('DOMContentLoaded', function () {
1118      var bandText = document.getElementById('bandText');
1119      var readMoreBtn = document.getElementById('readMoreBtn');
1120      var previewText = document.querySelector('.preview-text');
1121      function isMobile() {
1122        return window.innerWidth <= 767;
1123      }
1124      function setCollapsed() {
1125        bandText.classList.add('collapsed');
1126        bandText.classList.remove('expanded');
1127        readMoreBtn.textContent = 'Read more';
1128        var full = bandText.querySelector('.band-text-full');
1129        if (full) full.style.display = 'none';
1130        if (previewText) {
1131          previewText.style.display = 'block';
1132          console.log('[band-text] setCollapsed called');
1133          console.log('[band-text] setCollapsed: previewText.style.display =', previewText.style.display, '| computed:', window.getComputedStyle(previewText).display);
1134        } else {
1135          console.warn('[band-text] setCollapsed: previewText is null');
1136        }
1137      }
1138      function setExpanded() {
1139        bandText.classList.remove('collapsed');
1140        bandText.classList.add('expanded');
1141        readMoreBtn.textContent = 'Read less';
1142        var full = bandText.querySelector('.band-text-full');
1143        if (full) full.style.display = 'inline';
1144        if (previewText) {
1145          previewText.style.display = 'none';
1146          console.log('[band-text] setExpanded called');
1147          console.log('[band-text] setExpanded: previewText.style.display =', previewText.style.display, '| computed:', window.getComputedStyle(previewText).display);
1148        } else {
1149          console.warn('[band-text] setExpanded: previewText is null');
1150        }
1151      }
1152      if (bandText && readMoreBtn && isMobile()) {
1153        setCollapsed();
1154        readMoreBtn.style.display = 'inline-block';
1155        readMoreBtn.addEventListener('click', function () {
1156          if (bandText.classList.contains('collapsed')) {
1157            setExpanded();
1158          } else {
1159            setCollapsed();
1160            // Scroll bandText into view after collapsing
1161            setTimeout(function () {
1162              bandText.scrollIntoView({ behavior: 'smooth', block: 'start' });
1163            }, 100);
1164          }
1165        });
1166      }
1167      // Optional: Hide button if not mobile
1168      window.addEventListener('resize', function () {
1169        if (bandText && readMoreBtn) {
1170          if (isMobile()) {
1171            if (!bandText.classList.contains('collapsed') && !bandText.classList.contains('expanded')) {
1172              setCollapsed();
1173              readMoreBtn.style.display = 'inline-block';
1174            }
1175          } else {
1176            bandText.classList.remove('collapsed', 'expanded');
1177            readMoreBtn.style.display = 'none';
1178            var full = bandText.querySelector('.band-text-full');
1179            if (full) full.style.display = '';
1180            if (previewText) previewText.style.display = '';
1181          }
1182        }
1183      });
1184    });
1185
1186    document.addEventListener('DOMContentLoaded', function () {
1187      var bandMainImage = document.getElementById('bandMainImage');
1188      var bandImageCaption = document.getElementById('bandImageCaption');
1189      var bandPhotoButtons = document.querySelectorAll('.band-photo-thumb');
1190
1191      if (!bandMainImage || !bandImageCaption || !bandPhotoButtons.length) {
1192        return;
1193      }
1194
1195      bandPhotoButtons.forEach(function (button) {
1196        button.addEventListener('click', function () {
1197          var nextSrc = button.getAttribute('data-src');
1198          var nextAlt = button.getAttribute('data-alt');
1199          var nextCaption = button.getAttribute('data-caption');
1200
1201          if (!nextSrc || !nextAlt || !nextCaption) {
1202            return;
1203          }
1204
1205          bandMainImage.src = nextSrc;
1206          bandMainImage.alt = nextAlt;
1207          bandImageCaption.innerHTML = '<i>' + nextCaption + '</i>';
1208
1209          bandPhotoButtons.forEach(function (thumbButton) {
1210            thumbButton.classList.remove('active');
1211            thumbButton.setAttribute('aria-pressed', 'false');
1212          });
1213
1214          button.classList.add('active');
1215          button.setAttribute('aria-pressed', 'true');
1216        });
1217      });
1218    });
1219  </script>
1219
1220  
1220<script>
1221    // Tour slideshow functionality
1222    const tourImages = [
1223      { src: 'img/tours/kingsatan-tour2025.jpg' },
1224      { src: 'img/tours/turmionkatilot_kingsatan_2025.jpg' },
1225      { src: 'img/tours/gothminister_2023.jpg' },
1226      { src: 'img/tours/deathstars_2023_2.jpg' }
1227    ];
1228    let currentTourSlide = 0;
1229
1230    function openTourSlideshow(index) {
1231      // console.log('Opening slideshow with index:', index); // Debug log
1232      currentTourSlide = index;
1233      const modal = document.getElementById('tourSlideshow');
1234      const img = document.getElementById('tourSlideImg');
1235      const title = document.getElementById('tourSlideTitle');
1236
1237      if (!modal || !img || !title) {
1238        console.error('Modal elements not found');
1239        return;
1240      }
1241
1242      modal.style.display = 'block';
1243      img.src = tourImages[currentTourSlide].src;
1244      title.textContent = tourImages[currentTourSlide].title;
1245
1246      // Prevent body scroll when modal is open
1247      document.body.style.overflow = 'hidden';
1248    }
1249
1250    function closeTourSlideshow() {
1251      const modal = document.getElementById('tourSlideshow');
1252      if (modal) {
1253        modal.style.display = 'none';
1254      }
1255
1256      // Restore body scroll
1257      document.body.style.overflow = 'auto';
1258    }
1259
1260    function changeTourSlide(direction) {
1261      currentTourSlide += direction;
1262      if (currentTourSlide >= tourImages.length) currentTourSlide = 0;
1263      if (currentTourSlide < 0) currentTourSlide = tourImages.length - 1;
1264
1265      const img = document.getElementById('tourSlideImg');
1266      const title = document.getElementById('tourSlideTitle');
1267      if (img && title) {
1268        img.src = tourImages[currentTourSlide].src;
1269        title.textContent = tourImages[currentTourSlide].title;
1270      }
1271    }
1272
1273    // Wait for DOM to be ready before adding event listeners
1274    document.addEventListener('DOMContentLoaded', function () {
1275      // Close modal when clicking outside the image
1276      const modal = document.getElementById('tourSlideshow');
1277      if (modal) {
1278        modal.addEventListener('click', function (e) {
1279          if (e.target === this) {
1280            closeTourSlideshow();
1281          }
1282        });
1283      }
1284
1285      // Close modal with Escape key
1286      document.addEventListener('keydown', function (e) {
1287        if (e.key === 'Escape') {
1288          closeTourSlideshow();
1289        }
1290        // Navigate with arrow keys
1291        if (modal && modal.style.display === 'block') {
1292          if (e.key === 'ArrowLeft') {
1293            changeTourSlide(-1);
1294          } else if (e.key === 'ArrowRight') {
1295            changeTourSlide(1);
1296          }
1297        }
1298      });
1299    });
1300  </script>
1300
1301  
1301<script>
1302    document.addEventListener('DOMContentLoaded', function () {
1303      var newsletterForm = document.getElementById('newsletterForm');
1304      var newsletterFrame = document.getElementById('newsletter-submit-frame');
1305      var newsletterStatus = document.getElementById('newsletterStatus');
1306      var submitButton = newsletterForm ? newsletterForm.querySelector('.newsletter-submit') : null;
1307      var waitingForResponse = false;
1308
1309      if (!newsletterForm || !newsletterFrame || !newsletterStatus || !submitButton) {
1310        return;
1311      }
1312
1313      function setStatus(message, type) {
1314        newsletterStatus.textContent = message;
1315        newsletterStatus.classList.remove('is-loading', 'is-success', 'is-error');
1316        if (type) {
1317          newsletterStatus.classList.add(type);
1318        }
1319      }
1320
1321      newsletterForm.addEventListener('submit', function (event) {
1322        if (!newsletterForm.checkValidity()) {
1323          event.preventDefault();
1324          newsletterForm.reportValidity();
1325          setStatus('Please enter a valid email address before subscribing.', 'is-error');
1326          return;
1327        }
1328
1329        waitingForResponse = true;
1330        submitButton.disabled = true;
1331        setStatus('Submitting... Please wait.', 'is-loading');
1332      });
1333
1334      newsletterFrame.addEventListener('load', function () {
1335        if (!waitingForResponse) {
1336          return;
1337        }
1338
1339        waitingForResponse = false;
1340        submitButton.disabled = false;
1341        setStatus('Thanks. If this is your first signup, please check your inbox to confirm your subscription.', 'is-success');
1342        newsletterForm.reset();
1343      });
1344    });
1345  </script>
1345
1346</body>
1347
1348</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.