{"product_id":"cyberpunk-2-premium-midtempo-collection","title":"CYBERPUNK 2 | PREMIUM MIDTEMPO COLLECTION","description":"\u003cp\u003e \u003c\/p\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue\u0026amp;family=Montserrat:wght@300;400;600;700\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n.serum2-global-wrapper {\n  width: 100vw;\n  position: relative;\n  left: 50%;\n  transform: translateX(-50%);\n  background: transparent;\n  margin: 0;\n  padding: 0;\n}\n.serum2-inner {\n  max-width: 1300px;\n  width: 100%;\n  margin: 0 auto;\n  padding: 0px 0px;\n  box-sizing: border-box;\n}\n.whzly-list ul {\n  list-style-type: none;\n  padding-left: 0;\n  margin-left: 0;\n}\n@media (max-width: 480px) {\n  .serum2-inner h1 { font-size: 28px !important; }\n}\n.serum2-inner h1,\n.serum2-inner h2,\n.serum2-inner h3 {\n  color: #f0f0e6;\n  text-shadow: 0 0 4px #f0f0e6;\n  position: relative;\n  animation: subtle-glitch 1s ease-in-out infinite;\n}\n.serum2-inner h2::before {\n  content: \"\u003e \";\n  color: #f0f0e6;\n  margin-right: 6px;\n}\n.serum2-inner h1 {\n  text-align: center;\n  margin-bottom: -5px;\n}\n.serum2-inner p,\n.serum2-inner li {\n  color: #f0f0e6;\n  font-size: 16px;\n  line-height: 1.6;\n  z-index: 1;\n  position: relative;\n}\n.system-header::before { content: none !important; }\n@media (max-width: 480px) {\n  .system-header {\n    font-size: 18px !important;\n    line-height: 1.4;\n  }\n}\n.serum2-inner li:not(.expandable-trigger):not(.expandable-wrapper)::before {\n  content: \"▶\\FE0E \";\n  color: #f0f0e6;\n  padding-right: 6px;\n  position: relative;\n  top: 2px;\n}\n.serum2-inner ul {\n  list-style-type: none;\n  padding-left: 0.6rem;\n  margin-left: 0;\n}\n@keyframes subtle-glitch {\n  0%, 60%, 100% { text-shadow: 0 0 4px #f0f0e6; }\n  20% { text-shadow: -1px 0 #f0f0e6, 1px 0 #f0f0e6; }\n  40% { text-shadow: 1px 0 #f0f0e6, -1px 0 #f0f0e6; }\n  80% { text-shadow: 0 0 6px #f0f0e6; }\n}\n.cursor {\n  display: inline-block;\n  width: 8px;\n  height: 14px;\n  background-color: #f0f0e6;\n  margin-left: 3px;\n  animation: blink 0.8s infinite alternate;\n}\n@keyframes blink {\n  from { opacity: 1; }\n  to { opacity: 0; }\n}\n.hook-plus-image {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  gap: 40px;\n  margin: 40px 0;\n  width: 100%;\n}\n.hook-text {\n  flex: 1 1 50%;\n  min-width: 300px;\n}\n.split-combine-section.in-view.animation-complete .half {\n  z-index: 0;\n  pointer-events: none;\n}\n.split-combine-section.in-view.animation-complete .sr-only {\n  pointer-events: auto;\n  z-index: 2;\n}\n.serum2-upsell-text {\n  opacity: 0;\n  visibility: hidden;\n  transform: translateY(20px);\n  transition: opacity 0.6s ease, transform 0.6s ease, visibility 0s linear 0.6s;\n  color: #f0f0e6;\n  text-shadow: 0 0 4px #f0f0e6;\n  animation: subtle-glitch 1s ease-in-out infinite;\n}\n.hook-text h2,\n.serum2-inner h2 { font-size: 24px; }\n.hook-text li,\n.serum2-inner ul li {\n  font-size: 18px;\n  line-height: 1.8;\n}\n.serum2-inner p { font-size: 17px; }\n.split-combine-section {\n  flex: 1 1 40%;\n  max-width: 480px;\n  position: relative;\n  overflow: hidden;\n  height: 320px;\n}\n.split-combine-section .half {\n  position: absolute;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  transition: transform 1s ease-out;\n}\n.split-combine-section .half.left {\n  left: 0;\n  clip-path: polygon(0 0, 50% 0, 50% 100%, 0% 100%);\n  transform: translateX(-100%);\n}\n.split-combine-section .half.right {\n  left: 0;\n  clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%);\n  transform: translateX(100%);\n}\n.split-combine-section .sr-only {\n  position: absolute;\n  width: 100%;\n  object-fit: cover;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  transition: opacity 1s ease-in-out;\n  z-index: 0;\n}\n.split-combine-section.in-view .sr-only {\n  opacity: 1;\n  transition-delay: 1s;\n}\n.split-combine-section.in-view .half.left,\n.split-combine-section.in-view .half.right {\n  transform: translateX(0);\n}\n.split-combine-section.in-view.animation-complete .sr-only {\n  z-index: 2;\n  pointer-events: auto;\n  transition: transform 0.25s ease-in-out;\n}\n.split-combine-section.in-view.animation-complete .sr-only:hover {\n  transform: scale(1.06);\n}\n.split-combine-section.split-whzly {\n  aspect-ratio: 16 \/ 9;\n  height: auto;\n  max-width: 480px;\n}\n.split-img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  transition: filter 0.8s ease;\n  filter: none;\n}\n@media (max-width: 768px) {\n  .hook-plus-image {\n    flex-direction: column;\n    align-items: center;\n    gap: 0px !important;\n  }\n  .split-combine-section {\n    max-width: 100%;\n    height: auto;\n    aspect-ratio: 16 \/ 9;\n  }\n}\n@media (min-width: 769px) {\n  .split-combine-section { margin-top: 30px; }\n}\n@keyframes pulse-glow-smaller {\n  0% { filter: drop-shadow(0 0 4px #f0f0e6); }\n  100% { filter: drop-shadow(0 0 8px #f0f0e6); }\n}\n@media (max-width: 768px) {\n  .vault-plus-split {\n    flex-direction: column;\n    align-items: center;\n  }\n  .split-combine-section { max-width: 100%; }\n}\n.jukebox-wrapper {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  transform-origin: top center;\n  padding: 20px;\n  margin-top: -10px !important;\n}\n@media (max-width: 768px) {\n  .jukebox-wrapper { transform: scale(0.85); }\n}\n@media (max-width: 480px) {\n  .jukebox-wrapper { transform: scale(0.7); }\n}\n.animated-list ul ul {\n  max-height: 0;\n  opacity: 0;\n  transform: translateY(-8px);\n  overflow: hidden;\n  transition: max-height 1.2s ease-in-out, opacity 1.2s ease-in-out, transform 1.2s ease-in-out;\n}\n.animated-list.visible ul ul {\n  max-height: 1000px;\n  opacity: 1;\n  transform: translateY(0);\n}\n@media (max-width: 768px) {\n  .hook-text h2 {\n    margin-top: 0px !important;\n    margin-bottom: 0px;\n  }\n  .hook-text p { margin-bottom: 0px !important; }\n  .vault-and-player { margin-top: 5px !important; }\n  .glitch-button.scroll-button { margin-bottom: 30px !important; }\n}\n@media (max-width: 768px) {\n  .hook-plus-image .hook-text {\n    margin-top: -5px;\n    margin-bottom: -5px !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .serum2-inner {\n    padding-left: 10px !important;\n    padding-right: 10px !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    box-sizing: border-box;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 480px) {\n  .serum2-inner p,\n  .serum2-inner li {\n    font-size: 15px !important;\n    line-height: 1.5 !important;\n  }\n  .serum2-inner h2 {\n    font-size: 22px !important;\n    margin-top: 20px !important;\n    margin-bottom: 12px !important;\n  }\n  #fullscreenTip {\n    font-size: 12px !important;\n    line-height: 1.2 !important;\n  }\n}\n.hook-text ul,\n.vault-section ul {\n  margin-top: 8px !important;\n  margin-bottom: 0px !important;\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"serum2-global-wrapper\"\u003e\n  \u003cdiv class=\"serum2-inner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.glitch-line {\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  font-size: 13px;\n  color: #f0f0e6;\n  font-family: 'Montserrat', sans-serif;\n  margin: 20px 0;\n  position: relative;\n}\n.scrolling-text {\n  display: inline-block;\n  white-space: nowrap;\n  animation: scroll-text 250s linear infinite;\n  padding-left: 0;\n}\n@keyframes scroll-text {\n  0% { transform: translateX(0%); }\n  100% { transform: translateX(-100%); }\n}\n.vault-statement {\n  text-align: center;\n  font-family: 'Montserrat', sans-serif;\n  font-size: 22px;\n  margin: 40px auto -35px auto;\n  max-width: 900px;\n  color: #f0f0e6;\n  text-shadow: 0 0 4px #f0f0e6;\n  animation: subtle-glitch 1s ease-in-out infinite;\n}\n.vault-statement p {\n  margin-bottom: -15px;\n  line-height: 1.5;\n}\n@media (min-width: 769px) {\n  .vault-statement { margin-top: 10px !important; }\n}\n@media (max-width: 768px) {\n  .vault-statement {\n    font-size: 18px !important;\n    line-height: 1.4 !important;\n    padding: 0 10px;\n  }\n  .vault-statement p {\n    font-size: 16px !important;\n    line-height: 1.4 !important;\n    margin-bottom: 0px !important;\n  }\n}\n.glitch-button.scroll-button { margin-top: 4px !important; }\n.desktop-vault-text { display: block; }\n.mobile-vault-text { display: none; }\n@media (max-width: 768px) {\n  .desktop-vault-text { display: none; }\n  .mobile-vault-text { display: block; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .desktop-only-text { display: none !important; }\n}\n@media (min-width: 769px) {\n  .benchmark-tagline {\n    margin-top: -15px;\n    margin-bottom: 9px !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .split-combine-section.split-whzly .half,\n  .split-combine-section.split-serum .half {\n    display: none !important;\n  }\n  .split-combine-section.split-serum {\n    display: flex;\n    align-items: center;\n  }\n  .split-combine-section.split-serum .half {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n  }\n  .split-combine-section .sr-only {\n    opacity: 1 !important;\n    position: relative !important;\n    z-index: 1 !important;\n    pointer-events: auto !important;\n    transition: none !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .split-combine-section {\n    overflow: visible !important;\n    height: auto !important;\n    aspect-ratio: auto !important;\n    max-width: 100% !important;\n    transform: none !important;\n  }\n  .split-combine-section .sr-only {\n    width: 100% !important;\n    height: auto !important;\n    object-fit: contain !important;\n    border-radius: 0 !important;\n    margin: 20px 0 !important;\n    transform: none !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n.expandable-content \u003e ul {\n  margin-top: 4px !important;\n  padding-top: 0px !important;\n}\n.expandable-content ul ul {\n  margin-left: 16px !important;\n  padding-left: 16px !important;\n  border-left: none !important;\n  margin-top: 4px !important;\n  padding-top: 0px !important;\n  margin-bottom: 0px !important;\n}\n.expandable-content ul ul li::before {\n  content: \"•\" !important;\n  margin-right: 4px !important;\n  transform: translateX(-1px) !important;\n  position: relative;\n  top: -2px;\n}\n.expandable-content ul ul li {\n  font-weight: normal;\n  margin-top: 2px !important;\n  margin-bottom: 2px !important;\n  line-height: 1.5 !important;\n}\n.expandable-content ul li {\n  font-weight: bold;\n  margin-top: 2px !important;\n  margin-bottom: 2px !important;\n  line-height: 1.5 !important;\n}\n.nihilism-heading {\n  text-align: center;\n  margin-top: -5px;\n}\n@media (max-width: 768px) {\n  .intro-mobile-hide { display: none; }\n}\n@media (max-width: 768px) {\n  .nihilism-heading { margin-top: 0px !important; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (min-width: 769px) {\n  .vault-and-player {\n    display: flex;\n    flex-wrap: nowrap !important;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 40px;\n    margin-top: 60px;\n  }\n  .vault-section {\n    flex: 1 1 auto !important;\n    min-width: 0;\n    width: 100%;\n  }\n  .jukebox-section {\n    position: relative;\n    flex: 0 0 400px !important;\n    margin-left: 0 !important;\n    transform: none !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .weapon-tagline { margin-bottom: 8px !important; }\n}\n.nihilism-subheading { text-align: center; }\n@media (max-width: 768px) {\n  .desktop-only { display: none; }\n  .mobile-only { display: block; }\n}\n@media (min-width: 769px) {\n  .desktop-only { display: block; }\n  .mobile-only { display: none; }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"serum2-global-wrapper\"\u003e\n  \u003cdiv class=\"serum2-inner\"\u003e\n    \u003ch1 class=\"nihilism-heading\" style=\"margin-top: -40px;\"\u003e\n      \u003cspan class=\"intro-mobile-hide\"\u003eINTRODUCING \u003c\/span\u003eCYBERPUNK 2\n    \u003c\/h1\u003e\n    \u003cp class=\"nihilism-subheading desktop-only\"\u003eThe next evolution of futuristic midtempo production. Dark worlds, cybernetic bass, and cinematic sound design.\u003c\/p\u003e\n    \u003cp class=\"nihilism-subheading mobile-only\"\u003eThe next evolution of futuristic midtempo production.\u003cbr\u003eBuilt for the next digital frontier.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"serum2-inner\" style=\"text-align: center; margin: 5px 0;\"\u003e\n  \u003cdiv class=\"video-glow-wrapper-static\" style=\"max-width: 800px; margin: 0 auto; border-radius: 12px; overflow: hidden; box-shadow: 0 0 20px #f0f0e6;\"\u003e\n    \u003cdiv class=\"whzly-video-inner\"\u003e\n      \u003ciframe src=\"https:\/\/www.youtube.com\/embed\/TCGeRIHSWcU?si=NG8Dr-fYymODCAj_rel=0\u0026amp;modestbranding=1\u0026amp;showinfo=0\u0026amp;autohide=1\u0026amp;controls=1\" style=\"width: 100%; height: 50vw; max-height: 450px; border: none;\"\u003e\u003c\/iframe\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .video-glow-wrapper-static { box-shadow: none !important; }\n}\n.split-combine-section.split-serum .half.right,\n.split-combine-section.split-serum .half.left,\n.split-combine-section.split-serum .sr-only {\n  padding-top: 20px;\n}\n@media (max-width: 768px) {\n  .serum2-inner h1 {\n    font-size: 38px !important;\n    line-height: 1.2 !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .nihilism-tagline-desktop { display: block; }\n  .nihilism-tagline-mobile { display: none; }\n  .hook-text h2 {\n    font-size: 24px !important;\n    margin-top: 40px !important;\n    margin-bottom: 20px !important;\n    text-align: center !important;\n  }\n  .inspired-by-line { text-align: center !important; }\n}\n@media (min-width: 769px) {\n  .nihilism-tagline-mobile { display: none; }\n}\n@media (max-width: 768px) {\n  .hook-plus-image {\n    padding: 0 -20px !important;\n    margin: 0 auto !important;\n    width: 100% !important;\n    max-width: 100% !important;\n    box-sizing: border-box;\n  }\n  .hook-plus-image .hook-text {\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n}\n@media (max-width: 768px) {\n  .hook-plus-image ul { margin-left: 10px !important; }\n}\n@media (max-width: 768px) {\n  .inspired-by-line { font-family: inherit !important; }\n}\n@media (max-width: 768px) {\n  .nihilism-bullets-desktop { display: none; }\n  .nihilism-bullets-mobile {\n    display: block;\n    margin-left: 20px;\n  }\n}\n@media (min-width: 769px) {\n  .nihilism-bullets-mobile { display: none; }\n  .hook-text h2 .gear-icon { display: none; }\n}\n@media (max-width: 769px) {\n  .gear-icon { display: none; }\n}\n@media (max-width: 768px) {\n  .split-combine-section.split-serum { display: none; }\n}\n@media (max-width: 768px) {\n  .vault-and-player { margin-top: 30px !important; }\n}\n@media (max-width: 768px) {\n  .inside-heading-desktop { display: none; }\n}\n@media (min-width: 769px) {\n  .inside-heading-mobile { display: none; }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"hook-plus-image\"\u003e\n  \u003cdiv class=\"hook-text\"\u003e\n    \u003ch2 style=\"margin-top: 35px; margin-bottom: 5px;\"\u003e\n      \u003cspan class=\"gear-icon\"\u003e⚙️\u003c\/span\u003e Built For A Cybernetic Future\n    \u003c\/h2\u003e\n    \u003cp class=\"nihilism-tagline-desktop\"\u003e\u003cstrong\u003e\u003cspan class=\"desktop-only-text\"\u003eDesigned for next-generation electronic music, dark midtempo, and cinematic bass worlds.\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n    \u003cp class=\"nihilism-tagline-mobile\"\u003eDesigned for futuristic bass worlds and cinematic electronic music\u003c\/p\u003e\n    \u003cp class=\"inspired-by-line\" style=\"margin: -20px 0 0; font-family: 'Share Tech Mono', monospace; font-size: 13.5px; color: #f58a80;\"\u003eInspired by dystopian cityscapes, cybernetic grit, cinematic soundtracks, and the heavier side of sound design.\u003c\/p\u003e\n    \u003cul class=\"nihilism-bullets-desktop\"\u003e\n      \u003cli\u003eDark cinematic midtempo meets futuristic cybernetic sound design\u003c\/li\u003e\n      \u003cli\u003e110+ cutting-edge Serum 2 presets\u003c\/li\u003e\n      \u003cli\u003eComplex one-note bass sequences-just hold a key and let it modulate\u003c\/li\u003e\n      \u003cli\u003eFully macro-mapped for live automation and maximum control\u003c\/li\u003e\n      \u003cli\u003e1500+ files across presets, samples, MIDI and production tools\u003c\/li\u003e\n      \u003cli\u003e5 Ableton projects for reverse-engineering pro tracks\u003c\/li\u003e\n      \u003cli\u003eThe ultimate toolkit for futuristic bass producers\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cul class=\"nihilism-bullets-mobile\"\u003e\n      \u003cli\u003eCinematic midtempo x future sound design\u003c\/li\u003e\n      \u003cli\u003e110+ cutting-edge Serum 2 presets\u003c\/li\u003e\n      \u003cli\u003eComplex one-note sequences\u003c\/li\u003e\n      \u003cli\u003eFully macro-mapped for ultimate control\u003c\/li\u003e\n      \u003cli\u003e1500+ files for electronic production\u003c\/li\u003e\n      \u003cli\u003e5 Ableton projects to reverse-engineer\u003c\/li\u003e\n      \u003cli\u003eBuilt for next-generation producers\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"split-combine-section split-serum\"\u003e\n    \u003cdiv class=\"half left\"\u003e\u003cimg class=\"split-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/cyberpunk-skull-split.webp?v=1785804957\" alt=\"Left half of a shadowed biological human skull\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"half right\"\u003e\u003cimg class=\"split-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/cyberpunk-skull-split.webp?v=1785804957\" alt=\"Right half of a polished metallic cybernetic skull with glowing circuits\"\u003e\u003c\/div\u003e\n    \u003cimg class=\"sr-only\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/cyberpunk-skull-split.webp?v=1785804957\" alt=\"Merged transhumanist skull combining biological and cybernetic halves with a glowing orange core\"\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"vault-and-player\"\u003e\n  \u003cdiv class=\"vault-section\" style=\"min-width: 320px;\"\u003e\n    \u003cdiv style=\"margin-bottom: 20px;\"\u003e\n      \u003ch2 class=\"inside-heading-desktop\"\u003e📂 What’s Inside CYBERPUNK 2?\u003c\/h2\u003e\n      \u003ch2 class=\"inside-heading-mobile\"\u003e📂 What’s Inside CYBERPUNK 2?\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"benchmark-tagline\"\u003e\u003cstrong\u003e\u003cspan class=\"desktop-only-text\"\u003e1500+ files. 110+ Serum 2 presets.\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n    \u003cdiv class=\"vault-scroll-area\"\u003e\n      \u003cul class=\"whzly-list\"\u003e\n        \u003cli class=\"expandable-wrapper\"\u003e\n          \u003cdiv class=\"expandable-trigger\" data-target=\"#presets-sublist\"\u003e\n            \u003cspan class=\"arrow-icon\"\u003e\u003c\/span\u003e \u003cstrong\u003e110+ Brand New Serum 2 Presets\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"expandable-content\" id=\"presets-sublist\"\u003e\n            \u003cul\u003e\n              \u003cli\u003e110+ Jaw-Dropping Serum 2 Presets\n                \u003cul\u003e\n                  \u003cli\u003e56 Cyberpunk Bass Presets\u003c\/li\u003e\n                  \u003cli\u003e15 Atmosphere \u0026amp; Drone Presets\u003c\/li\u003e\n                  \u003cli\u003e10 Sequence Presets\u003c\/li\u003e\n                  \u003cli\u003e30 Lead, Pluck, Pad \u0026amp; Chord Presets\u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003eMacro-mapped for instant variation\u003c\/li\u003e\n              \u003cli\u003eOne-note triggered presets included\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"expandable-wrapper\"\u003e\n          \u003cdiv class=\"expandable-trigger\" data-target=\"#samples-sublist\"\u003e\n            \u003cspan class=\"arrow-icon\"\u003e\u003c\/span\u003e \u003cstrong\u003e1500+ Total Files\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"expandable-content\" id=\"samples-sublist\"\u003e\n            \u003cul\u003e\n              \u003cli\u003eAtmospheres\n                \u003cul\u003e\n                  \u003cli\u003e121 Atmosphere Loops\u003c\/li\u003e\n                  \u003cli\u003e35 Atmosphere One Shots\u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003eBass\n                \u003cul\u003e\n                  \u003cli\u003e55 Intro Bass Sounds\u003c\/li\u003e\n                  \u003cli\u003e42 Bass Loops\u003c\/li\u003e\n                  \u003cli\u003e74 Bass One Shots\u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003e39 Drop Layers\u003c\/li\u003e\n              \u003cli\u003e41 Drop Loops\u003c\/li\u003e\n              \u003cli\u003eDrums\n                \u003cul\u003e\n                  \u003cli\u003e50 Build Drum Loops\u003c\/li\u003e\n                  \u003cli\u003e50 Cinematic Drum Loops\u003c\/li\u003e\n                  \u003cli\u003e143 Drum Fills\n                    \u003cul\u003e\n                      \u003cli\u003e40 Short Fills\u003c\/li\u003e\n                      \u003cli\u003e53 Mid Fills\u003c\/li\u003e\n                      \u003cli\u003e50 Long Fills\u003c\/li\u003e\n                    \u003c\/ul\u003e\n                  \u003c\/li\u003e\n                  \u003cli\u003e28 Drum Loops\u003c\/li\u003e\n                  \u003cli\u003e142 Drum One Shots\n                    \u003cul\u003e\n                      \u003cli\u003e27 Claps \u0026amp; Snares\u003c\/li\u003e\n                      \u003cli\u003e42 Hats\u003c\/li\u003e\n                      \u003cli\u003e23 Kicks\u003c\/li\u003e\n                      \u003cli\u003e50 Perc One Shots\u003c\/li\u003e\n                    \u003c\/ul\u003e\n                  \u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003eFX\n                \u003cul\u003e\n                  \u003cli\u003e26 Ambience FX\u003c\/li\u003e\n                  \u003cli\u003e18 Downlifters\u003c\/li\u003e\n                  \u003cli\u003e39 FX Fills\u003c\/li\u003e\n                  \u003cli\u003e68 Impacts\u003c\/li\u003e\n                  \u003cli\u003e25 Risers\u003c\/li\u003e\n                  \u003cli\u003e50 Sweeps\u003c\/li\u003e\n                  \u003cli\u003e89 Verb Shots\u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003eMelodic\n                \u003cul\u003e\n                  \u003cli\u003e100 Melodic Loops\u003c\/li\u003e\n                  \u003cli\u003e58 Melodic One Shots\u003c\/li\u003e\n                \u003c\/ul\u003e\n              \u003c\/li\u003e\n              \u003cli\u003e90 Synth One Shots\u003c\/li\u003e\n              \u003cli\u003e35 MIDI Files\u003c\/li\u003e\n              \u003cli\u003e40+ Cyberpunk Vocals (Lilith Vol.2)\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"expandable-wrapper\"\u003e\n          \u003cdiv class=\"expandable-trigger\" data-target=\"#projects-sublist\"\u003e\n            \u003cspan class=\"arrow-icon\"\u003e\u003c\/span\u003e \u003cstrong\u003e5 Ableton Project Files\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"expandable-content\" id=\"projects-sublist\"\u003e\n            \u003cul\u003e\n              \u003cli\u003eCinematic cyberpunk midtempo\u003c\/li\u003e\n              \u003cli\u003eHeavy basslines \u0026amp; acid-fuelled drops\u003c\/li\u003e\n              \u003cli\u003eDystopian atmospheres \u0026amp; futuristic melodies\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"expandable-wrapper\"\u003e\n  \u003cdiv class=\"expandable-trigger\" data-target=\"#production-videos-sublist\"\u003e\n    \u003cspan class=\"arrow-icon\"\u003e\u003c\/span\u003e \u003cstrong\u003e3 Production Videos\u003c\/strong\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"expandable-content\" id=\"production-videos-sublist\"\u003e\n    \u003cul\u003e\n      \u003cli\u003eCyberpunk Build \u0026amp; Drop Walkthrough\n        \u003cul\u003e\n          \u003cli\u003eSee the pack’s samples, presets \u0026amp; racks come together in a heavy drop.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/li\u003e\n      \u003cli\u003eCreate Your Own MIDI Basslines\n        \u003cul\u003e\n          \u003cli\u003eDiscover a creative way to generate fresh, editable basslines with Serum 2.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/li\u003e\n      \u003cli\u003eDynamic Bass Distortion\n        \u003cul\u003e\n          \u003cli\u003eAdd extra grit and movement with distortion that reacts to your bass.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/li\u003e\n        \u003cli class=\"expandable-wrapper\"\u003e\n          \u003cdiv class=\"expandable-trigger\" data-target=\"#fxracks-sublist\"\u003e\n            \u003cspan class=\"arrow-icon\"\u003e\u003c\/span\u003e \u003cstrong\u003e8 Custom Ableton Racks\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"expandable-content\" id=\"fxracks-sublist\"\u003e\n\u003cul\u003e\n              \u003cli\u003eInstant cybernetic grit and heavy distortion tools\u003c\/li\u003e\n              \u003cli\u003eMix-ready drum processing and utility chains\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n        \u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jukebox-section\"\u003e\n    \u003cdiv class=\"preview-player-wrapper\"\u003e\n      \u003ch3 class=\"audio-preview-heading\"\u003e\n        \u003cspan class=\"emoji\"\u003e🎧\u003c\/span\u003e PREVIEW SOUNDS \u003cspan class=\"emoji\"\u003e🎧\u003c\/span\u003e\n      \u003c\/h3\u003e\n      \u003cdiv class=\"sample-category-buttons\"\u003e\n        \u003cbutton type=\"button\" class=\"sample-category-btn active\" data-category=\"bass\"\u003eBASS\u003c\/button\u003e\n        \u003cbutton type=\"button\" class=\"sample-category-btn\" data-category=\"drums\"\u003eDRUMS\u003c\/button\u003e\n        \u003cbutton type=\"button\" class=\"sample-category-btn\" data-category=\"melodic\"\u003eMELODIC\u003c\/button\u003e\n        \u003cbutton type=\"button\" class=\"sample-category-btn\" data-category=\"fx\"\u003eFX\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"jukebox-wrapper\"\u003e\n      \u003cdiv class=\"jukebox-container\"\u003e\n        \u003cdiv class=\"jukebox-display\"\u003e\n          \u003cdiv class=\"serum-ui\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Serum2AudioPlayer.jpg?v=1747181839\" alt=\"Serum 2 UI\" class=\"serum-bg\"\u003e\n            \u003cdiv id=\"sampleTitle\" class=\"serum-title\"\u003eACID PUNK 1\u003c\/div\u003e\n            \u003cdiv id=\"waveformContainer\" class=\"serum-waveform\"\u003e\u003c\/div\u003e\n            \u003cbutton id=\"prevSample\" class=\"jukebox-btn\"\u003e◀\u003c\/button\u003e\n            \u003cbutton id=\"nextSample\" class=\"jukebox-btn\"\u003e▶\u003c\/button\u003e\n            \u003cbutton id=\"playPause\" class=\"play-pause-btn\"\u003e\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.soundcloud-player-wrap iframe {\n  border: none !important;\n  outline: none !important;\n  background: transparent;\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"hook-plus-image cyberpunk-projects-row\"\u003e\n  \u003cdiv class=\"hook-text\"\u003e\n    \u003ch2 style=\"margin-top: 35px; margin-bottom: 15px;\"\u003e\n      \u003cspan class=\"project-emoji\"\u003e🎛️\u003c\/span\u003e 5 Ableton Project Files Included\n    \u003c\/h2\u003e\n    \u003cul class=\"projects-list-desktop\" style=\"padding-left: 0;\"\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003e5 Ableton projects exploring the world of CYBERPUNK 2\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eDual Blade, Pressure, The Grid, Runner \u0026amp; Acid Fog\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eExplore FX routing, layering, automation \u0026amp; more\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eExplore the sound design behind each track\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cul class=\"projects-list-mobile\" style=\"padding-left: 0;\"\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003e5 Ableton projects included\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eDual Blade, Pressure, The Grid, Runner \u0026amp; Acid Fog\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eMaster FX, layering, and automation\u003c\/li\u003e\n      \u003cli style=\"margin-bottom: 0px;\"\u003eExplore the sound design behind each track\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cdiv class=\"soundcloud-player-wrap\" style=\"margin-top: 20px; max-width: 650px; padding-left: 10px;\"\u003e\n      \u003ciframe width=\"100%\" height=\"20\" scrolling=\"no\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" title=\"CYBERPUNK 2 - DUAL BLADE\" style=\"border: none;\" src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F2402863293%3Fsecret_token%3Ds-sD520iHwQYF\u0026amp;color=%231d1d1e\u0026amp;inverse=true\u0026amp;auto_play=false\u0026amp;show_user=false\"\u003e\u003c\/iframe\u003e\n      \u003ciframe width=\"100%\" height=\"20\" scrolling=\"no\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" title=\"CYBERPUNK 2 - PRESSURE\" style=\"border: none;\" src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F2402863296%3Fsecret_token%3Ds-STSvaQdIFzp\u0026amp;color=%231d1d1e\u0026amp;inverse=true\u0026amp;auto_play=false\u0026amp;show_user=false\"\u003e\u003c\/iframe\u003e\n      \u003ciframe width=\"100%\" height=\"20\" scrolling=\"no\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" title=\"CYBERPUNK 2 - THE GRID\" style=\"border: none;\" src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F2402863302%3Fsecret_token%3Ds-ralcLzvaOTJ\u0026amp;color=%231d1d1e\u0026amp;inverse=true\u0026amp;auto_play=false\u0026amp;show_user=false\"\u003e\u003c\/iframe\u003e\n      \u003ciframe width=\"100%\" height=\"20\" scrolling=\"no\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" title=\"CYBERPUNK 2 - RUNNER\" style=\"border: none;\" src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F2402863305%3Fsecret_token%3Ds-Pcf6BGYSuTC\u0026amp;color=%231d1d1e\u0026amp;inverse=true\u0026amp;auto_play=false\u0026amp;show_user=false\"\u003e\u003c\/iframe\u003e\n      \u003ciframe width=\"100%\" height=\"20\" scrolling=\"no\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" title=\"CYBERPUNK 2 - ACID FOG\" style=\"border: none;\" src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F2402863299%3Fsecret_token%3Ds-EjbDT1abPnr\u0026amp;color=%231d1d1e\u0026amp;inverse=true\u0026amp;auto_play=false\u0026amp;show_user=false\"\u003e\u003c\/iframe\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"projects-image\" style=\"flex: 0 0 420px; display: flex; justify-content: center; margin-left: 85px; margin-top: 25px;\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Cyberpunk_2_projects_1.webp?v=1789705313\" alt=\"5 Ableton Project Files\" style=\"max-width: 100%; height: auto;\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .projects-list-desktop { display: none; }\n  .projects-list-mobile { display: block; }\n}\n@media (min-width: 769px) {\n  .projects-list-mobile { display: none; }\n}\n@media (max-width: 400px) {\n  .audio-preview-heading .emoji { display: none; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .soundcloud-player-wrap { padding-left: 0 !important; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .projects-image { display: none !important; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .project-emoji { display: none; }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"hook-plus-image hook-plus-image-optimized\"\u003e\n  \u003cdiv class=\"hook-text\"\u003e\n    \u003ch2 style=\"margin-top: 35px; margin-bottom: 15px;\"\u003e\n      \u003cspan class=\"no-filler-icon\"\u003e🧪\u003c\/span\u003e Built For Real Productions.\n    \u003c\/h2\u003e\n    \u003cul class=\"no-filler-list-desktop\"\u003e\n      \u003cli\u003eGain-staged, mix-ready, and leveled so you can move fast\u003c\/li\u003e\n      \u003cli\u003e100s of heavy loops designed for instant drop-ins\u003c\/li\u003e\n      \u003cli\u003eOne-note trigger presets built for heavy drops\u003c\/li\u003e\n      \u003cli\u003eEvery file serves a purpose\u003c\/li\u003e\n      \u003cli\u003eDelivered as a fully processed, highly organised toolkit\u003c\/li\u003e\n      \u003cli\u003e100% royalty-free and instantly downloadable\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cul class=\"no-filler-list-mobile\"\u003e\n      \u003cli\u003eGain-staged, mix-ready, \u0026amp; macro-mapped\u003c\/li\u003e\n      \u003cli\u003e100s of heavy loops for instant drop-ins\u003c\/li\u003e\n      \u003cli\u003eAggressive one-note presets\u003c\/li\u003e\n      \u003cli\u003eEvery file serves a purpose\u003c\/li\u003e\n      \u003cli\u003eOrganised, processed production kit\u003c\/li\u003e\n      \u003cli\u003eRoyalty-free \u0026amp; ready to download\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"split-combine-section split-whzly\"\u003e\n    \u003cdiv class=\"half left\"\u003e\u003cimg class=\"split-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Matt_studio_aed46ec1-7a64-4c4a-aad1-e76464bcbbed.webp?v=1789707017\" alt=\"Matt Studio\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"half right\"\u003e\u003cimg class=\"split-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Matt_studio_aed46ec1-7a64-4c4a-aad1-e76464bcbbed.webp?v=1789707017\" alt=\"Matt Studio\"\u003e\u003c\/div\u003e\n    \u003cimg class=\"sr-only\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Matt_studio_aed46ec1-7a64-4c4a-aad1-e76464bcbbed.webp?v=1789707017\" alt=\"Matt Studio\"\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .no-filler-icon { display: none; }\n  .no-filler-heading { margin-top: 30px; }\n}\n@media (max-width: 768px) {\n  .no-filler-list-mobile {\n    display: block;\n    padding-left: 0;\n    margin-top: 10px;\n  }\n  .no-filler-list-desktop { display: none; }\n}\n@media (min-width: 769px) {\n  .no-filler-list-mobile { display: none; }\n  .no-filler-list-desktop { display: block; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .projects-wrapper {\n    flex-direction: column !important;\n    align-items: center !important;\n  }\n  .projects-wrapper \u003e div {\n    max-width: 100% !important;\n    margin-left: 0 !important;\n  }\n  .project-image { margin-top: 40px !important; }\n}\n.project-image img { transition: transform 0.3s ease; }\n.project-image img:hover { transform: scale(1.06); }\n@media (max-width: 768px) {\n  .projects-wrapper {\n    width: 100%;\n    max-width: 650px;\n    margin: 0 auto;\n    padding: 0 15px;\n    box-sizing: border-box;\n  }\n  .projects-wrapper ul {\n    margin-left: 20px !important;\n    padding-left: 0 !important;\n  }\n  .projects-wrapper li { margin-bottom: 10px; }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n@media (max-width: 768px) {\n  .projects-wrapper,\n  .projects-wrapper * {\n    max-width: 650px !important;\n    width: 100% !important;\n    font-size: 15px !important;\n    line-height: 1.6 !important;\n    font-family: 'Syne', sans-serif !important;\n    box-sizing: border-box !important;\n    color: #f0f0e6 !important;\n  }\n  .projects-wrapper h2 {\n    font-size: 22px !important;\n    margin-top: 25px !important;\n    margin-bottom: 15px !important;\n    text-align: center !important;\n  }\n  .projects-wrapper ul {\n    padding-left: 20px !important;\n    margin: 0 !important;\n  }\n  .projects-wrapper li {\n    margin-bottom: 12px !important;\n    list-style-type: disc !important;\n  }\n}\n@media (max-width: 768px) {\n  .projects-wrapper ul {\n    font-size: 15px !important;\n    line-height: 1.6 !important;\n    font-family: 'Syne', sans-serif !important;\n    padding-left: 20px !important;\n    margin: 0 !important;\n    color: #f0f0e6 !important;\n  }\n  .projects-wrapper li {\n    margin-bottom: 12px !important;\n    list-style-type: disc !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n.expandable-content {\n  display: block;\n  max-height: 0;\n  overflow: hidden;\n  opacity: 0;\n  transition: max-height 0.6s ease, opacity 0.6s ease;\n  will-change: max-height, opacity;\n}\n.expandable-content ul {\n  margin-left: 15px;\n  padding-left: 20px;\n  border-left: 2px solid #f0f0e6;\n}\n.expandable-content ul li {\n  font-size: 16px;\n  opacity: 0.9;\n}\n.expandable-content ul li::before {\n  content: \"◦\";\n  color: #7cff5a;\n  margin-right: 8px;\n}\n.expandable-content.visible {\n  max-height: 1000px;\n  opacity: 1;\n}\n@media (max-width: 768px) {\n  .expandable-content ul {\n    margin-left: 8px !important;\n    padding-left: 12px !important;\n    border-left: 2px solid #f0f0e6;\n  }\n  .expandable-trigger .arrow-icon { margin-right: 2px !important; }\n  .expandable-content ul li::before {\n    padding-right: 0px !important;\n    margin-right: 4px !important;\n  }\n}\n.whzly-list {\n  list-style: none;\n  padding-left: 0;\n}\n.whzly-list li:not(.expandable-wrapper):not(.expandable-trigger)::before {\n  content: \"▶\\FE0E \";\n  color: #f0f0e6;\n  padding-right: 6px;\n}\n.expandable-wrapper { margin-bottom: 10px; }\n.expandable-trigger::before { content: none; }\n.arrow-icon {\n  display: inline-block;\n  color: #f0f0e6;\n  margin-right: 8px;\n  animation: arrowPulse 1.6s ease-in-out infinite;\n  transition: transform 0.3s ease;\n}\n.expandable-trigger,\n.expandable-trigger .arrow-icon { cursor: pointer; }\n.expandable-trigger strong {\n  color: #f0f0e6;\n  text-shadow: 0 0 4px #f0f0e6;\n  font-weight: bold;\n}\n@keyframes arrowPulse {\n  0%, 100% {\n    opacity: 1;\n    transform: translateX(0);\n  }\n  50% {\n    opacity: 0.5;\n    transform: translateX(2px);\n  }\n}\n.expandable-trigger.active .arrow-icon { animation: none; }\n.arrow-icon::before { content: \"▶\"; }\n.expandable-trigger.active .arrow-icon::before { content: \"▼\"; }\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n.preview-player-wrapper {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  margin-bottom: 16px;\n  margin-top: -12px !important;\n  width: 100%;\n}\n.sample-category-buttons {\n  display: flex;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 8px;\n  margin-bottom: -10px !important;\n}\n@media (max-width: 480px) {\n  .sample-category-buttons {\n    transform: scale(0.7);\n    transform-origin: top center;\n    margin-left: -10px !important;\n    margin-right: -10px !important;\n  }\n}\n.sample-category-btn {\n  background: transparent;\n  border: 2px solid #f0f0e6;\n  color: #f0f0e6;\n  font-family: 'Montserrat', sans-serif;\n  padding: 6px 14px;\n  font-size: 14px;\n  border-radius: 4px;\n  cursor: pointer;\n  transition: all 0.3s ease;\n  text-shadow: 0 0 4px #f0f0e6;\n}\n.sample-category-btn:hover,\n.sample-category-btn.active {\n  background: #f0f0e6;\n  color: black;\n  box-shadow: 0 0 10px #f0f0e6;\n}\n.category-buttons {\n  display: flex;\n  justify-content: space-between;\n  gap: 10px;\n  width: 400px;\n  margin: 0 auto 10px auto;\n}\n@media (max-width: 480px) {\n  .sample-category-buttons {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    scrollbar-width: none;\n  }\n  .sample-category-buttons::-webkit-scrollbar { display: none; }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', () =\u003e {\n  const triggers = document.querySelectorAll('.expandable-trigger');\n  const manualToggles = new Set();\n  const autoExpanded = new Set();\n  let lastY = window.scrollY;\n\n  triggers.forEach(trigger =\u003e {\n    trigger.addEventListener('click', () =\u003e {\n      const target = document.querySelector(trigger.dataset.target);\n      const id = trigger.dataset.target;\n      trigger.classList.toggle('active');\n      target.classList.toggle('visible');\n      manualToggles.add(id);\n      autoExpanded.delete(id);\n    });\n  });\n\n  const handleScrollExpand = () =\u003e {\n    const currentY = window.scrollY;\n    const scrollingUp = currentY \u003c lastY;\n    lastY = currentY;\n\n    triggers.forEach(trigger =\u003e {\n      const id = trigger.dataset.target;\n      const target = document.querySelector(id);\n      const rect = target.getBoundingClientRect();\n      const triggerPoint = window.innerHeight * (id === '#samples-sublist' ? 0.65 : 0.75);\n\n      if (manualToggles.has(id)) return;\n\n      if (!scrollingUp \u0026\u0026 rect.top \u003c triggerPoint \u0026\u0026 rect.bottom \u003e 0) {\n        trigger.classList.add('active');\n        target.classList.add('visible');\n        autoExpanded.add(id);\n      }\n\n      if (scrollingUp \u0026\u0026 autoExpanded.has(id) \u0026\u0026 rect.top \u003e triggerPoint) {\n        trigger.classList.remove('active');\n        target.classList.remove('visible');\n        autoExpanded.delete(id);\n      }\n    });\n  };\n\n  window.addEventListener('scroll', handleScrollExpand, { passive: true });\n  handleScrollExpand();\n});\n\u003c\/script\u003e\n\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cstyle\u003e\n.audio-preview-heading {\n  display: block;\n  text-align: center;\n  color: #f0f0e6;\n  font-family: 'Montserrat', sans-serif;\n  font-size: 24px;\n  font-weight: bold;\n  letter-spacing: 1px;\n  margin-bottom: 8px !important;\n}\n@media (min-width: 769px) {\n  .audio-preview-heading {\n    margin-top: 10px;\n    text-align: center;\n  }\n}\n.jukebox-section {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: flex-start;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.vault-and-player {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 40px;\n  margin-top: 60px;\n}\n.vault-text {\n  flex: 1 1 50%;\n  min-width: 300px;\n}\n.player-container {\n  flex: 1 1 40%;\n  min-width: 300px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n@media (max-width: 768px) {\n  .vault-and-player {\n    flex-direction: column;\n    width: 100%;\n    align-items: center;\n    margin: 0 auto;\n  }\n  .vault-text,\n  .player-container { width: 100%; }\n}\n.jukebox-container {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform: scale(1);\n  transform-origin: top center;\n  padding: 0;\n  margin-top: 0;\n  margin-top: 0;\n}\n.jukebox-display {\n  position: relative;\n  width: 100%;\n  max-width: 400px;\n  aspect-ratio: 657 \/ 778;\n  margin: 0 auto;\n}\n.serum-ui {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.serum-bg {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.serum-title {\n  position: absolute;\n  top: 43px;\n  left: 50%;\n  transform: translateX(-51%);\n  font-family: 'Montserrat', sans-serif;\n  font-size: 21px;\n  font-weight: 400;\n  color: #ffffff;\n  letter-spacing: 0.5px;\n  text-shadow: none;\n  text-transform: uppercase;\n  white-space: nowrap;\n}\n.serum-waveform {\n  position: absolute;\n  top: 110px;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 100%;\n  height: 144px;\n  overflow: hidden;\n}\n.play-pause-btn {\n  position: absolute;\n  top: 184px;\n  left: 50%;\n  transform: translate(-50%, -50%) translateX(10px);\n  width: 100px;\n  height: 100px;\n  background: transparent;\n  border: none;\n  z-index: 3;\n  opacity: 1;\n  padding: 0;\n  font-size: 0;\n  pointer-events: auto;\n}\n.play-pause-btn::before {\n  content: '';\n  display: block;\n  width: 0;\n  height: 0;\n  margin: auto;\n  border-style: solid;\n  border-width: 30px 0 30px 50px;\n  border-color: transparent transparent transparent #f0f0e6;\n  position: relative;\n  left: -6px;\n}\n.play-pause-btn.paused::before {\n  content: '';\n  display: block;\n  width: 24px;\n  height: 28px;\n  margin: 0 auto;\n  background: linear-gradient(to right, #f0f0e6 8px, transparent 8px, transparent 16px, #f0f0e6 16px);\n  transform: translateX(-2px);\n}\n.play-pause-btn::before,\n.play-pause-btn.paused::before {\n  text-shadow: 0 0 6px #f0f0e6;\n  filter: drop-shadow(0 0 6px #f0f0e6);\n  transition: filter 0.3s ease-in-out;\n}\n.play-pause-btn:hover::before,\n.play-pause-btn.paused:hover::before {\n  filter: drop-shadow(0 0 10px #f0f0e) drop-shadow(0 0 16px #f0f0e);\n}\n.play-pause-btn.playing::before {\n  opacity: 0.2;\n  transition: opacity 0.3s ease;\n}\n@media (max-width: 480px) {\n  .play-pause-btn {\n    width: 82px !important;\n    height: 82px !important;\n    position: absolute;\n    top: 47%;\n    left: 52%;\n    transform: translate(-50%, -50%);\n    z-index: 10;\n  }\n  .play-pause-btn::before {\n    content: '';\n    position: absolute;\n    border-style: solid;\n    border-width: 41px 0 41px 68px;\n    border-color: transparent transparent transparent #f0f0e6;\n    background: none;\n    left: -2px;\n    top: 0;\n    transform: none;\n    opacity: 1;\n  }\n  .play-pause-btn.paused::before {\n    content: '';\n    position: absolute;\n    width: 54px;\n    height: 76px;\n    background: linear-gradient(to right, #f0f0e6 18px, transparent 18px, transparent 36px, #f0f0e6 36px);\n    border: none;\n    left: 14px;\n    top: 3px;\n    transform: none;\n    opacity: 1;\n  }\n}\n@media (max-width: 375px) {\n  .play-pause-btn {\n    width: 65px !important;\n    height: 65px !important;\n  }\n  .play-pause-btn::before {\n    border-width: 30px 0 30px 50px;\n    left: -4px;\n  }\n  .play-pause-btn.paused::before {\n    width: 42px;\n    height: 60px;\n  }\n}\n@media (max-width: 480px) {\n  .play-pause-btn::before,\n  .play-pause-btn.paused::before {\n    transform: scale(0.7) translateX(-2px);\n  }\n}\n.jukebox-btn {\n  position: absolute;\n  top: 184px;\n  transform: translateY(-50%);\n  background: transparent;\n  border: none;\n  color: #f0f0e6;\n  font-size: 40px;\n  font-family: 'Arial', 'Helvetica Neue', sans-serif;\n  cursor: pointer;\n  z-index: 3;\n  transition: color 0.2s ease, text-shadow 0.2s ease;\n  text-shadow: 0 0 6px #f0f0e6;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.jukebox-btn:hover {\n  color: #f0f0e;\n  text-shadow: 0 0 6px #f0f0e6, 0 0 12px #f0f0e6, 0 0 18px #f0f0e6;\n}\n#prevSample { left: -34px; }\n#nextSample { right: -34px; }\n@media (max-width: 480px) {\n  .jukebox-btn { top: 178px; }\n  #prevSample { left: -40px; }\n  #nextSample { right: -40px; }\n}\n@media (max-width: 480px) {\n  .jukebox-display {\n    max-width: 100%;\n    width: 90vw;\n    transform: scale(0.85);\n    transform-origin: top center;\n    margin: 0 auto;\n  }\n  .serum-title {\n    font-size: 18px;\n    top: 9.1%;\n  }\n  .play-pause-btn {\n    font-size: 86px;\n    top: 39%;\n    transform: translate(-50%, -50%);\n  }\n  .serum-waveform {\n    height: 30%;\n    top: 23%;\n  }\n  .jukebox-btn {\n    font-size: 63px;\n    top: 38.2%;\n  }\n}\n@media (max-width: 375px) {\n  .jukebox-display { transform: scale(0.8); }\n  .serum-title {\n    font-size: 16px;\n    top: 9.5%;\n  }\n  .play-pause-btn {\n    font-size: 58px;\n    top: 40%;\n    transform: translate(-50%, -50%);\n  }\n  .serum-waveform {\n    height: 29%;\n    top: 24%;\n  }\n  .jukebox-btn {\n    font-size: 58px;\n    top: 40%;\n  }\n}\n@media (max-width: 768px) {\n  .jukebox-section { margin-bottom: -50px; }\n}\n@media (min-width: 769px) {\n  .jukebox-section {\n    flex: 0 1 45%;\n    min-width: 300px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n  }\n}\n@media (max-width: 480px) {\n  .jukebox-display {\n    transform: scale(0.85);\n    transform-origin: top center;\n    width: 100%;\n    max-width: 400px;\n    margin: 0 auto;\n  }\n  .serum-ui {\n    transform: scale(1);\n    width: 100%;\n    height: auto;\n  }\n}\n@media (max-width: 768px) {\n  .jukebox-section {\n    margin-left: 0 !important;\n    width: 100%;\n    padding: 0 10px;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n  }\n  .jukebox-wrapper {\n    width: 100%;\n    max-width: 400px;\n    margin: 0 auto;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    transform: none !important;\n    padding: 0;\n    box-sizing: border-box;\n  }\n  .jukebox-container {\n    width: 100%;\n    max-width: 400px;\n    margin: 0 auto;\n    transform: none !important;\n  }\n  .jukebox-display {\n    width: 100%;\n    max-width: 400px;\n    margin: 0 auto;\n  }\n}\n@media (max-width: 768px) {\n  .jukebox-section {\n    margin-left: 0 !important;\n    padding-left: 15px;\n    padding-right: 15px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n  .jukebox-container {\n    width: 100%;\n    justify-content: center;\n  }\n}\n@media (max-width: 768px) {\n  .audio-preview-heading {\n    margin-left: 0 !important;\n    font-size: 22px !important;\n    margin-right: 0 !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    text-align: center !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cp\u003e\n\u003cscript\u003e\nconst previewBase = \"https:\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/\";\nconst sampleData = Object.fromEntries(Object.entries({\n  \"bass\": [\n    [\"ACID PUNK 1\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_02_Cmin_100.mp3?v=1789693374\"],\n    [\"ACID PUNK 3\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_04_Fmin_100.mp3?v=1789693374\"],\n    [\"CYBER ACID\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_07_Dmin_100.mp3?v=1789693374\"],\n    [\"CYBER 7\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_14_F_100.mp3?v=1789693374\"],\n    [\"CYBER 11\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_01_Dmin_100.mp3?v=1789693375\"],\n    [\"PLUCK BASS 2\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_22_Cmin_100.mp3?v=1789693374\"],\n    [\"TRIGGER BASSLINE 4\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_29_Fmin_100.mp3?v=1789693374\"],\n    [\"TRIGGER BASSLINE 6\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_21_Dmin_100.mp3?v=1789693374\"],\n    [\"TRIGGER BASSLINE 8\",\"EDMT_CYBERPUNK_2_-_Bass_Loop_12_Dmin_100.mp3?v=1789693374\"],\n    [\"Drop Loop 01\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_01_Cm_100.mp3?v=1789693374\"],\n    [\"Drop Loop 03\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_03_Cmin_95.mp3?v=1789693375\"],\n    [\"Drop Loop 06\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_06_Fm_100.mp3?v=1789693375\"],\n    [\"Drop Loop 07\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_07_Cm_100.mp3?v=1789693375\"],\n    [\"Drop Loop 08\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_08_Cmin_95.mp3?v=1789693374\"],\n    [\"Drop Loop 12\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_12_Dm_110.mp3?v=1789693374\"],\n    [\"Drop Loop 30\",\"EDMT_CYBERPUNK_2_-_Drop_Loop_30_Cmin_105.mp3?v=1789693374\"],\n    [\"Intro Bass Loop 01\",\"EDMT_CYBERPUNK_2_-_Intro_Bass_Loop_01_Fmin_100.mp3?v=1789693375\"],\n    [\"Intro Bass Loop 02\",\"EDMT_CYBERPUNK_2_-_Intro_Bass_Loop_02_Cmin_100.mp3?v=1789693375\"],\n    [\"Intro Bass Loop 04\",\"EDMT_CYBERPUNK_2_-_Intro_Bass_Loop_04_Dmin_100.mp3?v=1789693375\"],\n    [\"Intro Bass Loop 05\",\"EDMT_CYBERPUNK_2_-_Intro_Bass_Loop_05_Cmin_100.mp3?v=1789693375\"],\n    [\"Intro Bass Loop 28\",\"EDMT_CYBERPUNK_2_-_Intro_Bass_Loop_28_Cmin_100.mp3?v=1789693375\"],\n    [\"Bass One Shot 01\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_01_Dm.mp3?v=1789693374\"],\n    [\"Bass One Shot 03\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_03_Dm.mp3?v=1789693374\"],\n    [\"Bass One Shot 08\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_08_Em.mp3?v=1789693374\"],\n    [\"Bass One Shot 13\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_13_Em.mp3?v=1789693374\"],\n    [\"Bass One Shot 16\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_16_Dm.mp3?v=1789693374\"],\n    [\"Bass One Shot 26\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_26_Em.mp3?v=1789693374\"],\n    [\"Bass One Shot 28\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_28_E.mp3?v=1789693374\"],\n    [\"Bass One Shot 43\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_43_Cm.mp3?v=1789693374\"],\n    [\"Bass One Shot 49\",\"EDMT_CYBERPUNK_2_-_Bass_One_Shot_49_Fm.mp3?v=1789693373\"]\n  ],\n  \"drums\": [\n    [\"Drum Loop 02 95bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_02_95.mp3?v=1789693375\"],\n    [\"Drum Loop 04 95bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_04_95.mp3?v=1789693375\"],\n    [\"Drum Loop 01 100bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_01_100.mp3?v=1789693374\"],\n    [\"Drum Loop 03 100bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_03_100.mp3?v=1789693375\"],\n    [\"Drum Loop 04 100bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_04_100.mp3?v=1789693374\"],\n    [\"Drum Loop 01 105bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_01_105.mp3?v=1789693375\"],\n    [\"Drum Loop 07 105bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_07_105.mp3?v=1789693375\"],\n    [\"Drum Loop 01 110bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_01_110.mp3?v=1789693375\"],\n    [\"Drum Loop 05 110bpm\",\"EDMT_CYBERPUNK_2_-_Drum_Loop_05_110.mp3?v=1789693375\"],\n    [\"Cinematic Drum Loop 01\",\"EDMT_CYBERPUNK_2_-_Cinematic_Drum_Loop_01_100.mp3?v=1789693374\"],\n    [\"Cinematic Drum Loop 04\",\"EDMT_CYBERPUNK_2_-_Cinematic_Drum_Loop_04_100.mp3?v=1789693375\"],\n    [\"Cinematic Drum Loop 07\",\"EDMT_CYBERPUNK_2_-_Cinematic_Drum_Loop_07_100.mp3?v=1789693375\"],\n    [\"Cinematic Drum Loop 11\",\"EDMT_CYBERPUNK_2_-_Cinematic_Drum_Loop_11_100.mp3?v=1789693374\"],\n    [\"Short Drum Fill 01\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_01.mp3?v=1789693374\"],\n    [\"Short Drum Fill 04\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_04.mp3?v=1789693374\"],\n    [\"Short Drum Fill 05\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_05.mp3?v=1789693376\"],\n    [\"Short Drum Fill 06\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_06.mp3?v=1789693374\"],\n    [\"Short Drum Fill 14\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_14.mp3?v=1789693374\"],\n    [\"Short Drum Fill 17\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_17.mp3?v=1789693374\"],\n    [\"Short Drum Fill 21\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_21.mp3?v=1789693374\"],\n    [\"Short Drum Fill 28\",\"EDMT_CYBERPUNK_2_-_Short_Drum_Fill_28.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 02\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_02_100.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 05\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_05_100.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 08\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_08_100.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 14\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_14_100.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 19\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_19_100.mp3?v=1789693374\"],\n    [\"Mid Drum Fill 44\",\"EDMT_CYBERPUNK_2_-_Mid_Drum_Fill_44_100.mp3?v=1789693374\"],\n    [\"Long Drum Fill 03\",\"EDMT_CYBERPUNK_2_-_Long_Drum_Fill_03_100.mp3?v=1789693375\"],\n    [\"Long Drum Fill 08\",\"EDMT_CYBERPUNK_2_-_Long_Drum_Fill_08_100.mp3?v=1789693375\"],\n    [\"Long Drum Fill 09\",\"EDMT_CYBERPUNK_2_-_Long_Drum_Fill_09_100.mp3?v=1789693374\"],\n    [\"Long Drum Fill 13\",\"EDMT_CYBERPUNK_2_-_Long_Drum_Fill_13_100.mp3?v=1789693374\"],\n    [\"Long Drum Fill 16\",\"EDMT_CYBERPUNK_2_-_Long_Drum_Fill_16_100.mp3?v=1789693374\"],\n    [\"Kick 02\",\"EDMT_CYBERPUNK_2_-_Kick_02.mp3?v=1789693374\"],\n    [\"Kick 06\",\"EDMT_CYBERPUNK_2_-_Kick_06.mp3?v=1789693374\"],\n    [\"Kick 09\",\"EDMT_CYBERPUNK_2_-_Kick_09.mp3?v=1789693374\"],\n    [\"Kick 11\",\"EDMT_CYBERPUNK_2_-_Kick_11.mp3?v=1789693374\"],\n    [\"Kick 12\",\"EDMT_CYBERPUNK_2_-_Kick_12.mp3?v=1789693374\"],\n    [\"Kick 15\",\"EDMT_CYBERPUNK_2_-_Kick_15.mp3?v=1789693374\"],\n    [\"Kick 17\",\"EDMT_CYBERPUNK_2_-_Kick_17.mp3?v=1789693374\"],\n    [\"Kick 20\",\"EDMT_CYBERPUNK_2_-_Kick_20.mp3?v=1789693374\"],\n    [\"Clap \u0026 Snare 01\",\"EDMT_CYBERPUNK_2_-_Clap_Snare_01.mp3?v=1789693373\"],\n    [\"Clap \u0026 Snare 05\",\"EDMT_CYBERPUNK_2_-_Clap_Snare_05.mp3?v=1789693373\"],\n    [\"Clap \u0026 Snare 07\",\"EDMT_CYBERPUNK_2_-_Clap_Snare_07.mp3?v=1789693374\"],\n    [\"Clap \u0026 Snare 08\",\"EDMT_CYBERPUNK_2_-_Clap_Snare_08.mp3?v=1789693373\"],\n    [\"Clap \u0026 Snare 19\",\"EDMT_CYBERPUNK_2_-_Clap_Snare_19.mp3?v=1789693373\"],\n    [\"Hat 01\",\"EDMT_CYBERPUNK_2_-_Hat_01.mp3?v=1789693374\"],\n    [\"Hat 02\",\"EDMT_CYBERPUNK_2_-_Hat_02.mp3?v=1789693374\"],\n    [\"Hat 04\",\"EDMT_CYBERPUNK_2_-_Hat_04.mp3?v=1789693374\"],\n    [\"Hat 08\",\"EDMT_CYBERPUNK_2_-_Hat_08.mp3?v=1789693374\"],\n    [\"Hat 30\",\"EDMT_CYBERPUNK_2_-_Hat_30.mp3?v=1789693374\"],\n    [\"Hat 33\",\"EDMT_CYBERPUNK_2_-_Hat_33.mp3?v=1789693374\"],\n    [\"Hat 36\",\"EDMT_CYBERPUNK_2_-_Hat_36.mp3?v=1789693373\"],\n    [\"Hat 40\",\"EDMT_CYBERPUNK_2_-_Hat_40.mp3?v=1789693374\"],\n    [\"Perc 01\",\"EDMT_CYBERPUNK_2_-_Perc_01.mp3?v=1789693374\"],\n    [\"Perc 02\",\"EDMT_CYBERPUNK_2_-_Perc_02.mp3?v=1789693374\"],\n    [\"Perc 03\",\"EDMT_CYBERPUNK_2_-_Perc_03.mp3?v=1789693374\"],\n    [\"Perc 05\",\"EDMT_CYBERPUNK_2_-_Perc_05.mp3?v=1789693374\"],\n    [\"Perc 08\",\"EDMT_CYBERPUNK_2_-_Perc_08.mp3?v=1789693374\"],\n    [\"Perc 09\",\"EDMT_CYBERPUNK_2_-_Perc_09.mp3?v=1789693374\"],\n    [\"Perc 10\",\"EDMT_CYBERPUNK_2_-_Perc_10.mp3?v=1789693374\"],\n    [\"Perc 12\",\"EDMT_CYBERPUNK_2_-_Perc_12.mp3?v=1789693374\"],\n    [\"Perc 13\",\"EDMT_CYBERPUNK_2_-_Perc_13.mp3?v=1789693374\"],\n    [\"Perc 14\",\"EDMT_CYBERPUNK_2_-_Perc_14.mp3?v=1789693374\"],\n    [\"Perc 15\",\"EDMT_CYBERPUNK_2_-_Perc_15.mp3?v=1789693374\"],\n    [\"Perc 24\",\"EDMT_CYBERPUNK_2_-_Perc_24.mp3?v=1789693374\"],\n    [\"Perc 30\",\"EDMT_CYBERPUNK_2_-_Perc_30.mp3?v=1789693374\"],\n    [\"Perc 37\",\"EDMT_CYBERPUNK_2_-_Perc_37.mp3?v=1789693375\"],\n    [\"Perc 40\",\"EDMT_CYBERPUNK_2_-_Perc_40.mp3?v=1789693374\"],\n    [\"Perc 50\",\"EDMT_CYBERPUNK_2_-_Perc_50.mp3?v=1789693374\"]\n  ],\n  \"melodic\": [\n    [\"Melodic Loop 01\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_01_Dm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 02\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_02_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 03\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_03_Em_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 04\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_04_Dm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 09\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_09_Fm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 15\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_15_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 16\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_16_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 18\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_18_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 43\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_43_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 55\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_55_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 80\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_80_Dm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 82\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_82_Cm_100.mp3?v=1789693375\"],\n    [\"Melodic Loop 94\",\"EDMT_CYBERPUNK_2_-_Melodic_Loop_94_Dm_100.mp3?v=1789693375\"],\n    [\"Melodic One Shot 01\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_01_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 05\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_05_Cm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 07\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_07_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 11\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_11_Em.mp3?v=1789693374\"],\n    [\"Melodic One Shot 14\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_14_Cm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 16\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_16_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 24\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_24_Em.mp3?v=1789693374\"],\n    [\"Melodic One Shot 27\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_27_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 28\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_28_Cm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 31\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_31_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 39\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_39_Cm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 44\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_44_Dm.mp3?v=1789693374\"],\n    [\"Melodic One Shot 50\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_50_Dm.mp3?v=1789693375\"],\n    [\"Melodic One Shot 52\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_52_Dm.mp3?v=1789693374\"],\n    [\"Melodic One Shot 58\",\"EDMT_CYBERPUNK_2_-_Melodic_One_Shot_58_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 01\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_01_Dm.mp3?v=1789693376\"],\n    [\"Synth One Shot 02\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_02_Cm.mp3?v=1789693375\"],\n    [\"Synth One Shot 03\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_03_Cm.mp3?v=1789693375\"],\n    [\"Synth One Shot 08\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_08_Fm.mp3?v=1789693375\"],\n    [\"Synth One Shot 10\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_10_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 19\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_19_Fm.mp3?v=1789693375\"],\n    [\"Synth One Shot 26\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_26_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 30\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_30_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 38\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_38_Cm.mp3?v=1789693376\"],\n    [\"Synth One Shot 43\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_43_Cm.mp3?v=1789693375\"],\n    [\"Synth One Shot 61\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_61_Cm.mp3?v=1789693375\"],\n    [\"Synth One Shot 66\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_66_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 69\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_69_Dm.mp3?v=1789693375\"],\n    [\"Synth One Shot 72\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_72_Em.mp3?v=1789693375\"],\n    [\"Synth One Shot 87\",\"EDMT_CYBERPUNK_2_-_Synth_One_Shot_87_Cm.mp3?v=1789693375\"]\n  ],\n  \"fx\": [\n    [\"Atmo Loop 01\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_01_Cm_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 05\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_05_Cm_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 07\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_07_Cm_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 12\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_12_Dm_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 16\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_16_Em_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 25\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_25_Fm_100.mp3?v=1789693374\"],\n    [\"Atmo Loop 82\",\"EDMT_CYBERPUNK_2_-_Atmo_Loop_82_Fm_100.mp3?v=1789693374\"],\n    [\"Ambience 01\",\"EDMT_CYBERPUNK_2_-_Ambience_01.mp3?v=1789693239\"],\n    [\"Ambience 04\",\"EDMT_CYBERPUNK_2_-_Ambience_04.mp3?v=1789693374\"],\n    [\"Ambience 06\",\"EDMT_CYBERPUNK_2_-_Ambience_06.mp3?v=1789693375\"],\n    [\"Ambience 09\",\"EDMT_CYBERPUNK_2_-_Ambience_09.mp3?v=1789693374\"],\n    [\"Ambience 14\",\"EDMT_CYBERPUNK_2_-_Ambience_14.mp3?v=1789693374\"],\n    [\"Ambience 18\",\"EDMT_CYBERPUNK_2_-_Ambience_18.mp3?v=1789693374\"],\n    [\"Atmo One Shot 01\",\"EDMT_CYBERPUNK_2_-_Atmo_One_Shot_01_Dm.mp3?v=1789693375\"],\n    [\"Atmo One Shot 03\",\"EDMT_CYBERPUNK_2_-_Atmo_One_Shot_03_Cm.mp3?v=1789693374\"],\n    [\"Atmo One Shot 04\",\"EDMT_CYBERPUNK_2_-_Atmo_One_Shot_04_Dm.mp3?v=1789693374\"],\n    [\"Atmo One Shot 19\",\"EDMT_CYBERPUNK_2_-_Atmo_One_Shot_19_Fm.mp3?v=1789693374\"],\n    [\"Impact 01\",\"EDMT_CYBERPUNK_2_-_Impact_01.mp3?v=1789693375\"],\n    [\"Impact 03\",\"EDMT_CYBERPUNK_2_-_Impact_03.mp3?v=1789693375\"],\n    [\"Impact 05\",\"EDMT_CYBERPUNK_2_-_Impact_05.mp3?v=1789693374\"],\n    [\"Impact 07\",\"EDMT_CYBERPUNK_2_-_Impact_07.mp3?v=1789693375\"],\n    [\"Impact 09\",\"EDMT_CYBERPUNK_2_-_Impact_09.mp3?v=1789693374\"],\n    [\"Impact 10\",\"EDMT_CYBERPUNK_2_-_Impact_10.mp3?v=1789693374\"],\n    [\"Impact 19\",\"EDMT_CYBERPUNK_2_-_Impact_19.mp3?v=1789693374\"],\n    [\"Impact 32\",\"EDMT_CYBERPUNK_2_-_Impact_32.mp3?v=1789693374\"],\n    [\"Impact 37\",\"EDMT_CYBERPUNK_2_-_Impact_37.mp3?v=1789693374\"],\n    [\"Impact 45\",\"EDMT_CYBERPUNK_2_-_Impact_45.mp3?v=1789693374\"],\n    [\"Impact 48\",\"EDMT_CYBERPUNK_2_-_Impact_48.mp3?v=1789693375\"],\n    [\"Impact 60\",\"EDMT_CYBERPUNK_2_-_Impact_60.mp3?v=1789693374\"],\n    [\"Sweep 02\",\"EDMT_CYBERPUNK_2_-_Sweep_02_Cm.mp3?v=1789693375\"],\n    [\"Sweep 03\",\"EDMT_CYBERPUNK_2_-_Sweep_03_X.mp3?v=1789693375\"],\n    [\"Sweep 08\",\"EDMT_CYBERPUNK_2_-_Sweep_08_Em.mp3?v=1789693375\"],\n    [\"Sweep 11\",\"EDMT_CYBERPUNK_2_-_Sweep_11_Cm.mp3?v=1789693375\"],\n    [\"Sweep 14\",\"EDMT_CYBERPUNK_2_-_Sweep_14_X.mp3?v=1789693375\"],\n    [\"Sweep 16\",\"EDMT_CYBERPUNK_2_-_Sweep_16_X.mp3?v=1789693375\"],\n    [\"Sweep 20\",\"EDMT_CYBERPUNK_2_-_Sweep_20_Fm.mp3?v=1789693376\"],\n    [\"Sweep 23\",\"EDMT_CYBERPUNK_2_-_Sweep_23_Cm.mp3?v=1789693376\"],\n    [\"Sweep 30\",\"EDMT_CYBERPUNK_2_-_Sweep_30_Dm.mp3?v=1789693375\"],\n    [\"FX Fill 01\",\"EDMT_CYBERPUNK_2_-_FX_Fill_01.mp3?v=1789693374\"],\n    [\"FX Fill 02\",\"EDMT_CYBERPUNK_2_-_FX_Fill_02.mp3?v=1789693373\"],\n    [\"FX Fill 04\",\"EDMT_CYBERPUNK_2_-_FX_Fill_04.mp3?v=1789693374\"],\n    [\"FX Fill 05\",\"EDMT_CYBERPUNK_2_-_FX_Fill_05.mp3?v=1789693373\"],\n    [\"FX Fill 08\",\"EDMT_CYBERPUNK_2_-_FX_Fill_08.mp3?v=1789693374\"],\n    [\"FX Fill 09\",\"EDMT_CYBERPUNK_2_-_FX_Fill_09.mp3?v=1789693374\"],\n    [\"FX Fill 12\",\"EDMT_CYBERPUNK_2_-_FX_Fill_12.mp3?v=1789693373\"],\n    [\"FX Fill 18\",\"EDMT_CYBERPUNK_2_-_FX_Fill_18.mp3?v=1789693374\"],\n    [\"FX Fill 19\",\"EDMT_CYBERPUNK_2_-_FX_Fill_19.mp3?v=1789693373\"],\n    [\"FX Fill 22\",\"EDMT_CYBERPUNK_2_-_FX_Fill_22.mp3?v=1789693374\"],\n    [\"FX Fill 29\",\"EDMT_CYBERPUNK_2_-_FX_Fill_29.mp3?v=1789693373\"],\n    [\"FX Fill 36\",\"EDMT_CYBERPUNK_2_-_FX_Fill_36.mp3?v=1789693374\"],\n    [\"Verb Shot 01\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_01.mp3?v=1789693375\"],\n    [\"Verb Shot 08\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_08.mp3?v=1789693375\"],\n    [\"Verb Shot 12\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_12_Cm.mp3?v=1789693375\"],\n    [\"Verb Shot 26\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_26.mp3?v=1789693375\"],\n    [\"Verb Shot 35\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_35.mp3?v=1789693376\"],\n    [\"Verb Shot 47\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_47_C.mp3?v=1789693375\"],\n    [\"Verb Shot 51\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_51.mp3?v=1789693376\"],\n    [\"Verb Shot 75\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_75_Cm.mp3?v=1789693375\"],\n    [\"Verb Shot 84\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_84_F.mp3?v=1789693375\"],\n    [\"Verb Shot 86\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_86_C.mp3?v=1789693375\"],\n    [\"Verb Shot 88\",\"EDMT_CYBERPUNK_2_-_Verb_Shot_88.mp3?v=1789693375\"],\n    [\"Downlifter 01\",\"EDMT_CYBERPUNK_2_-_Downlifter_01.mp3?v=1789693374\"],\n    [\"Downlifter 02\",\"EDMT_CYBERPUNK_2_-_Downlifter_02.mp3?v=1789693374\"],\n    [\"Downlifter 04\",\"EDMT_CYBERPUNK_2_-_Downlifter_04.mp3?v=1789693374\"],\n    [\"Downlifter 07\",\"EDMT_CYBERPUNK_2_-_Downlifter_07.mp3?v=1789693374\"],\n    [\"Downlifter 08\",\"EDMT_CYBERPUNK_2_-_Downlifter_08.mp3?v=1789693374\"],\n    [\"Riser 01\",\"EDMT_CYBERPUNK_2_-_Riser_01.mp3?v=1789693375\"],\n    [\"Riser 02\",\"EDMT_CYBERPUNK_2_-_Riser_02.mp3?v=1789693374\"],\n    [\"Riser 06\",\"EDMT_CYBERPUNK_2_-_Riser_06.mp3?v=1789693375\"],\n    [\"Riser 14\",\"EDMT_CYBERPUNK_2_-_Riser_14.mp3?v=1789693375\"]\n  ]\n}).map(([category, tracks]) =\u003e [\n  category,\n  tracks.map(([title, file]) =\u003e ({ title, url: previewBase + file }))\n]));\n\nlet isAutoplaying = false;\nlet currentCategory = 'bass';\nlet currentSampleIndex = 0;\nlet wavesurfer;\nlet sampleReady = false;\nlet playbackTimer = null;\nlet loadGeneration = 0;\nconst previewDownloads = new Map();\n\nfunction clearPlaybackTimer() {\n  if (playbackTimer !== null) clearTimeout(playbackTimer);\n  playbackTimer = null;\n}\n\nfunction updatePlayButton() {\n  const button = document.getElementById('playPause');\n  button.classList.toggle('playing', isAutoplaying);\n  button.setAttribute('aria-label', isAutoplaying ? 'Pause previews' : 'Play previews');\n}\n\nfunction stopPreviewPlayback() {\n  isAutoplaying = false;\n  clearPlaybackTimer();\n  if (wavesurfer) wavesurfer.pause();\n  updatePlayButton();\n}\n\nfunction adjacentSample(direction) {\n  const categories = Object.keys(sampleData);\n  const nextIndex = currentSampleIndex + direction;\n\n  if (nextIndex \u003e= 0 \u0026\u0026 nextIndex \u003c sampleData[currentCategory].length) {\n    return { category: currentCategory, index: nextIndex };\n  }\n\n  const nextCategory = categories[categories.indexOf(currentCategory) + direction];\n  if (!nextCategory) return null;\n\n  return {\n    category: nextCategory,\n    index: direction \u003e 0 ? 0 : sampleData[nextCategory].length - 1\n  };\n}\n\nfunction downloadPreview(url) {\n  if (!previewDownloads.has(url)) {\n    const download = fetch(url).then(response =\u003e {\n      if (!response.ok) throw new Error('Preview download failed: ' + response.status);\n      return response.blob();\n    }).catch(error =\u003e {\n      previewDownloads.delete(url);\n      throw error;\n    });\n\n    previewDownloads.set(url, download);\n\n    \/\/ Keep only a few files cached while preloading the next preview.\n    while (previewDownloads.size \u003e 3) {\n      previewDownloads.delete(previewDownloads.keys().next().value);\n    }\n  }\n\n  return previewDownloads.get(url);\n}\n\nfunction preloadNextSample() {\n  const next = adjacentSample(1);\n  if (next) {\n    downloadPreview(sampleData[next.category][next.index].url).catch(() =\u003e {});\n  }\n}\n\nfunction playCurrentSample(generation) {\n  if (!isAutoplaying || !sampleReady || generation !== loadGeneration) return;\n\n  playbackTimer = null;\n  wavesurfer.play().catch(error =\u003e {\n    if (generation !== loadGeneration) return;\n    stopPreviewPlayback();\n    console.error('Unable to play preview:', error);\n  });\n}\n\nasync function loadSample(category, index, previousFinishedAt = null) {\n  const sample = sampleData[category]?.[index];\n  if (!sample) return;\n\n  const generation = ++loadGeneration;\n  clearPlaybackTimer();\n  sampleReady = false;\n  wavesurfer.pause();\n\n  currentCategory = category;\n  currentSampleIndex = index;\n\n  document.getElementById('sampleTitle').textContent = sample.title;\n\n  document.querySelectorAll('.sample-category-btn').forEach(button =\u003e {\n    const active = button.dataset.category === category;\n    button.classList.toggle('active', active);\n    button.setAttribute('aria-pressed', String(active));\n  });\n\n  try {\n    const blob = await downloadPreview(sample.url);\n    if (generation !== loadGeneration) return;\n\n    await wavesurfer.loadBlob(blob);\n    if (generation !== loadGeneration) return;\n\n    sampleReady = true;\n\n    if (isAutoplaying) {\n      \/\/ Automatic transitions into sounds \u003c= 0.5s get at least 0.5s silence.\n      \/\/ Loading time counts toward the gap. Manual navigation is immediate.\n      const wait = previousFinishedAt !== null \u0026\u0026 wavesurfer.getDuration() \u003c= 0.5\n        ? Math.max(0, 500 - (performance.now() - previousFinishedAt))\n        : 0;\n\n      if (wait \u003e 0) {\n        playbackTimer = setTimeout(() =\u003e playCurrentSample(generation), wait);\n      } else {\n        playCurrentSample(generation);\n      }\n    }\n\n    preloadNextSample();\n  } catch (error) {\n    if (generation !== loadGeneration || error.name === 'AbortError') return;\n\n    stopPreviewPlayback();\n    document.getElementById('sampleTitle').textContent = 'Preview unavailable';\n    console.error('Unable to load preview:', error);\n  }\n}\n\nfunction playNextSample(previousFinishedAt = null) {\n  const next = adjacentSample(1);\n  if (next) {\n    loadSample(next.category, next.index, previousFinishedAt);\n  } else {\n    stopPreviewPlayback();\n  }\n}\n\nfunction playPrevSample() {\n  const previous = adjacentSample(-1);\n  if (previous) loadSample(previous.category, previous.index);\n}\n\ndocument.addEventListener('DOMContentLoaded', () =\u003e {\n  wavesurfer = WaveSurfer.create({\n    container: '#waveformContainer',\n    waveColor: '#72b547',\n    progressColor: '#72b547',\n    cursorWidth: 1,\n    cursorColor: '#ffff99',\n    autoScroll: false,\n    autoCenter: false,\n    height: window.innerWidth \u003c= 390 ? 117 : 136\n  });\n\n  wavesurfer.on('finish', () =\u003e {\n    if (isAutoplaying) playNextSample(performance.now());\n  });\n\n  document.querySelectorAll('.sample-category-btn').forEach(button =\u003e {\n    button.addEventListener('click', () =\u003e loadSample(button.dataset.category, 0));\n  });\n\n  document.getElementById('nextSample').addEventListener('click', () =\u003e playNextSample());\n  document.getElementById('prevSample').addEventListener('click', playPrevSample);\n\n  document.getElementById('playPause').addEventListener('click', () =\u003e {\n    if (isAutoplaying) {\n      stopPreviewPlayback();\n    } else {\n      isAutoplaying = true;\n      updatePlayButton();\n      playCurrentSample(loadGeneration);\n    }\n  });\n\n  updatePlayButton();\n  loadSample(currentCategory, currentSampleIndex);\n});\n\u003c\/script\u003e\n\u003cscript src=\"https:\/\/unpkg.com\/wavesurfer.js\"\u003e\u003c\/script\u003e\n\u003c\/p\u003e\n\n\u003cdiv class=\"vault-statement\"\u003e\n  \u003cp class=\"desktop-vault-text\"\u003e\u003cstrong\u003eA new era begins here.\u003cbr\u003eThe next evolution of futuristic midtempo production.\u003c\/strong\u003e\u003c\/p\u003e\n  \u003cp class=\"mobile-vault-text\"\u003e\u003cstrong\u003eA new era begins here.\u003cbr\u003eThe next evolution of futuristic midtempo production.\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n  const sections = document.querySelectorAll('.split-combine-section');\n  if (!sections.length) return;\n\n  let lastY = window.pageYOffset;\n  let hasCompleted = false;\n\n  window.addEventListener('scroll', function () {\n    sections.forEach(section =\u003e {\n      const rect = section.getBoundingClientRect();\n      const triggerShow = window.innerHeight * 0.75;\n\n      if (rect.top \u003c triggerShow \u0026\u0026 !section.classList.contains('in-view')) {\n        section.classList.add('in-view');\n        setTimeout(() =\u003e {\n          section.classList.add('animation-complete');\n        }, 1000);\n      }\n\n      if (window.pageYOffset === 0) {\n        section.classList.remove('in-view', 'animation-complete');\n      }\n    });\n  }, { passive: true });\n});\n\u003c\/script\u003e\n\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cdiv class=\"serum2-inner whzly-trigger-area\" style=\"text-align: center; margin: 80px 0;\"\u003e\n  \u003ch2 class=\"whzly-heading\" style=\"margin-top: 35px; margin-bottom: 20px;\"\u003eCYBERPUNK 2 Preset Demo\u003c\/h2\u003e\n  \u003cp class=\"benchmark-tagline whzly-tagline\"\u003e\u003cstrong\u003e \u003cspan class=\"first-line\"\u003eHear the power of the presets in context, mix-ready sounds built for heavy drops.\u003c\/span\u003e\u003cbr\u003e\u003c\/strong\u003e\u003c\/p\u003e\n  \u003cdiv class=\"video-glow-wrapper\" id=\"whzlyGlowWrapper\"\u003e\n    \u003cdiv class=\"whzly-video-inner\"\u003e\n      \u003ciframe src=\"https:\/\/www.youtube.com\/embed\/yRgsKmY4IBc?si=SpQRZFPqYB4T4iBY?rel=0\u0026amp;modestbranding=1\u0026amp;showinfo=0\u0026amp;autohide=1\u0026amp;controls=1\" style=\"width: 100%; height: 50vw; max-height: 500px; border: none;\"\u003e\u003c\/iframe\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"fullscreen-tip-wrapper\"\u003e\n    \u003cp class=\"mobile-fullscreen-tip\" id=\"fullscreenTip\"\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\nh2.whzly-heading.active::before { display: none !important; }\n@media (max-width: 768px) {\n  .serum2-inner.whzly-trigger-area { margin-top: 60px !important; }\n}\n.whzly-heading {\n  opacity: 0;\n  transform: translateX(-60px);\n  transition: opacity 0.6s ease-out, transform 0.6s ease-out;\n}\n.whzly-tagline {\n  opacity: 0;\n  transform: translateX(60px);\n  transition: opacity 0.6s ease-out 0.2s, transform 0.6s ease-out 0.2s;\n}\n.whzly-fade-in {\n  opacity: 0;\n  transform: translateY(40px);\n  transition: opacity 0.6s ease-out 0.4s, transform 0.6s ease-out 0.4s, box-shadow 0.6s ease-out 0.4s;\n}\n.whzly-heading.active {\n  opacity: 1;\n  transform: translateX(0);\n}\n.whzly-tagline.active {\n  opacity: 1;\n  transform: translateX(0);\n}\n.whzly-fade-in.active {\n  opacity: 1;\n  transform: translateY(0);\n  box-shadow: 0 0 20px #f0f0e6;\n}\n.fullscreen-tip-wrapper {\n  max-width: 900px;\n  margin: 6px auto 0 auto;\n  text-align: center;\n}\n.mobile-fullscreen-tip {\n  color: #f0f0e6;\n  font-family: 'Montserrat', sans-serif;\n  font-size: 12px !important;\n  opacity: 0.85;\n  display: none;\n  overflow: hidden;\n  white-space: nowrap;\n}\n@media (max-width: 768px) {\n  .mobile-fullscreen-tip { display: block; }\n}\n.desktop-only-text { display: inline; }\n@media (max-width: 768px) {\n  .desktop-only-text { display: none; }\n}\n@keyframes fullscreenFlicker {\n  0%, 100% { opacity: 1; }\n  5%, 15%, 25% { opacity: 0.6; }\n  10%, 20%, 30% { opacity: 1; }\n}\n@media (max-width: 480px) {\n  .whzly-fade-in { margin-top: 20px !important; }\n}\n.whzly-heading { font-size: 32px; }\n@media (max-width: 430px) {\n  .serum2-inner .whzly-heading {\n    font-size: 20px !important;\n    margin-top: 0px !important;\n    margin-bottom: 12px !important;\n  }\n}\n.video-glow-wrapper {\n  max-width: 900px;\n  margin: 40px auto 0 auto;\n  border-radius: 12px;\n  overflow: hidden;\n  opacity: 0;\n  transform: translateY(40px);\n  transition: opacity 0.6s ease-out 0.4s, transform 0.6s ease-out 0.4s, box-shadow 0.6s ease-out 0.4s;\n}\n.video-glow-wrapper.active {\n  opacity: 1;\n  transform: translateY(0);\n  box-shadow: 0 0 20px #f0f0e6;\n}\n.whzly-fade-in {\n  max-width: 900px;\n  margin: 40px auto 0 auto;\n  border-radius: 12px;\n  overflow: hidden;\n  opacity: 0;\n  transform: translateY(40px);\n  transition: opacity 0.6s ease-out 0.4s, transform 0.6s ease-out 0.4s;\n}\n.whzly-fade-in.active {\n  opacity: 1;\n  transform: translateY(0);\n}\n\u003c\/style\u003e\n\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n  const fullscreenTip = document.getElementById('fullscreenTip');\n  const message = \"Watch in fullscreen for best experience.\";\n  let charIndex = 0;\n\n  function typeText() {\n    if (!fullscreenTip) return;\n\n    if (charIndex \u003c message.length) {\n      fullscreenTip.innerHTML += message.charAt(charIndex);\n      charIndex++;\n      setTimeout(typeText, 40);\n    } else {\n      startRandomFlicker();\n    }\n  }\n\n  function startRandomFlicker() {\n    if (!fullscreenTip) return;\n\n    fullscreenTip.style.animation = 'fullscreenFlicker 2s ease-in-out forwards';\n\n    setTimeout(() =\u003e {\n      fullscreenTip.style.animation = '';\n    }, 2000);\n\n    const nextFlicker = Math.floor(Math.random() * 7000) + 8000;\n    setTimeout(startRandomFlicker, nextFlicker);\n  }\n\n  if (fullscreenTip) setTimeout(typeText, 600);\n\n  const glowWrapper = document.querySelector('#whzlyGlowWrapper');\n  const heading = document.querySelector('.whzly-heading');\n  const tagline = document.querySelector('.whzly-tagline');\n  const triggerArea = document.querySelector('.whzly-trigger-area');\n\n  let lastScrollY = window.scrollY;\n\n  const observer = new IntersectionObserver(entries =\u003e {\n    entries.forEach(entry =\u003e {\n      const scrollingUp = window.scrollY \u003c lastScrollY;\n      lastScrollY = window.scrollY;\n\n      if (entry.isIntersecting) {\n        heading.classList.add('active');\n        tagline.classList.add('active');\n        glowWrapper.classList.add('active');\n      } else if (scrollingUp) {\n        heading.classList.remove('active');\n        tagline.classList.remove('active');\n        glowWrapper.classList.remove('active');\n      }\n    });\n  }, { threshold: 0.5 });\n\n  if (triggerArea) observer.observe(triggerArea);\n});\n\u003c\/script\u003e\n\n\u003cdiv class=\"serum2-inner\" style=\"margin-top: 80px;\"\u003e\n  \u003ch2 class=\"system-header\"\u003e\n    \u003cspan class=\"desktop-text\"\u003e⚙️ SYSTEM REQUIREMENTS ⚙️\u003c\/span\u003e\n    \u003cspan class=\"mobile-text\"\u003e⚙️ SYSTEM REQUIREMENTS ⚙️\u003c\/span\u003e\n  \u003c\/h2\u003e\n  \u003cdiv class=\"requirements-list\"\u003e\n    \u003cdiv\u003eAny DAW with WAV \u0026amp; MIDI support\u003c\/div\u003e\n    \u003cdiv\u003eSerum 2\u003c\/div\u003e\n    \u003cdiv style=\"margin-top: 12px; color: #f0f0e6; font-weight: bold;\"\u003eProject File Requirements:\u003c\/div\u003e\n    \u003cdiv\u003eAbleton Live 12 \u003cbr\u003eSerum 2 \/ Serum 2 FX \u003cbr\u003eGClip (\u003ca href=\"https:\/\/gvst.uk\/Downloads\/GClip\/Select\" style=\"color: #f0f0e6; text-decoration: underline;\" target=\"_blank\"\u003efree\u003c\/a\u003e)\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.system-header {\n  font-family: 'Montserrat', sans-serif;\n  font-size: 22px;\n  color: #f0f0e6;\n  text-shadow: 0 0 4px #f0f0e6;\n  margin-bottom: 5px !important;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  text-align: center;\n}\n.requirements-list {\n  text-align: center;\n  font-family: 'Montserrat', sans-serif;\n  color: #f0f0e6;\n  font-size: 16px;\n  line-height: 1.8;\n}\n.requirements-list div { margin: 6px 0; }\n.system-header .mobile-text { display: none; }\n@media (max-width: 768px) {\n  .hook-plus-image {\n    margin-top: 10px !important;\n    margin-bottom: 0px !important;\n  }\n  .glitch-button.scroll-button { margin-top: 0px !important; }\n}\n@media (max-width: 480px) {\n  .system-header .mobile-text {\n    display: inline;\n    font-size: 16px;\n  }\n  .system-header .desktop-text { display: none; }\n  .requirements-list { font-size: 12px; }\n  .vault-section,\n  .hook-plus-image-optimized .hook-text {\n    padding-left: 0px;\n    padding-right: 0px;\n    box-sizing: border-box;\n    flex-direction: column;\n    align-items: center;\n  }\n}\n@media (max-width: 480px) {\n  .whzly-fade-in {\n    max-width: 100% !important;\n    padding: 0 10px;\n    box-sizing: border-box;\n    overflow-x: hidden;\n  }\n  .whzly-fade-in iframe {\n    width: 100% !important;\n    max-width: 100% !important;\n    box-sizing: border-box;\n  }\n  .serum2-inner,\n  .serum2-inner .whzly-trigger-area,\n  .video-glow-wrapper {\n    overflow-x: hidden !important;\n    max-width: 100vw !important;\n  }\n}\n.sample-category-buttons {\n  display: flex !important;\n  flex-wrap: nowrap !important;\n  justify-content: center !important;\n  align-items: center !important;\n  width: 100% !important;\n  max-width: 400px !important;\n  gap: 6px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n  overflow: visible !important;\n  box-sizing: border-box !important;\n}\n.sample-category-btn {\n  flex: 1 1 0 !important;\n  min-width: 0 !important;\n  padding: 6px 4px !important;\n  white-space: nowrap !important;\n  box-sizing: border-box !important;\n}\n@media (max-width: 480px) {\n  .sample-category-buttons {\n    transform: none !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    overflow-x: visible !important;\n    gap: 5px !important;\n  }\n  .sample-category-btn {\n    font-size: clamp(11px, 3.2vw, 14px) !important;\n    padding-left: 3px !important;\n    padding-right: 3px !important;\n  }\n}\n@media (min-width: 769px) {\n  .serum-title { top: 36px !important; }\n  .serum-waveform {\n    top: 94px !important;\n    height: 136px !important;\n  }\n  .play-pause-btn { top: 168px !important; }\n  .jukebox-btn { top: 168px !important; }\n}\n@media (max-width: 768px) {\n  .jukebox-wrapper {\n    width: 100% !important;\n    max-width: 400px !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    transform: none !important;\n  }\n  .jukebox-container {\n    width: 100% !important;\n    max-width: 400px !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    transform: none !important;\n  }\n  .jukebox-display {\n    width: 100% !important;\n    max-width: 400px !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    transform: none !important;\n  }\n}\n@media (max-width: 480px) {\n  .audio-preview-heading {\n    font-size: 20px !important;\n    white-space: nowrap !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n  }\n  .audio-preview-heading .emoji { font-size: 16px !important; }\n  .sample-category-buttons {\n    width: 100% !important;\n    max-width: 400px !important;\n    flex-wrap: nowrap !important;\n    transform: none !important;\n    gap: 4px !important;\n  }\n  .sample-category-btn {\n    flex: 1 1 0 !important;\n    min-width: 0 !important;\n    padding: 6px 3px !important;\n    font-size: 12px !important;\n  }\n}\n@media (max-width: 480px) {\n  .preview-player-wrapper { margin-bottom: 2px !important; }\n  .sample-category-buttons { margin-bottom: 12px !important; }\n  #prevSample { left: -50px !important; }\n  #nextSample { right: -50px !important; }\n}\n@media (max-width: 768px) {\n  .serum2-inner h1.nihilism-heading {\n    white-space: nowrap !important;\n    font-size: clamp(23px, 7vw, 30px) !important;\n    line-height: 1.1 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n}\n@media (max-width: 768px) {\n  .serum2-inner:has(.video-glow-wrapper-static),\n  .serum2-inner.whzly-trigger-area {\n    overflow-x: visible !important;\n  }\n  .video-glow-wrapper-static,\n  .video-glow-wrapper {\n    position: relative !important;\n    left: 50% !important;\n    width: calc(100vw - 16px) !important;\n    max-width: calc(100vw - 16px) !important;\n    margin-left: calc(-50vw + 8px) !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n  }\n  .video-glow-wrapper-static iframe,\n  .video-glow-wrapper iframe {\n    width: 100% !important;\n    height: auto !important;\n    aspect-ratio: 16 \/ 9 !important;\n    max-height: none !important;\n    display: block !important;\n  }\n}\n@media (max-width: 768px) {\n  .vault-and-player {\n    width: 100% !important;\n    max-width: 100% !important;\n    overflow: visible !important;\n  }\n  .vault-section {\n    position: relative !important;\n    left: 50% !important;\n    transform: translateX(-50%) !important;\n    width: calc(100vw - 16px) !important;\n    max-width: calc(100vw - 16px) !important;\n    min-width: 0 !important;\n    padding-left: 8px !important;\n    padding-right: 8px !important;\n    box-sizing: border-box !important;\n  }\n  .vault-section .whzly-list {\n    width: 100% !important;\n    max-width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .vault-section .expandable-content ul {\n    margin-left: 4px !important;\n    padding-left: 10px !important;\n  }\n  .vault-section .expandable-content ul ul {\n    margin-left: 6px !important;\n    padding-left: 10px !important;\n  }\n}\n@media (max-width: 768px) {\n  .hook-plus-image,\n  .vault-section,\n  .vault-statement,\n  .serum2-inner.whzly-trigger-area,\n  .serum2-inner:has(.system-header) {\n    position: relative !important;\n    left: 50% !important;\n    transform: translateX(-50%) !important;\n    width: calc(100vw - 16px) !important;\n    max-width: calc(100vw - 16px) !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n  }\n  .hook-plus-image .hook-text {\n    width: 100% !important;\n    max-width: 100% !important;\n    min-width: 0 !important;\n    padding-left: 8px !important;\n    padding-right: 8px !important;\n    box-sizing: border-box !important;\n  }\n  .hook-plus-image .hook-text \u003e ul,\n  .nihilism-bullets-mobile,\n  .projects-list-mobile,\n  .no-filler-list-mobile {\n    margin-left: 0 !important;\n    padding-left: 20px !important;\n    box-sizing: border-box !important;\n  }\n  .soundcloud-player-wrap {\n    width: 100% !important;\n    max-width: 100% !important;\n    padding-left: 0 !important;\n    box-sizing: border-box !important;\n  }\n  .jukebox-section { margin-bottom: 0 !important; }\n  .product__info-container \u003e *:has(.nihilism-heading) {\n    margin-top: 6px !important;\n    padding-top: 0 !important;\n  }\n  .product__info-container \u003e *:has(.nihilism-heading) \u003e p:first-child {\n    display: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n  .serum2-global-wrapper:has(\u003e .serum2-inner \u003e br:only-child) {\n    display: none !important;\n  }\n  .nihilism-heading { margin-top: 0 !important; }\n}\n\u003c\/style\u003e\n\n\u003cstyle id=\"cyberpunk-project-graphic-layout\"\u003e\n.cyberpunk-projects-row {\n  \/* Image size: 1 = original, 1.10 = 10% larger, 1.20 = 20% larger. *\/\n  --projects-image-scale: 1.20;\n}\n@media (min-width: 769px) {\n  .cyberpunk-projects-row .projects-image {\n    flex: 1 1 40% !important;\n    max-width: 480px;\n    min-width: 0;\n    align-self: stretch;\n    position: relative;\n    margin: 35px 0 0 !important;\n  }\n  .cyberpunk-projects-row .projects-image img {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    display: block;\n    width: auto;\n    max-width: 100%;\n    height: auto;\n    max-height: 100%;\n    object-fit: contain;\n    transform: translate(-50%, -50%) scale(var(--projects-image-scale));\n    transform-origin: center;\n  }\n}\n@media (max-width: 768px) {\n  .cyberpunk-projects-row .projects-image {\n    display: flex !important;\n    flex: 0 0 auto !important;\n    justify-content: center;\n    align-self: center;\n    width: 100%;\n    max-width: 420px;\n    min-width: 0;\n    margin: 24px auto 12px !important;\n  }\n  .cyberpunk-projects-row .projects-image img {\n    display: block;\n    width: auto;\n    max-width: min(100%, calc(338px * var(--projects-image-scale))) !important;\n    height: auto;\n    object-fit: contain;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle id=\"cyberpunk-preview-player-layout\"\u003e\n.jukebox-section .preview-player-wrapper {\n  width: 100%;\n  max-width: 400px;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n.jukebox-section .sample-category-buttons {\n  display: flex !important;\n  justify-content: center !important;\n  width: 100% !important;\n  max-width: 400px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n  transform: none !important;\n}\n.jukebox-section .serum-title {\n  max-width: 84%;\n  text-align: center;\n  text-transform: none;\n  letter-spacing: 0;\n}\n.jukebox-section .sample-category-btn {\n  letter-spacing: 0 !important;\n}\n@media (max-width: 480px) {\n  .jukebox-section .sample-category-btn {\n    font-size: 11px !important;\n  }\n  .jukebox-section .serum-title {\n    font-size: 16px !important;\n  }\n}\n@media (max-width: 375px) {\n  .jukebox-section .sample-category-btn {\n    flex: 1 0 auto !important;\n    font-size: 10px !important;\n  }\n  .jukebox-section .serum-title {\n    font-size: clamp(12px, calc(5.455vw - 5.456px), 15px) !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cstyle id=\"cyberpunk-preview-player-waveform\"\u003e\n.jukebox-section .serum-title {\n  top: 12.1% !important;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  line-height: 1;\n}\n#waveformContainer ::part(canvases) {\n  clip-path: none !important;\n}\n#waveformContainer ::part(progress) {\n  display: none !important;\n}\n\u003c\/style\u003e","brand":"EDM Templates","offers":[{"title":"Default Title","offer_id":57976174412107,"sku":null,"price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2426\/0385\/files\/Cyberpunk2.webp?v=1785330141","url":"https:\/\/edmtemplates.net\/products\/cyberpunk-2-premium-midtempo-collection","provider":"⛓👽 EDM TEMPLATES","version":"1.0","type":"link"}