PageSourceSearch

https://emetaltrade.com/

html emetaltrade.com collected 2026-10-10 00:45:05 UTC 251,577 bytes, 4,546 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html lang="id">
5<head>
6  <meta charset="UTF-8">
7  <title>SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!</title>
8  <meta name="description" content="SPIN189 hadir dengan pengalaman bermain slot online yang praktis dan nyaman. Nikmati beragam pilihan permainan, tampilan menarik, proses yang mudah, serta layanan yang siap membantu kapan saja. Nyantai, pilih permainan favorit, dan nikmati serunya aktivitas nyepin di SPIN189.">
9  <meta name="robots" content="index,follow">
10  <link rel="canonical" href="https://emetaltrade.com/">
11  <link rel="amphtml" href="https://emetaltrade.com/amp/">
12  <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
13  <link rel="alternate" hreflang="id-id" href="https://emetaltrade.com/amp/"/>
14  <link rel="alternate" href="https://emetaltrade.com/amp/"/>
15  <link rel="alternate" hreflang="id" href="https://emetaltrade.com/amp/"/>
16  <link rel="alternate" hreflang="en" href="https://emetaltrade.com/amp/"/>
17  <link rel="alternate" hreflang="x-default" href="https://emetaltrade.com/"/>
vendor: 67 bytes, lines 17-18
17
18  <script async src="https://www.googletagmanager.com/gtag/js?id=
18G-0LSM1YJSPZ
vendor: 48 bytes, lines 18-19
18" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
19  
19<script nonce="se3iyzEHMc9FQEB4wSyd0w==">window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"granted",wait_for_update:500});gtag("js",new Date);gtag("config","G-0LSM1YJSPZ",{send_page_view:!0,linker:{domains:["plazait.co.id","www.plazait.co.id"]}});window.ga4Ecomm={viewItem:function(e){if(!window.gtag)return;try{gtag("event","view_item",{currency:e.currency||"IDR",value:e.value||0,items:[{item_id:e.item_id||"",item_name:e.item_name||"",item_brand:e.item_brand||"",item_category:e.item_category||"",price:e.price||0,quantity:1}]})}catch(t){}},addToCart:function(e){if(!window.gtag)return;try{gtag("event","add_to_cart",{currency:e.currency||"IDR",value:(e.price||0)*(e.quantity||1),items:[{item_id:e.item_id||"",item_name:e.item_name||"",item_brand:e.item_brand||"",item_category:e.item_category||"",price:e.price||0,quantity:e.quantity||1}]})}catch(t){}}};</script>
19
20  <meta property="og:locale" content="id_ID">
21  <meta property="og:site_name" content="Plaza IT">
22  <meta property="og:type" content="product">
23  <meta property="og:title" content="SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!">
24  <meta property="og:description" content="SPIN189 hadir dengan pengalaman bermain slot online yang praktis dan nyaman. Nikmati beragam pilihan permainan, tampilan menarik, proses yang mudah, serta layanan yang siap membantu kapan saja. Nyantai, pilih permainan favorit, dan nikmati serunya aktivitas nyepin di SPIN189.">
25  <meta property="og:url" content="https://emetaltrade.com/">
26  <meta property="og:image" content="https://emetaltrade.com/images/banner.webp">
27  <meta property="og:image:alt" content="SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!">
28<meta property="product:price:amount" content="5000">
29<meta property="product:price:currency" content="IDR">
30<meta property="product:availability" content="out of stock">
31<meta name="twitter:card" content="summary_large_image">
32<meta name="twitter:title" content="SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!">
33<meta name="twitter:description" content="SPIN189 hadir dengan pengalaman bermain slot online yang praktis dan nyaman. Nikmati beragam pilihan permainan, tampilan menarik, proses yang mudah, serta layanan yang siap membantu kapan saja. Nyantai, pilih permainan favorit, dan nikmati serunya aktivitas nyepin di SPIN189.">
34<meta name="twitter:image" content="https://emetaltrade.com/images/banner.webp">
35
36<script type="application/ld+json">
37{
38  "@context": "https://schema.org",
39  "@type": "WebSite",
40  "@id": "/#website",
41  "url": "https://emetaltrade.com/",
42  "name": "SPIN189",
43  "inLanguage": "id",
44  "potentialAction": {
45    "@type": "SearchAction",
46    "target": "https://emetaltrade.com/",
47    "query-input": "required name=search_term_string"
48  }
49}
50</script>
50
51
52<script type="application/ld+json">
53{
54  "@context": "https://schema.org",
55  "@type": "Organization",
56  "@id": "/#organization",
57  "name": "SPIN189",
58  "url": "https://emetaltrade.com/",
59  "logo": "https://emetaltrade.com/images/logo.webp"
60}
61</script>
61
62
63<script type="application/ld+json">
64{
65  "@context": "https://schema.org",
66  "@type": "Product",
67  "name": "SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!",
68  "sku": "1S83N0800RID",
69  "image": [
70    "https://emetaltrade.com/images/banner.webp"
71  ],
72  "url": "https://emetaltrade.com/",
73  "description": "SPIN189 hadir dengan pengalaman bermain slot online yang praktis dan nyaman. Nikmati beragam pilihan permainan, tampilan menarik, proses yang mudah, serta layanan yang siap membantu kapan saja. Nyantai, pilih permainan favorit, dan nikmati serunya aktivitas nyepin di SPIN189.",
74  "category": "Hiburan Premium",
75  "brand": {
76    "@type": "Brand",
77    "name": "SPIN189"
78  },
79  "offers": {
80    "@type": "Offer",
81    "url": "https://emetaltrade.com/",
82    "priceCurrency": "IDR",
83    "price": "5000",
84    "priceValidUntil": "2027-03-01",
85    "availability": "https://schema.org/InStock",
86    "itemCondition": "https://schema.org/NewCondition",
87    "seller": {
88      "@type": "Organization",
89      "name": "SPIN189",
90      "url": "https://emetaltrade.com/"
91    }
92  },
93  "aggregateRating": {
94    "@type": "AggregateRating",
95    "ratingValue": "4.9",
96    "reviewCount": "808",
97    "bestRating": "5",
98    "worstRating": "1"
99  }
100}
101</script>
101
102
103<script type="application/ld+json">
104{
105  "@context": "https://schema.org",
106  "@type": "BreadcrumbList",
107  "itemListElement": [
108    {
109      "@type": "ListItem",
110      "position": 1,
111      "name": "SPIN189",
112      "item": "https://emetaltrade.com/"
113    },
114    {
115      "@type": "ListItem",
116      "position": 2,
117      "name": "SPIN189 PROVIT",
118      "item": "https://emetaltrade.com/"
119    }
120  ]
121}
122</script>
122
123
124<script type="application/ld+json">
125{
126  "@context": "https://schema.org",
127  "@type": "FAQPage",
128  "mainEntity": [
129    {
130      "@type": "Question",
131      "name": "Apa itu SPIN189?",
132      "acceptedAnswer": {
133        "@type": "Answer",
134        "text": "SPIN189 merupakan platform yang menawarkan berbagai pilihan permainan online dengan tampilan praktis dan mudah digunakan. Pengguna dapat menjelajahi berbagai kategori permainan sesuai preferensi masing-masing.ntungkan."
135      }
136    },
137    {
138      "@type": "Question",
139      "name": "Apa saja permainan yang tersedia di SPIN189?",
140      "acceptedAnswer": {
141        "@type": "Answer",
142        "text": "SPIN189 menyediakan berbagai pilihan permainan dengan tema dan karakter yang berbeda. Ketersediaan game dapat berubah mengikuti pembaruan platform."
143      }
144    },
145    {
146      "@type": "Question",
147      "name": "Apakah SPIN189 bisa dimainkan melalui HP?",
148      "acceptedAnswer": {
149        "@type": "Answer",
150        "text": "Ya, SPIN189 dirancang agar dapat diakses melalui perangkat yang kompatibel, termasuk smartphone, sehingga pengguna dapat menikmati platform dengan lebih praktis."
151      }
152    },
153    {
154      "@type": "Question",
155      "name": "Bagaimana jika mengalami kendala saat menggunakan SPIN189?",
156      "acceptedAnswer": {
157        "@type": "Answer",
158        "text": "Jika mengalami kendala, pengguna dapat menghubungi layanan pelanggan melalui kanal bantuan yang tersedia untuk mendapatkan informasi dan bantuan lebih lanjut."
159      }
160    },
161    {
162      "@type": "Question",
163      "name": "Apakah bermain di SPIN189 harus dilakukan dengan batas tertentu?",
164      "acceptedAnswer": {
165        "@type": "Answer",
166        "text": "Sebaiknya aktivitas bermain tetap dianggap sebagai hiburan. Gunakan dana yang memang siap untuk aktivitas tersebut, tentukan batas waktu dan anggaran, serta berhenti ketika batas tersebut tercapai."
167      }
168    },
169    {
170      "@type": "Question",
171      "name": "Bagaimana jika saya membutuhkan bantuan di tengah malam?",
172      "acceptedAnswer": {
173        "@type": "Answer",
174        "text": "Tim dukungan pelanggan profesional kami selalu bersiaga 24 jam penuh setiap harinya untuk memberikan solusi instan."
175      }
176    }
177  ]
178}
179</script>
179
180  <!-- User Session Data -->
181    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
182  <meta name="user-logged-in" content="false">
183  <meta name="user-id" content="0">
184  
185  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
186
187  <link rel="shortcut icon" href="https://emetaltrade.com/images/favicon.webp" type="image/x-icon">
188  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/style.css">
189  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/bottom-nav.css">
190  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/search-suggest.css">
191  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-detail.css">
192  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-grid.css">
193  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/site-notice.css">
194        <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/benchmark.css">
195    <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-filters.css">
196  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/mega-menu-tiles.css">
197  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-compare.css">
198  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-card-actions.css">
199  <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/modal.css">
200      
201        <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/reviews-points.css">
202            
203</head>
204<body>
205<header class="topbar">
206  <div class="container topbar-inner">
207    <div class="topbar-left">
208      SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!
209    </div>
210    <div class="topbar-right">
211      <a href="https://emetaltrade.com/">SPIN189</a>
212      <a href="https://emetaltrade.com/">Promo</a>
213      <a href="https://emetaltrade.com/amp/">Daftar</a>
214      <a href="https://emetaltrade.com/amp/">Masuk</a>
215    </div>
216  </div>
217</header>
218<nav class="navbar">
219  <nav class="navbar-logo" style="width: 100%;">
220    <div class="container nav-inner" style="justify-items: center; justify-content: center;">
221        <a href="/" class="logo-mobile">
222          <img src="https://emetaltrade.com/images/logo.webp" alt="SPIN189" height="100">
223        </a>
224    </div>
225</nav>
226  <div class="container nav-inner">
227    <a href="/" class="logo">
228      <img src="https://emetaltrade.com/images/logo.webp" alt="SPIN189" height="100">
229    </a>
230
231    
232    <form class="search" method="get" action="https://emetaltrade.com/">
233      <input type="hidden" name="page" value="produk">
234      
235      <!-- Search Icon (Desktop) -->
236      <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
237        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
238          <circle cx="11" cy="11" r="8"/>
239          <path d="m21 21-4.35-4.35"/>
240        </svg>
241      </button>
242      
243      <input type="text" name="q" id="searchInput" placeholder="Cari SPIN189"
244             value="" autocomplete="off"> 
245      
246      <div class="search-suggest" id="searchSuggest" hidden></div>
247    </form>
248
249    <div class="nav-actions">
250      <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
251      <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang">
252        🛒 <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span>
253      </button>
254      
255      
256        <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
257      </button>
258      
259      <!-- Dynamic login/logout button -->
260            <button class="login-btn" id="loginBtn" aria-label="Masuk">
261        <span class="login-text">Masuk</span>
262        <span class="login-ico" aria-hidden="true">😊</span>
263      </button>
264          </div>
265  </div>
266
267  <div class="container" style="display: flex; align-items: center;">
268      
269
270      <div class="mega-cats-wrapper">
271        <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
272                      <a class="" href="https://emetaltrade.com/">
273              SPIN189 OFFICIAL            </a>
274                      <a class="" href="https://emetaltrade.com/">
275              SLOT GACOR            </a>
276                      <a class="" href="https://emetaltrade.com/">
277              PROFIT MAKSIMAL            </a>
278                      <a class="" href="https://emetaltrade.com/">
279              SISTEM PREMIUM            </a>
280                      <a class="" href="https://emetaltrade.com/">
281              AKSES EKSKLUSIF            </a>
282                      <a class="" href="https://emetaltrade.com/">
283              GAME INTERAKTIF            </a>
284                      <a class="" href="https://emetaltrade.com/">
285              PRIORITAS MEMBER            </a>
286                  </div>
287        <div class="mega-cats-fade" id="megaCatsFade"></div>
288      </div>
289  </div>
290</nav>
291
292<!-- Panel Mega Menu - Outside navbar for full-screen -->
293<div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
294  <div class="mm2-view is-active" data-mm2="top"></div>
295  <div class="mm2-view" data-mm2="detail"></div>
296</div>
297
298<!-- Backdrop - Outside navbar for full-screen -->
299<div class="mm2-backdrop" data-mm2="backdrop"></div>
300
301<!-- Mobile Bottom Navigation -->
302<nav class="bottom-nav">
303  <div class="bottom-nav-inner">
304    <!-- Home -->
305    <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
306      <div class="bottom-nav-item-icon">
307        <!-- Outlined icon (default) -->
308        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
309          <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
310          <polyline points="9 22 9 12 15 12 15 22"/>
311        </svg>
312        <!-- Filled icon (active) -->
313        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
314          <path d="M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 010 1.06l-.03.03a.75.75 0 01-1.06 0l-8.16-8.16-8.16 8.16a.75.75 0 01-1.06 0l-.03-.03a.75.75 0 010-1.06l8.69-8.69z"/>
315          <path d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z"/>
316        </svg>
317      </div>
318      <span class="bottom-nav-item-label">Home</span>
319    </a>
320
321    <!-- Kategori -->
322    <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
323      <div class="bottom-nav-item-icon">
324        <!-- Outlined icon (default) -->
325        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
326          <line x1="3" y1="12" x2="21" y2="12"/>
327          <line x1="3" y1="6" x2="21" y2="6"/>
328          <line x1="3" y1="18" x2="21" y2="18"/>
329        </svg>
330        <!-- Filled icon (active) -->
331        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
332          <path d="M3 5.25A.75.75 0 013.75 4.5h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 5.25zM3 12a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 12zm0 6.75a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75a.75.75 0 01-.75-.75z"/>
333        </svg>
334      </div>
335      <span class="bottom-nav-item-label">Kategori</span>
336    </button>
337
338    <!-- Keranjang -->
339    <button class="bottom-nav-item" id="bottomCartBtn">
340      <div class="bottom-nav-item-icon">
341        <!-- Outlined icon (default) -->
342        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
343          <circle cx="9" cy="21" r="1"/>
344          <circle cx="20" cy="21" r="1"/>
345          <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/>
346        </svg>
347        <!-- Filled icon (active) -->
348        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
349          <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/>
350        </svg>
351        <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
352      </div>
353      <span class="bottom-nav-item-label">Keranjang</span>
354    </button>
355
356    <!-- Compare -->
357    <button class="bottom-nav-item" id="bottomCompareBtn">
358      <div class="bottom-nav-item-icon">
359        <!-- Outlined icon (default) -->
360        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
361          <polyline points="17 11 21 7 17 3"/>
362          <path d="M21 7H9"/>
363          <polyline points="7 21 3 17 7 13"/>
364          <path d="M15 17H3"/>
365        </svg>
366        <!-- Filled icon (active) -->
367        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
368          <path d="M21.75 6.75a.75.75 0 00-.75-.75H9a.75.75 0 000 1.5h10.19L15.22 11.47a.75.75 0 001.06 1.06l4.5-4.5a.75.75 0 00.22-.53.75.75 0 00-.22-.53l-.03-.03zM8.78 12.47L4.28 16.97a.75.75 0 000 1.06l4.5 4.5a.75.75 0 001.06-1.06L6.06 18H15a.75.75 0 000-1.5H4.81l3.97-3.97a.75.75 0 00-1.06-1.06z"/>
369        </svg>
370        <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
371      </div>
372      <span class="bottom-nav-item-label">Compare</span>
373    </button>
374
375    <!-- Chat - Always show, check login in JavaScript -->
376    <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
377      <div class="bottom-nav-item-icon">
378        <!-- Outlined icon (default) -->
379        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" opacity="0.85">
380          <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
381        </svg>
382        <!-- Filled icon (active) -->
383        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
384          <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/>
385        </svg>
386        <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
387      </div>
388      <span class="bottom-nav-item-label">Chat</span>
389    </button>
390
391    <!-- Akun -->
392        <button class="bottom-nav-item" id="bottomLoginBtn">
393      <div class="bottom-nav-item-icon">
394        <!-- Outlined icon (default) -->
395        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
396          <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
397          <circle cx="12" cy="7" r="4"/>
398        </svg>
399        <!-- Filled icon (active) -->
400        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
401          <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd"/>
402        </svg>
403      </div>
404      <span class="bottom-nav-item-label">Login</span>
405    </button>
406        </svg>
407      </div>
408    </button>
409      </div>
410</nav>
411<style>
412#rain-container {
413  position: fixed;
414  top: 0;
415  left: 0;
416  width: 100%;
417  height: 100%;
418  pointer-events: none;
419  z-index: 9999;
420  overflow: hidden;
421}
422
423.rain-line {
424  position: absolute;
425  top: -100px;
426  width: 2px;
427  height: 80px;
428
429  /* WARNA BARU */
430  background: linear-gradient(to bottom, #e7890e, rgba(0,0,0,0));
431
432  opacity: 0.8;
433  animation: fall linear infinite;
434}
435
436@keyframes fall {
437  to {
438    transform: translateY(110vh);
439  }
440}
441</style>
442
443<div id="rain-container"></div>
444
445<script>
446document.addEventListener("DOMContentLoaded", function () {
447  const rainContainer = document.getElementById('rain-container');
448
449  function createRain() {
450    const rain = document.createElement('div');
451    rain.classList.add('rain-line');
452
453    rain.style.left = Math.random() * window.innerWidth + 'px';
454    rain.style.animationDuration = (Math.random() * 1 + 0.5) + 's';
455    rain.style.opacity = Math.random();
456
457    rainContainer.appendChild(rain);
458
459    setTimeout(() => {
460      rain.remove();
461    }, 2000);
462  }
463
464  setInterval(createRain, 50);
465});
466</script>
466
467<!-- Mobile User Menu Bottom Sheet -->
468
469<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
470(function(){
471  const btn = document.getElementById('megaMoreBtn');
472  const dd  = document.getElementById('megaMoreDropdown');
473  if(!btn || !dd) return;
474
475  function openDD(){
476    dd.hidden = false;
477    btn.setAttribute('aria-expanded','true');
478    document.addEventListener('click', outside, {capture:true});
479    document.addEventListener('keydown', esc);
480  }
481  function closeDD(){
482    if(dd.hidden) return;
483    dd.hidden = true;
484    btn.setAttribute('aria-expanded','false');
485    document.removeEventListener('click', outside, {capture:true});
486    document.removeEventListener('keydown', esc);
487  }
488  function toggle(){ dd.hidden ? openDD() : closeDD(); }
489  function outside(e){
490    if(!dd.contains(e.target) && e.target !== btn){
491      closeDD();
492    }
493  }
494  function esc(e){
495    if(e.key === 'Escape'){
496      closeDD();
497      btn.focus();
498    }
499  }
500  btn.addEventListener('click', toggle);
501})();
502
503// ========== HORIZONTAL SCROLL FADE INDICATOR ==========
504(function(){
505  const megaCats = document.getElementById('megaCatsScroll');
506  const fade = document.getElementById('megaCatsFade');
507  if (!megaCats || !fade) return;
508
509  function updateFade() {
510    const scrollLeft = megaCats.scrollLeft;
511    const scrollWidth = megaCats.scrollWidth;
512    const clientWidth = megaCats.clientWidth;
513    const maxScroll = scrollWidth - clientWidth;
514    
515    // Hide fade when scrolled to end (within 10px tolerance)
516    if (maxScroll - scrollLeft <= 10) {
517      fade.style.opacity = '0';
518    } else {
519      fade.style.opacity = '1';
520    }
521  }
522
523  // Update on scroll
524  megaCats.addEventListener('scroll', updateFade, { passive: true });
525  
526  // Update on resize
527  window.addEventListener('resize', updateFade, { passive: true });
528  
529  // Initial check
530  setTimeout(updateFade, 100);
531})();
532
533document.addEventListener('DOMContentLoaded', function () {
534  var input = document.getElementById('searchInput');
535  if (!input) return;
536  input.addEventListener('keydown', function (e) {
537    if (e.key === 'Enter') {
538      e.preventDefault();
539      var form = input.form;
540      if (!form) return;
541      if (typeof form.requestSubmit === 'function') form.requestSubmit();
542      else form.submit();
543    }
544  });
545});
546
547
548(function(){
549  const cartBtn = document.getElementById('cartBtn');
550  if (cartBtn) {
551    cartBtn.addEventListener('click', function(e) {
552      e.preventDefault();
553      
554      const checkLogin = () => {
555        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
556      };
557      
558      if (checkLogin()) {
559        window.location.href = '/keranjang';
560      } else {
561        showCartLoginModal();
562      }
563    });
564  }
565
566  const loginBtn = document.getElementById('loginBtn');
567  if (loginBtn) {
568    loginBtn.addEventListener('click', function(e) {
569      e.preventDefault();
570      window.location.href = 'https://emetaltrade.com/';
571    });
572  }
573
574  const userMenuBtn = document.getElementById('userMenuBtn');
575  const userDropdown = document.getElementById('userDropdown');
576  
577  if (userMenuBtn && userDropdown) {
578    function openDropdown() {
579      userDropdown.hidden = false;
580      userMenuBtn.setAttribute('aria-expanded', 'true');
581      document.addEventListener('click', closeOnOutside, { capture: true });
582      document.addEventListener('keydown', closeOnEscape);
583    }
584    
585    function closeDropdown() {
586      if (userDropdown.hidden) return;
587      userDropdown.hidden = true;
588      userMenuBtn.setAttribute('aria-expanded', 'false');
589      document.removeEventListener('click', closeOnOutside, { capture: true });
590      document.removeEventListener('keydown', closeOnEscape);
591    }
592    
593    function closeOnOutside(e) {
594      if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
595        closeDropdown();
596      }
597    }
598    
599    function closeOnEscape(e) {
600      if (e.key === 'Escape') {
601        closeDropdown();
602        userMenuBtn.focus();
603      }
604    }
605    
606    userMenuBtn.addEventListener('click', function(e) {
607      e.preventDefault();
608      userDropdown.hidden ? openDropdown() : closeDropdown();
609    });
610    
611    // Close dropdown when clicking profile links
612    userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
613      link.addEventListener('click', function() {
614        closeDropdown();
615      });
616    });
617  }
618
619  // Bottom nav profile button - toggle mobile bottom sheet
620  const bottomProfileBtn = document.getElementById('bottomProfileBtn');
621  const mobileUserSheet = document.getElementById('mobileUserSheet');
622  const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
623  
624  if (bottomProfileBtn && mobileUserSheet) {
625    function openMobileSheet() {
626      mobileUserSheet.hidden = false;
627      document.body.style.overflow = 'hidden';
628      // Trigger animation
629      requestAnimationFrame(() => {
630        mobileUserSheet.classList.add('active');
631      });
632    }
633    
634    function closeMobileSheet() {
635      mobileUserSheet.classList.remove('active');
636      document.body.style.overflow = '';
637      setTimeout(() => {
638        mobileUserSheet.hidden = true;
639      }, 300);
640    }
641    
642    bottomProfileBtn.addEventListener('click', function(e) {
643      e.preventDefault();
644      openMobileSheet();
645    });
646    
647    if (mobileUserSheetBackdrop) {
648      mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
649    }
650    
651    // Close on escape key
652    document.addEventListener('keydown', function(e) {
653      if (e.key === 'Escape' && !mobileUserSheet.hidden) {
654        closeMobileSheet();
655      }
656    });
657    
658    // Close sheet when clicking profile links
659    mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
660      link.addEventListener('click', function() {
661        closeMobileSheet();
662      });
663    });
664  }
665  
666  // Handle Google avatar error in bottom-nav (fallback to initials)
667  const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
668  if (bottomNavAvatar) {
669    bottomNavAvatar.addEventListener('error', function() {
670      const initials = this.getAttribute('data-fallback-initials') || 'U';
671      const initialsDiv = document.createElement('div');
672      initialsDiv.className = 'bottom-nav-avatar-initials';
673      initialsDiv.textContent = initials;
674      this.parentNode.replaceChild(initialsDiv, this);
675    });
676  }
677
678  // Mobile logout button
679  const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
680  if (mobileLogoutBtn) {
681    mobileLogoutBtn.addEventListener('click', async function(e) {
682      e.preventDefault();
683      
684      // Check push notification before logout
685      if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
686        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
687        if (!confirmLogout) {
688          return; // User cancelled logout
689        }
690      }
691      
692      const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
693      
694      try {
695        const response = await fetch('/auth/logout', {
696          method: 'POST',
697          credentials: 'same-origin',
698          headers: {
699            'Content-Type': 'application/json',
700            'X-CSRF-Token': getCsrfToken()
701          },
702          body: JSON.stringify({
703            csrf_token: getCsrfToken()
704          })
705        });
706        
707        if (response.ok) {
708          if (window.guestCart && typeof window.guestCart.clear === 'function') {
709            window.guestCart.clear();
710          }
711          window.location.href = '/login?logged_out=1';
712        } else {
713          console.error('Logout failed');
714          window.location.href = '/logout';
715        }
716      } catch (error) {
717        console.error('Logout error:', error);
718        window.location.href = '/logout';
719      }
720    });
721  }
722
723  const logoutBtn = document.getElementById('logoutBtn');
724  if (logoutBtn) {
725    logoutBtn.addEventListener('click', async function(e) {
726      e.preventDefault();
727      
728      // Check push notification before logout
729      if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
730        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
731        if (!confirmLogout) {
732          return; // User cancelled logout
733        }
734      }
735      
736      const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
737      
738      try {
739        const response = await fetch('/auth/logout', {
740          method: 'POST',
741          credentials: 'same-origin',
742          headers: {
743            'Content-Type': 'application/json',
744            'X-CSRF-Token': getCsrfToken()
745          },
746          body: JSON.stringify({
747            csrf_token: getCsrfToken()
748          })
749        });
750        
751        if (response.ok) {
752          if (window.guestCart && typeof window.guestCart.clear === 'function') {
753            window.guestCart.clear();
754          }
755          
756          window.location.href = '/login?logged_out=1';
757        } else {
758          console.error('Logout failed');
759          window.location.href = '/logout';
760        }
761      } catch (error) {
762        console.error('Logout error:', error);
763        window.location.href = '/logout';
764      }
765    });
766  }
767
768  const wishlistBtn = document.getElementById('wishlistBtn');
769  const notifBtn = document.getElementById('notifBtn');
770  
771  if (wishlistBtn) {
772    wishlistBtn.addEventListener('click', function(e) {
773      e.preventDefault();
774      alert('Fitur wishlist akan segera tersedia!');
775    });
776  }
777  
778  if (notifBtn) {
779    notifBtn.addEventListener('click', function(e) {
780      e.preventDefault();
781      alert('Fitur notifikasi akan segera tersedia!');
782    });
783  }
784})();
785
786// ========== MOBILE BOTTOM NAVIGATION ==========
787(function initBottomNav() {
788  // Sync cart badge with bottom nav
789  function syncBottomCartBadge() {
790    const mainBadge = document.getElementById('cartCount');
791    const bottomBadge = document.getElementById('bottomCartCount');
792    if (mainBadge && bottomBadge) {
793      const count = mainBadge.textContent;
794      bottomBadge.textContent = count;
795      bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
796    }
797  }
798
799  // Sync compare badge with bottom nav
800  function syncBottomCompareBadge() {
801    const mainBadge = document.getElementById('compareCount');
802    const bottomBadge = document.getElementById('bottomCompareCount');
803    if (mainBadge && bottomBadge) {
804      const count = mainBadge.textContent;
805      bottomBadge.textContent = count;
806      bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
807    }
808  }
809
810  // Initial sync
811  syncBottomCartBadge();
812  syncBottomCompareBadge();
813
814  // Observe badge changes
815  const observer = new MutationObserver(function() {
816    syncBottomCartBadge();
817    syncBottomCompareBadge();
818  });
819
820  const cartBadge = document.getElementById('cartCount');
821  const compareBadge = document.getElementById('compareCount');
822  
823  if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
824  if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true });
825
826  // Bottom Cart Button
827  const bottomCartBtn = document.getElementById('bottomCartBtn');
828  if (bottomCartBtn) {
829    bottomCartBtn.addEventListener('click', function(e) {
830      e.preventDefault();
831      
832      const checkLogin = () => {
833        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
834      };
835      
836      if (checkLogin()) {
837        window.location.href = '/keranjang';
838      } else {
839        showCartLoginModal();
840      }
841    });
842  }
843
844  // Bottom Compare Button
845  const bottomCompareBtn = document.getElementById('bottomCompareBtn');
846  if (bottomCompareBtn) {
847    bottomCompareBtn.addEventListener('click', function(e) {
848      e.preventDefault();
849      
850      // Close chat widget if open
851      if (window.plazaChat && window.plazaChat.isWidgetOpen) {
852        window.plazaChat.closeWidget();
853      }
854      
855      const mainCompareBtn = document.getElementById('compareBtn');
856      if (mainCompareBtn) {
857        mainCompareBtn.click();
858      }
859    });
860  }
861
862  // Bottom Category Button - triggers mega menu
863  const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
864  if (bottomCategoryBtn) {
865    bottomCategoryBtn.addEventListener('click', function(e) {
866      e.preventDefault();
867      // Trigger desktop mega menu
868      const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
869      if (desktopTrigger) {
870        desktopTrigger.click();
871      }
872    });
873  }
874
875  // Bottom Login Button
876  const bottomLoginBtn = document.getElementById('bottomLoginBtn');
877  if (bottomLoginBtn) {
878    bottomLoginBtn.addEventListener('click', function(e) {
879      e.preventDefault();
880      window.location.href = '/login';
881    });
882  }
883
884  // Bottom Chat Button
885  const bottomChatBtn = document.getElementById('bottomChatBtn');
886  if (bottomChatBtn) {
887    bottomChatBtn.addEventListener('click', function(e) {
888      e.preventDefault();
889      
890      // Trigger chat widget (try multiple times if needed)
891      const triggerChat = () => {
892        const chatToggle = document.getElementById('chat-toggle-btn');
893        if (chatToggle) {
894          chatToggle.click();
895          return true;
896        }
897        return false;
898      };
899      
900      // Immediate attempt
901      if (!triggerChat()) {
902        // Retry after 100ms if not found
903        setTimeout(() => {
904          if (!triggerChat()) {
905            // Last resort: manually show popup
906            const popup = document.getElementById('chat-popup');
907            if (popup) {
908              popup.style.display = 'block';
909            }
910          }
911        }, 100);
912      }
913    });
914  }
915
916  // Sync chat unread badge
917  function syncBottomChatBadge() {
918    const chatBadge = document.getElementById('chat-unread-badge');
919    const bottomChatBadge = document.getElementById('bottomChatCount');
920    if (chatBadge && bottomChatBadge) {
921      const count = chatBadge.textContent;
922      bottomChatBadge.textContent = count;
923      bottomChatBadge.style.display = chatBadge.style.display;
924    }
925  }
926
927  // Observe chat badge changes
928  const chatBadge = document.getElementById('chat-unread-badge');
929  if (chatBadge) {
930    observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
931    syncBottomChatBadge();
932  }
933
934  // Active state management based on current page
935  function updateActiveState() {
936    const currentPath = window.location.pathname;
937    const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
938    
939    bottomNavItems.forEach(item => {
940      item.classList.remove('active');
941      
942      const itemId = item.id;
943      const page = item.getAttribute('data-page');
944      const href = item.getAttribute('href');
945      
946      // Check by ID for specific pages
947      if (itemId === 'bottomHomeBtn' && currentPath === '/') {
948        item.classList.add('active');
949      } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
950        item.classList.add('active');
951      } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
952        item.classList.add('active');
953      } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
954        item.classList.add('active');
955      } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
956        item.classList.add('active');
957      } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
958        item.classList.add('active');
959      }
960      // Fallback: check by data-page attribute
961      else if (page === 'home' && currentPath === '/') {
962        item.classList.add('active');
963      } else if (page === 'profile' && currentPath.startsWith('/profile')) {
964        item.classList.add('active');
965      }
966      // Fallback: check by href
967      else if (href && currentPath === href) {
968        item.classList.add('active');
969      }
970    });
971  }
972
973  // Update active state on load
974  updateActiveState();
975
976  // Bottom nav always visible - auto-hide disabled for better UX
977  // const bottomNav = document.querySelector('.bottom-nav');
978  // if (bottomNav && window.innerWidth <= 640) {
979  //   // Auto-hide feature disabled
980  // }
981})();
982// Cart Login Modal Handler (Global scope)
983function showCartLoginModal() {
984  const modal = document.getElementById('cartLoginModal');
985  if (!modal) return;
986  
987  modal.classList.add('show');
988  
989  const confirmBtn = document.getElementById('cartLoginConfirm');
990  const registerBtn = document.getElementById('cartRegisterBtn');
991  const cancelBtn = document.getElementById('cartLoginCancel');
992  
993  const handleLogin = () => {
994    window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
995  };
996  
997  const handleRegister = () => {
998    window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
999  };
1000  
1001  const handleCancel = () => {
1002    modal.classList.remove('show');
1003    confirmBtn.removeEventListener('click', handleLogin);
1004    registerBtn.removeEventListener('click', handleRegister);
1005    cancelBtn.removeEventListener('click', handleCancel);
1006  };
1007  
1008  confirmBtn.removeEventListener('click', handleLogin);
1009  registerBtn.removeEventListener('click', handleRegister);
1010  cancelBtn.removeEventListener('click', handleCancel);
1011  
1012  confirmBtn.addEventListener('click', handleLogin);
1013  registerBtn.addEventListener('click', handleRegister);
1014  cancelBtn.addEventListener('click', handleCancel);
1015  
1016  modal.addEventListener('click', (e) => {
1017    if (e.target === modal) {
1018      handleCancel();
1019    }
1020  });
1021}
1022</script>
1022
1023
1024
1025<!-- Product Compare Sidebar -->
1026<div class="compare-sidebar" id="compareSidebar">
1027  <div class="compare-header">
1028    <h4 class="compare-title">
1029      <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
1030        <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/>
1031      </svg>
1032      Bandingkan Produk
1033      <span class="compare-count" id="compareCountSidebar">(0)</span>
1034    </h4>
1035    <button class="compare-close" id="compareClose" aria-label="Tutup">
1036      <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1037        <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"/>
1038      </svg>
1039    </button>
1040  </div>
1041  
1042  <div class="compare-content">
1043    <div class="compare-empty" id="compareEmpty">
1044      <div class="empty-icon">
1045        <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
1046          <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/>
1047        </svg>
1048      </div>
1049      <h5>Belum ada produk dipilih</h5>
1050      <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
1051    </div>
1052    
1053    <div class="compare-list" id="compareList">
1054      <!-- Products will be populated here -->
1055    </div>
1056  </div>
1057  
1058  <div class="compare-actions" id="compareActions">
1059    <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
1060      <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1061        <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
1062      </svg>
1063      Hapus Semua
1064    </button>
1065    <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
1066      <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1067        <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"/>
1068      </svg>
1069      Analisis AI
1070    </button>
1071  </div>
1072  
1073  <!-- AI Disclaimer in Sidebar -->
1074  <div class="compare-disclaimer">
1075    <div class="ai-disclaimer">
1076      <div class="disclaimer-text">
1077        <strong>💡 Catatan:</strong> Analisis ini adalah panduan strategis untuk memaksimalkan performa di SPIN189.
1078        Gunakan sebagai referensi utama untuk meraih profit maksimal.
1079        Untuk bantuan lebih lanjut, silakan hubungi tim dukungan SPIN189.
1080      </div>
1081    </div>
1082  </div>
1083</div><link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/pd-lightbox.css">
1084<style>.paylater-promo{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#D8FBFF 0,#E6F7F9 100%);border:1px solid #eca92c;border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.4;margin:8px 0}.paylater-promo-sm{padding:6px 10px;font-size:11px;gap:6px}.paylater-promo-md{padding:8px 12px;font-size:13px;gap:8px}.paylater-promo-lg{padding:10px 16px;font-size:14px;gap:10px}.paylater-icon{font-size:1.2em;flex-shrink:0}.paylater-text{display:flex;flex-direction:column;gap:2px}.paylater-text strong{color:#2e200a;font-weight:600}.paylater-text small{color:#a67f12;font-size:.85em;opacity:.9}.paylater-desktop-only{display:none}.paylater-mobile-only{display:flex}@media (min-width:641px){.paylater-desktop-only{display:flex}.paylater-mobile-only{display:none}}@media (max-width:640px){.paylater-promo{font-size:12px;padding:7px 10px}.paylater-promo-lg{font-size:13px;padding:8px 12px}}@media print{.paylater-promo{display:none!important}}.paylater-compact{display:inline-block;font-size:11px;font-weight:600;color:#2e200a;background:#D8FBFF;padding:3px 8px;border-radius:4px;margin:6px 0 4px;line-height:1.3}@media (max-width:640px){.paylater-compact{font-size:10px;padding:2px 6px;margin:5px 0 3px}}@media print{.paylater-compact{display:none!important}}</style><style nonce="se3iyzEHMc9FQEB4wSyd0w==">.pd-voucher-minimal{margin:10px 0;display:flex;flex-direction:column;gap:6px}.pdv-min-item{display:flex;align-items:center;gap:8px;padding:0;height:32px;transition:all .2s ease}.pdv-min-hidden{display:none}.pdv-min-disabled{opacity:.5}.pdv-badge-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#a67f12 0,#2e200a 100%);border:none;border-radius:8px;padding:3px;
1084cursor:pointer;transition:all .2s ease;width:auto}.pdv-badge-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(18,146,166,.3)}.pdv-badge-btn:disabled{opacity:.6;cursor:not-allowed}.pdv-badge-icon{color:#fff;flex-shrink:0}.pdv-badge-text{font-size:14px;font-weight:700;color:#fff;white-space:nowrap}.pdv-badge-code{font-family:'Courier New',monospace;font-size:13px;font-weight:700;color:#fff;background:rgba(255,255,255,.2);padding:4px 8px;border-radius:4px;border:none;white-space:nowrap}.pdv-min-copy,.pdv-min-more{padding:4px 12px;font-size:12px;font-weight:600;border-radius:5px;border:1px solid #a67f12;background:#fff;color:#a67f12;cursor:pointer;transition:all .2s ease;white-space:nowrap}.pdv-min-copy:hover:not(:disabled),.pdv-min-more:hover{background:#a67f12;color:#fff;border-color:#a67f12}.pdv-min-copy:disabled{opacity:.4;cursor:not-allowed}.pdv-min-copy.copied{background:#F9B826;color:#2e200a;border-color:#F9B826}.pdv-min-more{margin-left:auto}.modal-close{position:absolute;top:20px;right:20px;background:none;border:none;cursor:pointer;color:#8b7f64;padding:4px;transition:color .2s ease}.modal-close:hover{color:#2e200a}.modal-body{margin-bottom:8px}.voucher-modal-content{text-align:center}.voucher-modal-badge{display:inline-flex;flex-direction:row;align-items:center;gap:6px;background:linear-gradient(135deg,#a67f12 0,#2e200a 100%);border-radius:10px;padding:8px 16px;margin-bottom:12px}.vmb-value{font-size:18px;font-weight:700;color:#fff;line-height:1}.vmb-label{font-size:18px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}.voucher-modal-code{font-family:'Courier New',monospace;font-size:14px;font-weight:700;color:#a67f12;background:rgba(18,146,166,.1);padding:6px 12px;border-radius:6px;border:2px dashed rgba(18,146,166,.3);display:inline-block;margin-bottom:10px}.voucher-modal-name{font-size:14px;font-weight:600;color:#2e200a;margin-bottom:16px}.voucher-modal-details{text-align:left;background:#F0F4F8;border-radius:8px;padding:12px;margin-bottom:16px}.vmd-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:13px;color:#475569;border-bottom:1px solid #D8FBFF}.vmd-item:last-child{border-bottom:none}.vmd-item svg{color:#a67f12;flex-shrink:0;margin-top:2px}.vmd-item strong{color:#2e200a}.modal-actions{padding:20px}.modal-btn-primary{background:linear-gradient(135deg,#a67f12 0,#2e200a 100%);color:#fff}.modal-btn-primary:hover{opacity:.9;transform:translateY(-1px)}@media (max-width:640px){.pdv-min-item{gap:6px}.pdv-badge-btn{padding:3px;gap:6px}.pdv-badge-text{font-size:13px}.pdv-badge-code{font-size:12px;padding:3px 6px}.pdv-min-copy,.pdv-min-more{padding:3px 10px;font-size:11px}.modal-dialog{max-width:95%;margin:20px}.vmb-value{font-size:16px}.vmb-label{font-size:16px}.voucher-modal-code{font-size:13px;padding:5px 10px}}</style><style nonce="se3iyzEHMc9FQEB4wSyd0w==">.promo-endyear-mini-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(255,255,255,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid rgba(18,146,166,.2);border-radius:12px;margin:16px 0;box-shadow:0 4px 16px rgba(0,0,0,.08);transition:all .3s ease}.promo-endyear-mini-banner:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.12);border-color:rgba(18,146,166,.4)}.pey-icon{font-size:32px;line-height:1;flex-shrink:0}.pey-content{flex:1;min-width:0}.pey-content strong{display:block;font-size:14px;font-weight:700;color:#a67f12;margin-bottom:2px}.pey-content span{display:block;font-size:13px;color:#475569;line-height:1.4}.pey-link{flex-shrink:0;padding:8px 16px;background:linear-gradient(135deg,#a67f12,#eca92c);color:#fff;text-decoration:none;font-size:13px;font-weight:700;border-radius:8px;white-space:nowrap;transition:all .2s ease;box-shadow:0 2px 8px rgba(18,146,166,.25)}.pey-link:hover{transform:translateX(2px);box-shadow:0 4px 12px rgba(18,146,166,.35)}@media(max-width:640px){.promo-endyear-mini-banner{flex-wrap:wrap;gap:8px;padding:10px 12px}.pey-icon{font-size:28px;align-self:flex-start}.pey-content{flex:1;min-width:0}.pey-content strong{font-size:12px}.pey-content span{font-size:11px;line-height:1.3}.pey-link{width:100%;flex-basis:100%;font-size:11px;padding:6px 12px;text-align:center}}@media print{.promo-endyear-mini-banner{display:none!important}}</style>
1085<style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1086.pd-title-row{position:relative;margin-bottom:12px;padding-right:52px}.pd-title{margin:0!important}.pd-share-btn{position:absolute;top:0;right:0;width:40px;height:40px;
1086display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid #a67f12;background:#fff;color:#a67f12;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.pd-share-btn:hover{background:#D8FBFF;border-color:#2e200a;color:#2e200a;transform:translateY(-1px)}.pd-share-btn:active{transform:translateY(0)}.pd-share-btn svg{display:block}
1087
1088.pd-share-modal-overlay{position:fixed;inset:0;background:rgba(4,9,20,.75);backdrop-filter:blur(4px);z-index:99999;display:none;align-items:center;justify-content:center;padding:0;animation:fadeIn .2s ease}.pd-share-modal-overlay.show{display:flex}.pd-share-modal{background:#fff;border-radius:20px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-width:480px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
1089
1090.pd-share-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #E6F7F9}.pd-share-title{font-size:18px;font-weight:700;color:#2e200a;margin:0}.pd-share-close{width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.pd-share-close:hover{background:#F0F4F8;color:#2e200a}.pd-share-body{padding:24px;overflow-y:auto}
1091
1092.pd-share-preview{display:flex;gap:12px;padding:16px;background:#F0F4F8;border-radius:12px;margin-bottom:24px}.pd-share-preview-img{width:64px;height:64px;border-radius:8px;object-fit:cover;flex-shrink:0;border:1px solid #D8FBFF}.pd-share-preview-info{flex:1;min-width:0}.pd-share-preview-name{font-size:14px;font-weight:600;color:#2e200a;margin:0 0 4px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pd-share-preview-price{font-size:16px;font-weight:700;color:#a67f12;margin:0}
1093
1094.pd-share-label{font-size:13px;font-weight:600;color:#2e200a;margin:0 0 12px 0;text-transform:uppercase;letter-spacing:.5px}.pd-share-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.pd-share-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;border:1.5px solid #D8FBFF;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;text-decoration:none;color:inherit}.pd-share-option:hover{border-color:#a67f12;background:#F0F4F8;transform:translateY(-2px)}.pd-share-option:active{transform:translateY(0)}
1095
1096.pd-share-icon{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;position:relative}.pd-share-icon svg{width:24px;height:24px;display:block}.pd-share-icon-whatsapp{background:linear-gradient(135deg,#25D366 0%,#128C7E 100%);color:#fff}.pd-share-icon-facebook{background:linear-gradient(135deg,#1877F2 0%,#0c63d4 100%);color:#fff}.pd-share-icon-twitter{background:linear-gradient(135deg,#1DA1F2 0%,#0d8bd9 100%);color:#fff}.pd-share-icon-telegram{background:linear-gradient(135deg,#0088cc 0%,#0077b3 100%);color:#fff}.pd-share-icon-email{background:linear-gradient(135deg,#EA4335 0%,#c5331f 100%);color:#fff}.pd-share-icon-copy{background:linear-gradient(135deg,#F9B826 0%,#D49A1F 100%);color:#fff}.pd-share-icon-pdf{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);color:#fff}.pd-share-name{font-size:12px;font-weight:600;color:#2e200a;text-align:center}
1097
1098.pd-share-copy-section{background:#F0F4F8;padding:16px;border-radius:12px}.pd-share-copy-input-wrap{display:flex;gap:8px}.pd-share-copy-input{flex:1;padding:12px 14px;border:1px solid #D8FBFF;border-radius:10px;font-size:14px;color:#2e200a;background:#fff;font-family:'Segoe UI',system-ui,sans-serif}.pd-share-copy-input:focus{outline:0;border-color:#a67f12;box-shadow:0 0 0 3px rgba(18,146,166,.1)}.pd-share-copy-btn{padding:12px 20px;border:0;border-radius:10px;background:linear-gradient(135deg,#a67f12 0%,#2e200a 100%);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.pd-share-copy-btn:hover{background:linear-gradient(135deg,#2e200a 0%,#040914 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(18,146,166,.3)}.pd-share-copy-btn:active{transform:translateY(0)}.pd-share-copy-btn svg{width:16px;height:16px}.pd-share-copy-btn.copied{background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);pointer-events:none}
1099
1100@media(max-width:640px){.pd-share-modal{border-radius:20px 20px 0 0;margin-top:auto;max-height:85vh}.pd-share-grid{grid-template-columns:repeat(3,1fr)}.pd-share-header{padding:16px 20px}.pd-share-body{padding:20px}.pd-share-btn{width:36px;height:36px}.pd-share-btn svg{width:18px;height:18px}}@media(max-width:480px){.pd-share-grid{grid-template-columns:repeat(3,1fr);gap:10px}.pd-share-option{padding:12px 6px}.pd-share-icon{width:36px;height:36px}.pd-share-icon svg{width:20px;height:20px}.pd-share-name{font-size:11px}}
1101
1102.mf-share{background:#fff;color:#a67f12;border:2px solid #a67f12;display:inline-flex;align-items:center;justify-content:center}.mf-share:active{transform:scale(.95)}.mf-share svg{display:block}
1103
1104@media(max-width:640px){.pd-share-btn{display:none!important}}
1105
1106.stock-badge.in{background:#D8FBFF;color:#2e200a;border-radius:999px;padding:4px 10px;font-weight:700}.stock-badge.out{background:#fee2e2;color:#b91c1c;border-radius:999px;padding:4px 10px;font-weight:700}
1107
1108.stock-info-btn{--c:#a67f12;--b:#eca92c;--bg:#D8FBFF;--bg-h:#E6F7F9;--b-h:#a67f12;margin-left:0;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:4px 10px;border-radius:999px;border:1.5px solid var(--b);background:var(--bg);color:var(--c);cursor:pointer;font-size:12px;font-weight:600;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.stock-info-btn:hover{background:var(--bg-h);border-color:var(--b-h);color:#2e200a;transform:translateY(-1px);box-shadow:0 2px 8px rgba(18,146,166,.15)}.stock-info-btn:active{transform:translateY(0)}.stock-info-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(18,146,166,.2)}.stock-info-btn svg{width:14px;
1108height:14px;flex-shrink:0}.stock-info-btn .btn-text{white-space:nowrap}
1109
1110.stock-popover{position:absolute;z-index:9999;min-width:280px;max-width:92vw;background:#040914;color:#D8FBFF;border:1px solid rgba(18,146,166,.3);border-radius:14px;box-shadow:0 20px 40px rgba(4,9,20,.45);padding:12px 12px 8px;display:none}.stock-popover.show{display:block}.stock-popover::before{content:"";position:absolute;top:-8px;left:24px;width:14px;height:14px;background:#040914;border-left:1px solid rgba(18,146,166,.3);border-top:1px solid rgba(18,146,166,.3);transform:rotate(45deg)}.sp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sp-title{font-weight:800;font-size:14px}.sp-close{background:transparent;border:0;color:#eca92c;cursor:pointer}
1111
1112.sp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sp-item{display:grid;grid-template-columns:1fr auto 32px;column-gap:12px;align-items:center;padding:10px 10px;min-height:44px;border-radius:10px;background:rgba(255,255,255,.05)}.sp-left{display:flex;align-items:center;gap:10px}.sp-dot{width:10px;height:10px;border-radius:999px;background:var(--dot,#F9B826);display:inline-block}.sp-label{font-weight:600;font-size:13px}
1113
1114
1115.sp-qty{grid-column:2;justify-self:end;min-width:40px;text-align:right;font-weight:800;font-size:13px;color:#F9B826;font-variant-numeric:tabular-nums}
1116
1117.sp-wa{
1118  grid-column:3; justify-self:end;
1119  width:32px; height:32px; min-width:32px; min-height:32px;
1120  box-sizing:border-box;
1121  padding:0; line-height:0; text-decoration:none; outline:0;
1122  display:inline-flex; align-items:center; justify-content:center;
1123  border-radius:999px; border:1px solid rgba(37,211,102,.60); 
1124  background:rgba(37,211,102,.08); color:#25D366;
1125  transition:background-color .15s ease, border-color .15s ease, transform .05s ease;
1126  -webkit-tap-highlight-color:transparent;
1127}
1128.sp-wa:hover{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.75)}
1129.sp-wa:active{transform:translateY(.5px) scale(.98)}
1130
1131.sp-wa svg{width:18px;height:18px;display:block;vertical-align:middle}
1132.stock-popover a{text-decoration:none}
1133
1134#deskripsi img{max-width:200px!important;height:unset!important}@media(max-width:640px){.stock-popover{position:fixed;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom,12px));margin:0 10px;padding:14px 12px 10px;border-radius:16px}.stock-popover::before{display:none}.stock-info-btn{padding:4px 8px;gap:4px;border:0;background:transparent}.stock-info-btn:hover{background:transparent;box-shadow:none;transform:none}.stock-info-btn .btn-text{display:none}.stock-info-btn svg{width:16px;height:16px}.sp-item{grid-template-columns:1fr auto 36px}.sp-wa{width:36px;height:36px;min-width:36px;min-height:36px}.sp-wa svg{width:19px;height:19px}}
1135
1136.stock-dot{position:absolute;bottom:8px;right:8px;width:8px;height:8px;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,0.4);z-index:2;cursor:help}.stock-dot.ready{background:#a67f12}.stock-dot.low{background:#F9B826}.stock-dot.out{background:#ef4444}.stock-dot:hover{transform:scale(1.2);transition:transform 0.2s ease}@media(max-width:640px){.stock-dot{width:7px;height:7px;bottom:6px;right:6px}}
1137
1138.pd-related-card .spec-chips{font-size:11px;color:#475569;margin:4px 0 6px 0;line-height:1.3;font-weight:500}.pd-related-card .spec-chips .spec-divider{margin:0 4px;opacity:0.6}@media(max-width:640px){.pd-related-card .spec-chips{font-size:10px;margin:3px 0 5px 0}#deskripsi img{max-width:300px!important;height:unset!important;justify-self:center!important}}
1139
1140.pwp-trigger-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px 4px;background:linear-gradient(135deg,#F9B826 0%,#D49A1F 100%);color:#2e200a;border-radius:6px;font-size:.65rem;font-weight:600;border:0}.pwp-trigger-badge svg{flex-shrink:0;width:12px;height:12px}
1141.pwp-deals-section{margin:0;padding:12px;background:linear-gradient(135deg,#D8FBFF 0%,#E6F7F9 100%);border-radius:12px;border:2px solid #eca92c}.pwp-deals-header{display:flex;gap:10px;margin-bottom:10px}.pwp-icon{flex-shrink:0;color:#a67f12;width:18px;height:18px}.pwp-text .pwp-title{margin:0 0 2px 0;font-size:14px;font-weight:700;color:#2e200a}.pwp-text .pwp-subtitle{margin:0;font-size:11px;color:#a67f12;opacity:0.9}.pwp-deals-loading{text-align:center;padding:40px 0;color:#a67f12}
1141.pwp-spinner{width:40px;height:40px;border:3px solid #eca92c;border-top-color:#a67f12;border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}
1142.pwp-deals-grid{display:flex;flex-direction:column;gap:6px}.pwp-deal-card{background:#fff;border-radius:6px;overflow:hidden;border:1px solid #eca92c;display:flex;align-items:center;padding:8px;gap:10px}.pwp-deal-card:hover{background:#F0F4F8}.pwp-deal-thumb{flex-shrink:0;width:50px;height:50px;background:#F0F4F8;overflow:hidden;border-radius:4px}.pwp-deal-thumb img{width:100%;height:100%;object-fit:cover}.pwp-deal-badge{background:#F9B826;color:#2e200a;padding:2px 5px;border-radius:3px;font-size:9px;font-weight:700;margin-left:auto}.pwp-deal-info{flex:1;display:flex;flex-direction:column;gap:4px}.pwp-deal-name{font-size:12px;font-weight:600;color:#2e200a;margin:0;line-height:1.2}.pwp-deal-prices{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pwp-deal-price{font-size:14px;font-weight:800;color:#a67f12;white-space:nowrap}.pwp-deal-original{font-size:11px;color:#475569;text-decoration:line-through;white-space:nowrap}.pwp-cart-note{margin-top:8px;padding:6px 10px;background:#D8FBFF;border-left:2px solid#a67f12;font-size:11px;color:#2e200a;border-radius:4px}
1143@media(max-width:640px){.pwp-deals-section{margin:12px 0;padding:10px;border-radius:10px}.pwp-deals-header{gap:8px}.pwp-text .pwp-title{font-size:13px}.pwp-text .pwp-subtitle{font-size:10px}.pwp-deal-card{padding:6px;gap:8px}.pwp-deal-thumb{width:45px;height:45px}.pwp-deal-name{font-size:11px}.pwp-deal-price{font-size:13px}.pwp-deal-original{font-size:10px}}
1144
1145.preorder-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:linear-gradient(135deg,#a67f12 0%,#2e200a 100%);color:#fff;border-radius:8px;font-size:13px;font-weight:700;border:0;box-shadow:0 2px 8px rgba(18,146,166,.25)}.preorder-badge svg{width:16px;height:16px;flex-shrink:0}.preorder-info{margin:12px 0;padding:14px;background:linear-gradient(135deg,#D8FBFF 0%,#E6F7F9 100%);border:1.5px solid #eca92c;border-radius:12px}.preorder-info-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.preorder-info-icon{width:20px;height:20px;color:#a67f12;flex-shrink:0}.preorder-info-title{font-size:14px;font-weight:700;color:#2e200a;margin:0}.preorder-info-items{display:flex;flex-direction:column;gap:8px}.preorder-info-row{display:flex;align-items:center;justify-content:space-between;font-size:13px}.preorder-info-label{color:#2e200a;font-weight:600}.preorder-info-value{color:#a67f12;font-weight:700}.preorder-info-value.highlight{color:#F9B826;font-size:14px}.preorder-info-note{margin-top:10px;padding:8px 10px;background:#F0F4F8;border-left:2px solid #a67f12;font-size:12px;color:#2e200a;border-radius:6px;line-height:1.4}@media(max-width:640px){.preorder-badge{font-size:12px;padding:5px 10px}.preorder-info{margin:10px 0;padding:12px}.preorder-info-title{font-size:13px}.preorder-info-row{font-size:12px}.preorder-info-note{font-size:11px;padding:6px 8px}}
1146</style>
1147
1148<div class="pd-sticky-header" id="pd-sticky-header"><div class="pd-sticky-header-container"><div class="pd-sticky-thumb"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" id="pd-sticky-thumb-img"></div><div class="pd-sticky-info"><h2 class="pd-sticky-title" id="pd-sticky-title">SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!</h2><div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 10.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div></div><div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/>
1148</svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat" id="pd-sticky-chat"><svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true"><path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/></svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart" id="pd-sticky-add-cart" disabled>+ Keranjang</button><button type="button" class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button></div></div></div>
1149
1150<main class="product-single product-single--v3"><nav class="pd-breadcrumb" aria-label="breadcrumb"><a href="https://emetaltrade.com/">SPIN189</a><span>/</span><a href="https://emetaltrade.com/">MODE RETRO</a><span>/</span><a href="https://emetaltrade.com/">PROFIT MAKSIMAL</a><span>/</span><a href="https://emetaltrade.com/">SISTEM PREMIUM</a><span>/</span><a href="https://emetaltrade.com/">AKSES EKSKLUSIF</a><span>/</span><span class="current">SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!
1151
1152</span></nav>
1153
1154<div class="pd-top-layout"><section class="pd-media-card"><figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img" src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" data-slug="" loading="eager">
1155</figure>
1156
1157<div class="pd-mobile-slider-wrapper">
1158<div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)"><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="eager"></div><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></div><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></div><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></div><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></div><div class="pd-mslide"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></div></div><div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div></div>
1159<div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button type="button" class="pd-thumb-btn active" data-full="https://emetaltrade.com/images/banner.webp" data-alt="SPIN189" data-slug="" aria-label="Gambar 1"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://emetaltrade.com/images/banner.webp" data-alt="SPIN189" data-slug="https://emetaltrade.com/images/banner.webp" aria-label="Gambar 2"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://emetaltrade.com/images/banner.webp" data-alt="SPIN189" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" aria-label="Gambar 3"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://emetaltrade.com/images/banner.webp" data-alt="SPIN189" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" aria-label="Gambar 4"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://emetaltrade.com/images/banner.webp" data-alt
1159="SPIN189" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" aria-label="Gambar 5"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://emetaltrade.com/images/banner.webp" data-alt="SPIN189" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" aria-label="Gambar 6"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" loading="lazy"></button></div></section><section class="pd-info-card"><div id="pd-variant-combined" class="pd-variant-combined" hidden></div><div class="pd-title-row">
1160        <h1 class="pd-title" id="pd-title">SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!</h1><button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"><path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/></svg></button></div>
1161<div id="pd-price-anchor">
1162</div>
1163<div class="pd-price-qr-container">
1164        <div class="pd-price-block" id="pd-price-block">
1165                <div class="pd-price-row">
1166                        <span class="pd-price-current" id="pd-price-current" >Rp 10.000</span>
1167                        <span class="pd-price-original" id="pd-price-original">Rp 100.000</span>
1168                        <span class="pd-discount-badge" id="pd-discount-badge">-90%</span></div>
1169                        <div class="pd-meta-row">
1170                                <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 2</span>
1171                                <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
1172                                        <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
1173                                                <path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/></svg>Bisa PWP</span></div>
1174                                                <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">SPIN189</span>
1175                                                        <span class="sku">SKU: <span id="pd-sku">1S83N0800RID</span></span></div>
1176<div class="paylater-promo paylater-promo-sm paylater-mobile-only">
1177    <span class="paylater-icon">💳</span>
1178    <span class="paylater-text">
1179        <strong>SPIN189</strong>
1180        <small>PORTAL PREMIUM</small>
1181    </span>
1182</div>
1183
1184<div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" aria-label="Informasi stok cabang"><div class="sp-head"><div class="sp-title">Stok Cabang</div><button type="button" class="sp-close" id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"><path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/></svg></button></div><ul class="sp-list">
1185<li class="sp-item"><div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span class="sp-label">Asia Mega Mas</span></div><span class="sp-qty" id="sp-qty-meg">0</span><a class="sp-wa" href="https://wa.me/6281380009898?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Asia%20Mega%20Mas%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas"><svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1185<path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/></svg></a></li>
1186                
1187                    <li class="sp-item">
1188                      <div class="sp-left">
1189                        <span class="sp-dot" style="--dot:#34d399;"></span>
1190                        <span class="sp-label">Medan Fair</span>
1191                      </div>
1192                      <span class="sp-qty" id="sp-qty-mdf">0</span>
1193                      <a class="sp-wa"
1194                         href="https://wa.me/6285388992009?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Medan%20Fair%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
1195                         target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
1196                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1197                            <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
1198                          </svg>
1199                      </a>
1200                    </li>
1201                
1202                    <li class="sp-item">
1203                      <div class="sp-left">
1204                        <span class="sp-dot" style="--dot:#f59e0b;"></span>
1205                        <span class="sp-label">Banda Aceh</span>
1206                      </div>
1207                      <span class="sp-qty" id="sp-qty-bda">0</span>
1208                      <a class="sp-wa"
1209                         href="https://wa.me/628116833411?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Banda%20Aceh%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
1210                         target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
1211                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1212                            <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
1213                          </svg>
1214                      </a>
1215                    </li>
1216                  </ul>
1217                </div>
1218
1219                            </div>
1220            <div class="pd-qr-print" style="display:none;"><div class="pd-qr-label">Scan untuk lihat produk:</div><img src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8as
1220p2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" alt="QR Code" class="pd-qr-image"></div>
1221            </div>
1222                                    <div id="pd-variants-anchor"></div>
1223
1224                        
1225
1226            <div class="pd-compare-section">
1227                <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
1228                    <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1229                        <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"/>
1230                    </svg>
1231                    <span class="compare-text">Bandingkan Produk</span>
1232                    <span class="compare-remove" hidden>
1233                        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1234                            <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
1235                        </svg>
1236                        Hapus dari Perbandingan
1237                    </span>
1238                </button>
1239                <div class="pd-compare-info">
1240                    <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan AI</small>
1241                </div>
1242            </div>
1243            
1244            <div class="pd-short-desc"><p><strong>Informasi SPIN189 :</strong></p><ul><li>Minimal Deposit: Rp 10.000,-</li><li>Kategori Hiburan: Game Premium, Live Interaktif, Arcade Eksklusif</li><li>Metode Transaksi: Bank Transfer, QRIS, Dompet Digital</li><li>Mata Uang: IDR (Indonesian Rupiah)</li><li>Jam Operasional: Layanan 24 Jam Nonstop</li><li>Total Rating: 9.999++</li><li>Rating Kepuasan: ⭐⭐⭐⭐⭐</li><li>Akses Eksklusif: <a href="https://emetaltrade.com/amp/">Klik Disini</a></li></ul></div>
1245<div id="golden-slot-standalone-v3">
1246    <style>
1247@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700&display=swap');
1248
1249:root {
1250  --red: #a67f12;
1251  --dark: #040914;
1252}
1253
1254.cyber-terminal {
1255  font-family: 'Orbitron', monospace;
1256  background: radial-gradient(circle at top, #2e200a, #040914);
1257  border-radius: 18px;
1258  padding: 28px;
1259  max-width: 480px;
1260  margin: auto;
1261  color: #D8FBFF;
1262  position: relative;
1263  overflow: hidden;
1264  border: 1px solid rgb(166, 102, 18);
1265  box-shadow:
1266    0 0 35px rgba(166, 114, 18, 0.7),
1267    inset 0 0 25px rgba(4, 9, 20, 1);
1268}
1269
1270.cyber-terminal::before {
1271  content: "";
1272  position: absolute;
1273  inset: 0;
1274  background: linear-gradient(
1275    to bottom,
1276    transparent,
1277    rgba(18, 118, 166, 0.4),
1278    transparent
1279  );
1280  animation: scan 4s linear infinite;
1281  pointer-events: none;
1282}
1283
1284@keyframes scan {
1285  0% { transform: translateY(-100%); }
1286  100% { transform: translateY(100%); }
1287}
1288
1289.cyber-title {
1290  text-align: center;
1291  font-size: 22px;
1292  letter-spacing: 3px;
1293  color: #F9B826;
1294  margin-bottom: 6px;
1295  animation: glitch 2.5s infinite;
1296}
1297
1298@keyframes glitch {
1299  0%,100% { text-shadow: 0 0 5px #F9B826; }
1300  50% { text-shadow: 2px 0 #F9B826, -2px 0 #D8FBFF; }
1301}
1302
1303.cyber-sub {
1304  text-align: center;
1305  font-size: 11px;
1306  opacity: .7;
1307  margin-bottom: 20px;
1308}
1309
1310.cyber-section { margin-bottom: 22px; }
1311
1312.cyber-label {
1313  font-size: 12px;
1314  color: #eca92c;
1315  margin-bottom: 6px;
1316  letter-spacing: 1px;
1317}
1318
1319.cyber-result{
1320  background: #02050A;
1321  border: 1px solid #a67f12;
1322  border-radius: 10px;
1323  padding: 14px;
1324  text-align: center;
1325  font-size: 20px;
1326  letter-spacing: 2px;
1327  min-height: 34px;
1328  color: #ffffff; 
1329  text-shadow: 0 0 10px #a67f12, 
1330               0 0 20px #a67f12;
1331}
1332
1333.cyber-btn {
1334  width: 100%;
1335  margin-top: 10px;
1336  padding: 12px;
1337  font-family: 'Orbitron', monospace;
1338  border-radius: 12px;
1339  border: none;
1340  cursor: pointer;
1341  letter-spacing: 2px;
1342  font-size: 13px;
1343  font-weight: 700;
1344  color: #ffffff;
1345  background: linear-gradient(135deg, #a67f12, #eca92c);
1346  position: relative;
1347  overflow: hidden;
1348  transition: transform .25s ease;
1349  z-index: 1;
1350}
1351
1352.cyber-btn::before {
1353  content: "";
1354  position: absolute;
1355  inset: 0;
1356  background: linear-gradient(
1357    120deg,
1358    transparent,
1359    rgba(255,255,255,.4),
1360    transparent
1361  );
1362  transform: translateX(-120%);
1363}
1364
1365.cyber-btn:hover::before { animation: sweep .6s; }
1366@keyframes sweep { to { transform: translateX(120%); } }
1367.cyber-btn:hover { transform: scale(1.05); }
1368
1369.cyber-footer {
1370  text-align: center;
1371  font-size: 10px;
1372  opacity: .6;
1373  margin-top: 18px;
1374}
1375</style>
1376
1377<div class="cyber-terminal">
1378  <div class="cyber-title">SPIN189 TERMINAL</div>
1379  <div class="cyber-sub">STRATEGIC DATA ANALYSIS INTERFACE</div>
1380
1381  <div class="cyber-section">
1382    <div class="cyber-label">PROBABILITAS DATA</div>
1383    <div class="cyber-result" id="rtp">-- %</div>
1384    <button class="cyber-btn" id="btnRTP">AKTIVASI SCANNER</button>
1385  </div>
1386
1387  <div class="cyber-section">
1388    <div class="cyber-label">OPTIMASI PORTFOLIO</div>
1389    <div class="cyber-result" id="game">----</div>
1390    <button class="cyber-btn" id="btnGame">IDENTIFIKASI ASET</button>
1391  </div>
1392
1393  <div class="cyber-section">
1394    <div class="cyber-label">JADWAL TRANSAKSI</div>
1395    <div class="cyber-result" id="jam">--:--</div>
1396    <button class="cyber-btn" id="btnJam">KALIBRASI WAKTU</button>
1397  </div>
1398
1399  <div class="cyber-footer">SPIN189 CORE ANALYTICS</div>
1400</div>
1401
1402<script>
1403(function () {
1404
1405  const elRTP = document.getElementById("rtp");
1406  const elGame = document.getElementById("game");
1407  const elJam  = document.getElementById("jam");
1408
1409  const btnRTP = document.getElementById("btnRTP");
1410  const btnGame = document.getElementById("btnGame");
1411  const btnJam = document.getElementById("btnJam");
1412
1413  function effect(el, finalText) {
1414    if (!el) return;
1415
1416    const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
1417    let i = 0;
1418
1419    const interval = setInterval(() => {
1420      el.innerText = Array(finalText.length)
1421        .fill(0)
1422        .map(() => chars[Math.floor(Math.random() * chars.length)])
1423        .join("");
1424
1425      i++;
1426      if (i > 10) {
1427        clearInterval(interval);
1428        el.innerText = finalText;
1429      }
1430    }, 60);
1431  }
1432
1433  function genRTP() {
1434    const val = Math.floor(Math.random() * (97 - 88 + 1)) + 88;
1435    effect(elRTP, val + "%");
1436  }
1437
1438  function genGame() {
1439    const games = [
1440      "GATES OF OLYMPUS",
1441      "SWEET BONANZA",
1442      "STarlight Princess",
1443      "MAHJONG WAYS",
1444      "WILD WEST GOLD",
1445      "AZTEC GEMS",
1446      "GOLDEN EMPIRE"
1447    ];
1448    const pick = games[Math.floor(Math.random() * games.length)];
1449    effect(elGame, pick);
1450  }
1451
1452  function genJam() {
1453    const h = String(Math.floor(Math.random() * 24)).padStart(2,'0');
1454    const m = String(Math.floor(Math.random() * 60)).padStart(2,'0');
1455    effect(elJam, h + ":" + m);
1456  }
1457
1458  if (btnRTP) btnRTP.addEventListener("click", genRTP);
1459  if (btnGame) btnGame.addEventListener("click", genGame);
1460  if (btnJam) btnJam.addEventListener("click", genJam);
1461
1462})();
1463</script>
1463
1464
1465
1466                        
1467            <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325" data-variant-id="0" data-category-path="Komputer &amp; Laptop/Laptop/Gaming"><div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/></svg><div class="pwp-text"><h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3><p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p></div></div><div class="pwp-deals-loading"><div class="pwp-spinner"></div><p>Memuat penawaran...</p></div><div class="pwp-deals-grid" id="pwp-deals-grid"></div><p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini dimasukkan</p></div>
1468        </section>
1469
1470        <aside class="pd-sidebar">
1471            <div class="pd-side-card pd-buy-card">
1472                <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
1473                    <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
1474                    <div>
1475                        <label for="qty" class="qty-label">Qty</label>
1476                        <input type="number" id="qty" name="qty" value="0" min="1"
1477                               max="0"
1478                               disabled>
1479                    </div>
1480                    <div class="pd-actions">
1481                        <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
1482                        <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled >Beli</button>
1483                        <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"><path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/></svg></button>
1484                                            </div>
1485                </form>
1486                <div class="paylater-promo paylater-promo-md paylater-desktop-only">
1487    <span class="paylater-icon">🎮</span>
1488    <span class="paylater-text">
1489        <strong>SPIN189</strong>
1490        <small>SLOT GACORPROFIT</small>
1491    </span>
1492</div>            </div>
1493
1494                        
1495                        <div class="pd-side-card qoala-banner-card">
1496                <div class="qoala-banner">
1497                    <div class="qoala-banner-content">
1498                        <div class="qoala-icon">
1499                            <center><img src="https://emetaltrade.com/images/favicon.webp" alt="SPIN189" class="qoala-shield-img"></center>
1500                        </div>
1501                        <div class="qoala-text">
1502                            <div class="qoala-title">Login SPIN189</div>
1503                            <div class="qoala-subtitle">Verified</div>
1504                        </div>
1505                    </div>
1506                    <a href="https://emetaltrade.com/amp/" class="qoala-cta"
1507                       data-ga-event="qoala_banner_click"
1508                       data-product-id="325"
1509                       data-product-name="SPIN189"
1510                       data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
1511                </div>
1512<style>.qoala-banner-card{padding:0;overflow:hidden}.qoala-banner{background:linear-gradient(135deg, #a67f12 0%, #2e200a 100%);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;color:#ffffff;text-decoration:none;min-height:60px}.qoala-banner-content{display:flex;align-items:center;gap:12px}.qoala-icon{display:flex;align-items:center;justify-content:center}.qoala-shield-img{width:36px;height:36px;object-fit:contain;opacity:0.9}.qoala-title{font-weight:600;font-size:14px;line-height:1.2}.qoala-subtitle{font-size:12px;opacity:0.9;line-height:1.2}.qoala-cta{background:rgba(249, 184, 38, 0.15);color:#F9B826;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;transition:background 0.2s ease;border:1px solid rgba(249, 184, 38, 0.4)}.qoala-cta:hover{background:rgba(249, 184, 38, 0.3);color:#F9B826}@media(max-width:768px){.qoala-banner{padding:10px 12px}.qoala-title{font-size:17px}.qoala-subtitle{font-size:11px}}</style>
1513            </div>
1514            
1515                        <div class="pd-side-card pd-installment-card2"
1516                 id="inst-card"
1517                 data-base-price="20789000"
1518                 data-zero-smart="0">
1519                <div class="inst-head">
1520                    <h3>Layanan & Fitur SPIN189</h3>
1521                                        </div>
1522
1523                <div class="inst-bank-tabs" role="tablist" aria-label="Fitur Retro">
1524                    <button type="button" class="bank-tab active" data-bank="Mode Retro" aria-selected="true">Mode Retro</button>
1525                    <button type="button" class="bank-tab" data-bank="Profit Maksimal" aria-selected="false">Profit Maksimal</button>
1526                    <button type="button" class="bank-tab" data-bank="Analisis Akurat" aria-selected="false">Analisis Akurat</button>
1527                </div>
1528
1529                <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar benef
1529it member"></ul>
1530                <div class="inst-note" id="inst-zero-note" style="display:none;">Bonus eksklusif untuk member setia SPIN189*</div>
1531                <div class="inst-disclaimer">Informasi estimasi. Penawaran dapat disesuaikan dengan kebijakan layanan platform SPIN189.</div>
1532             </div>
1533            
1534            <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
1535<div class="tnt-review-mecha">
1536
1537  </div>
1538   </div>
1539<a href="https://emetaltrade.com/amp/" target="_blank">
1540  <img 
1541    style="
1542      display:block;
1543      margin-left:auto;
1544      margin-right:auto;
1545      width: 250px; 
1546      max-width:100%;
1547      height:auto;
1548      border:2px solid rgb(211,157,13);
1549      border-radius:20px;
1550      box-shadow:1px 1px 5px black;
1551    " 
1552    alt="SPIN189" 
1553    src="https://nay.slteam.online/img/daftar-sekarang.gif"
1554  />
1555</a>
1556
1557</div>
1558
1559<style>
1560/* CONTAINER */
1561.article-pro {
1562  max-width: 700px;
1563  margin: 40px auto;
1564  padding: 30px 25px;
1565  background: #ffffff; /* 🔥 UBAH JADI PUTIH */
1566  border-radius: 18px;
1567  border: 2px solid #e7890e;
1568  box-shadow: 0 0 20px rgba(178, 127, 32, 0.2);
1569  font-family: "Poppins", sans-serif;
1570  color: #000000; /* 🔥 TEKS JADI HITAM */
1571  line-height: 1.8;
1572  position: relative;
1573  overflow: hidden;
1574}
1575
1576/* ✨ CAHAYA GERAK */
1577.article-pro::before {
1578  content: "";
1579  position: absolute;
1580  top: 0;
1581  left: -150%;
1582  width: 50%;
1583  height: 100%;
1584  background: linear-gradient(
1585    120deg,
1586    transparent,
1587    rgba(32,178,170,0.3),
1588    transparent
1589  );
1590  transform: skewX(-20deg);
1591  animation: shineMove 4s linear infinite;
1592}
1593
1594/* ✨ GLOW DALAM */
1595.article-pro::after {
1596  content: "";
1597  position: absolute;
1598  inset: 0;
1599  border-radius: 18px;
1600  box-shadow: inset 0 0 15px rgba(32,178,170,0.15);
1601  pointer-events: none;
1602}
1603
1604/* ANIMASI */
1605@keyframes shineMove {
1606  0% { left: -150%; }
1607  100% { left: 150%; }
1608}
1609
1610/* PARAGRAF */
1611.article-pro p {
1612  font-size: 15px;
1613  margin-bottom: 18px;
1614  text-align: justify;
1615  color: #1e293b; /* 🔥 warna teks gelap biar enak dibaca */
1616  position: relative;
1617  z-index: 2;
1618}
1619
1620/* HOVER PARAGRAF */
1621.article-pro p:hover {
1622  color: #000000;
1623  text-shadow: 0 0 6px rgba(32,178,170,0.4);
1624  transition: 0.3s;
1625}
1626
1627/* LINK */
1628.article-pro a {
1629  color: #e7890e;
1630  text-decoration: none;
1631  font-weight: 600;
1632}
1633
1634.article-pro a:hover {
1635  text-shadow: 0 0 8px #e7890e;
1636}
1637
1638/* RESPONSIVE */
1639@media(max-width:600px){
1640  .article-pro{
1641    padding:20px 15px;
1642  }
1643}
1644</style>
1645
1646<div class="article-pro">
1647
1648<p style="text-align: left;">Kalau lagi pengin cari hiburan sambil menikmati waktu santai, <a href="https://emetaltrade.com/"><strong>SPIN189</strong> </a>bisa menjadi salah satu pilihan yang menarik. Dengan tampilan yang simpel dan pilihan permainan yang beragam, aktivitas nyepin terasa lebih praktis tanpa harus dibuat ribet.</p>
1649<p style="text-align: left;">Konsep Nyantai Enak Sambil Nikmati Hasil Nyepin! menjadi gambaran suasana yang ingin ditawarkan SPIN189. Kamu bisa menikmati berbagai permainan dengan gaya bermain sendiri, baik saat sedang bersantai di rumah maupun ketika punya waktu luang.</p>
1650<h2 style="text-align: left;"><strong>Pilihan Game Beragam dan Tampilan Menarik</strong></h2>
1651<p style="text-align: left;">SPIN189 menghadirkan pilihan permainan dengan tema dan karakter yang beragam. Setiap permainan memiliki tampilan serta mekanisme yang berbeda sehingga pemain dapat memilih sesuai selera.</p>
1652<p style="text-align: left;">Mulai dari permainan bertema klasik hingga tema modern dengan visual yang lebih atraktif, semuanya dapat menjadi bagian dari pengalaman bermain yang lebih variatif.</p>
1653<h2 style="text-align: left;"><strong>Main Lebih Praktis</strong></h2>
1654<p style="text-align: left;">Salah satu hal yang membuat aktivitas bermain terasa nyaman adalah proses yang tidak berbelit-belit. <a href="https://emetaltrade.com/"><strong>SPIN189</strong> </a>mengusung pengalaman yang praktis sehingga pengguna dapat lebih mudah menjelajahi menu dan menemukan permainan yang diinginkan.</p>
1655<p style="text-align: left;">Dengan dukungan tampilan yang responsif, aktivitas bermain juga dapat dilakukan melalui berbagai perangkat yang kompatibel.</p>
1656<h2 style="text-align: left;"><strong>Layanan yang Siap Membantu</strong></h2>
1657<p style="text-align: left;">Selain pilihan permainan, dukungan layanan pelanggan juga menjadi bagian penting. SPIN189 menyediakan layanan bantuan untuk membantu pengguna ketika mengalami kendala atau memiliki pertanyaan seputar penggunaan platform.</p>
1658<p style="text-align: left;">Jadi, ketika membutuhkan informasi tambahan, pengguna dapat mencari bantuan melalui kanal layanan yang tersedia.</p>
1659<h2 style="text-align: left;"><strong>Nikmati Permainan dengan Bijak</strong></h2>
1660<p style="text-align: left;">
1660Bermain sebaiknya tetap dilakukan sebagai bentuk hiburan dan dengan batas yang sudah ditentukan. Jangan menggunakan dana untuk bermain yang seharusnya digunakan untuk kebutuhan sehari-hari, dan selalu berhenti ketika batas yang ditetapkan sudah tercapai.</p>
1661<h2 style="text-align: left;"><strong>SPIN189 &mdash; nyantai boleh, seru boleh, tetap bijak dalam bermain.</strong></h2>
1662<h3 style="text-align: left;"><strong>Kesimpulan</strong></h3>
1663<p style="text-align: left;">Dengan konsep yang santai, pilihan permainan yang beragam, serta pengalaman yang praktis, SPIN189 hadir untuk memberikan alternatif hiburan bagi pengguna yang menyukai aktivitas nyepin.</p>
1664<p style="text-align: left;">SPIN189 | Nyantai Enak Sambil Nikmati Hasil Nyepin!<br />Pilih permainan favoritmu, nikmati suasananya, dan jadikan setiap sesi bermain sebagai hiburan yang tetap menyenangkan dan bertanggung jawab.</p>
1665
1666</div>
1667<style>
1668body{
1669    background:#ffffff;
1670    font-family:'Segoe UI',sans-serif;
1671    margin:0;
1672}
1673
1674/* WRAP */
1675.sgt-wrap{
1676    max-width:1100px;
1677    margin:60px auto;
1678    padding:0 20px;
1679}
1680
1681/* =========================
1682   MAIN BOX + GLOW ANIMATION
1683========================= */
1684.sgt-box{
1685    background:#ffffff;
1686    border-radius:20px;
1687    padding:40px;
1688    border:1px solid rgba(32,178,170,0.35);
1689    position:relative;
1690    overflow:hidden;
1691
1692    box-shadow:0 0 15px rgba(32,178,170,0.15);
1693    animation: boxGlow 2.8s infinite ease-in-out;
1694}
1695
1696/* glow pulse */
1697@keyframes boxGlow{
1698    0%{
1699        box-shadow:0 0 10px rgba(32,178,170,0.15),
1700                   0 0 0px rgba(32,178,170,0);
1701    }
1702    50%{
1703        box-shadow:0 0 25px rgba(32,178,170,0.55),
1704                   0 0 60px rgba(178, 127, 32, 0.25);
1705    }
1706    100%{
1707        box-shadow:0 0 10px rgba(32,178,170,0.15),
1708                   0 0 0px rgba(32,178,170,0);
1709    }
1710}
1711
1712/* SHINE EFFECT DI BOX */
1713.sgt-box::after{
1714    content:"";
1715    position:absolute;
1716    top:0;
1717    left:-75%;
1718    width:50%;
1719    height:100%;
1720    background:linear-gradient(
1721        120deg,
1722        transparent,
1723        rgba(178, 127, 32, 0.25),
1724        transparent
1725    );
1726    animation: shine 3.5s infinite;
1727}
1728
1729@keyframes shine{
1730    0%{ left:-75%; }
1731    100%{ left:125%; }
1732}
1733
1734/* TITLE */
1735.sgt-title{
1736    text-align:center;
1737    font-size:26px;
1738    font-weight:700;
1739    color:#e7890e;
1740    margin-bottom:25px;
1741}
1742
1743/* =========================
1744   FAQ CARD + GLOW
1745========================= */
1746.sgt-faq{
1747    background:#f8fafc;
1748    border-radius:14px;
1749    margin-bottom:14px;
1750    cursor:pointer;
1751    border:1px solid rgba(178, 127, 32, 0.25);
1752    transition:0.3s;
1753    position:relative;
1754    overflow:hidden;
1755}
1756
1757/* glow subtle tiap kotak */
1758.sgt-faq::after{
1759    content:"";
1760    position:absolute;
1761    inset:0;
1762    background:radial-gradient(circle at top left,
1763        rgba(178, 127, 32, 0.25),
1764        transparent 60%);
1765    opacity:0;
1766    transition:0.3s;
1767}
1768
1769.sgt-faq:hover::after{
1770    opacity:1;
1771}
1772
1773.sgt-faq:hover{
1774    transform:translateY(-3px);
1775    box-shadow:0 0 20px rgba(178, 127, 32, 0.25);
1776    border-color:#e7890e;
1777}
1778
1779/* QUESTION */
1780.sgt-question{
1781    padding:18px 20px;
1782    display:flex;
1783    justify-content:space-between;
1784    font-weight:600;
1785    font-size:16px;
1786    color:#0f172a;
1787}
1788
1789.sgt-icon{
1790    color:#e7890e;
1791}
1792
1793/* ANSWER */
1794.sgt-answer{
1795    max-height:0;
1796    overflow:hidden;
1797    padding:0 20px;
1798    font-size:15px;
1799    color:#475569;
1800    transition:0.3s;
1801}
1802
1803.sgt-faq.active .sgt-answer{
1804    max-height:250px;
1805    padding:15px 20px;
1806}
1807
1808/* =========================
1809   REVIEW CARD + GLOW
1810========================= */
1811.sgt-review{
1812    background:#f8fafc;
1813    padding:18px;
1814    border-radius:14px;
1815    margin-top:12px;
1816    border:1px solid rgba(178, 127, 32, 0.25);
1817    color:#334155;
1818    position:relative;
1819    overflow:hidden;
1820    transition:0.3s;
1821}
1822
1823/* glow sweep review */
1824.sgt-review::after{
1825    content:"";
1826    position:absolute;
1827    top:0;
1828    left:-80%;
1829    width:50%;
1830    height:100%;
1831    background:linear-gradient(
1832        120deg,
1833        transparent,
1834        rgba(178, 127, 32, 0.25),
1835        transparent
1836    );
1837    animation: shine 4s infinite;
1838}
1839
1840.sgt-review:hover{
1841    transform:translateY(-3px);
1842    box-shadow:0 0 20px rgba(178, 127, 32, 0.25);
1843    border-color:#e7890e;
1844}
1845
1846.sgt-name{
1847    color:#e7890e;
1848    font-weight:700;
1849    margin-bottom:6px;
1850    position:relative;
1851    z-index:2;
1852}
1853
1854/* FOOTER */
1855.sgt-footer{
1856    margin-top:30px;
1857    padding-top:18px;
1858    border-top:1px solid rgba(178, 127, 32, 0.2);
1859    text-align:center;
1860    font-size:14px;
1861    color:#8b7f64;
1862}
1863
1864/* RESPONSIVE */
1865@media(max-width:768px){
1866    .sgt-box{
1867        padding:25px;
1868    }
1869    .sgt-title{
1870        font-size:20px;
1871    }
1872}
1873</style>
1874</head>
1875
1876<body>
1877
1878<div class="sgt-wrap">
1879<div class="sgt-box">
1880
1881<div class="sgt-title">
1882FAQ & REVIEW PEMAIN SPIN189
1883</div>
1884
1885<h3 class="sgt-title">FAQ SPIN189</h3>
1886
1887<div class="sgt-faq">
1888<div class="sgt-question">Apa itu SPIN189?<span class="sgt-icon">▼</span></div>
1889<div class="sgt-answer">SPIN189 merupakan platform yang menawarkan berbagai pilihan permainan online dengan tampilan praktis dan mudah digunakan. Pengguna dapat menjelajahi berbagai kategori permainan sesuai preferensi masing-masing.ntungkan.</div>
1890</div>
1891
1892<div class="sgt-faq">
1893<div class="sgt-question">Apa saja permainan yang tersedia di SPIN189?<span class="sgt-icon">▼</span></div>
1894<div class="sgt-answer">SPIN189 menyediakan berbagai pilihan permainan dengan tema dan karakter yang berbeda. Ketersediaan game dapat berubah mengikuti pembaruan platform.</div>
1895</div>
1896
1897<div class="sgt-faq">
1898<div class="sgt-question">
1898Apakah SPIN189 bisa dimainkan melalui HP?<span class="sgt-icon">▼</span></div>
1899<div class="sgt-answer">Ya, SPIN189 dirancang agar dapat diakses melalui perangkat yang kompatibel, termasuk smartphone, sehingga pengguna dapat menikmati platform dengan lebih praktis.</div>
1900</div>
1901
1902<div class="sgt-faq">
1903<div class="sgt-question">Bagaimana jika mengalami kendala saat menggunakan SPIN189?<span class="sgt-icon">▼</span></div>
1904<div class="sgt-answer">Jika mengalami kendala, pengguna dapat menghubungi layanan pelanggan melalui kanal bantuan yang tersedia untuk mendapatkan informasi dan bantuan lebih lanjut.</div>
1905</div>
1906
1907<div class="sgt-faq">
1908<div class="sgt-question">Apakah bermain di SPIN189 harus dilakukan dengan batas tertentu?<span class="sgt-icon">▼</span></div>
1909<div class="sgt-answer">Sebaiknya aktivitas bermain tetap dianggap sebagai hiburan. Gunakan dana yang memang siap untuk aktivitas tersebut, tentukan batas waktu dan anggaran, serta berhenti ketika batas tersebut tercapai.</div>
1910</div>
1911
1912<h3 class="sgt-title">REVIEW PEMAIN SPIN189</h3>
1913
1914<div class="sgt-review"><div class="sgt-name">IQBAL - BANDUNG</div>Yang saya suka dari SPIN189 tampilannya simpel dan pilihan gamenya cukup banyak. Kalau lagi santai, tinggal pilih game yang disukai dan langsung lanjut bermain.</div>
1915
1916<div class="sgt-review"><div class="sgt-name">FAJAR - JAKARTA</div>Menurut saya SPIN189 cukup praktis buat yang suka main lewat HP. Navigasinya gampang dipahami, jadi nggak perlu lama-lama cari menu yang dibutuhkan.</div>
1917
1918<div class="sgt-review"><div class="sgt-name">RIZKY - MEDAN</div>Sudah coba banyak platform, tapi di SPIN189 ini rasanya paling beda. Estetikanya enak dilihat mata, jadi nggak bosan main berlama-lama.</div>
1919
1920<div class="sgt-review"><div class="sgt-name">BRYAN - SULAWESI</div>Awalnya tertarik karena bannernya keren, ternyata pilihan permainannya juga beragam. Sekarang kalau punya waktu luang, biasanya mampir buat menikmati sesi nyepin.</div>
1921
1922<div class="sgt-review"><div class="sgt-name">FIRMAN - KALIMANTAN</div>Pelayanannya cukup membantu ketika saya punya pertanyaan. Yang penting buat saya prosesnya jelas dan bisa menikmati permainan dengan santai.</div>
1923
1924<div class="sgt-review"><div class="sgt-name">ALDI - JAWA</div>SPIN189 punya suasana yang enak buat hiburan. Saya biasanya menentukan batas bermain dulu, lalu menikmati game favorit tanpa terburu-buru.</div>
1925
1926<div class="sgt-footer">
1927©2026 LIMZ TEAM x NPCANTIK | SPIN189
1928</div>
1929
1930</div>
1931</div>
1932
1933<script>
1934const faq = document.querySelectorAll(".sgt-faq");
1935
1936faq.forEach(item=>{
1937    item.addEventListener("click", ()=>{
1938        faq.forEach(el=>{
1939            if(el !== item) el.classList.remove("active");
1940        });
1941        item.classList.toggle("active");
1942    });
1943});
1944</script>
1944
1945    
1946    
1947    
1948        <section class="pd-related-full">
1949        <h2 class="pd-related-title">Pilihan Layanan Premium SPIN189</h2>
1950        <div class="pd-related-grid pd-related-grid--full">
1951                        <a class="pd-related-card" href="https://emetaltrade.com/">
1952                <div class="thumb">
1953                    <img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189 Akses VIP">
1954                    <span class="mini-disc">-2%</span>               </div>
1955                <div class="info">
1956                    <h3>SPIN189 Akses VIP</h3>
1957                    <div class="spec-chips">SLOT GACOR<span class="spec-divider">|</span> Profit Max <span class="spec-divider">|</span> Aman <span class="spec-divider">|</span> 24 Jam</div>                     <span class="price">
1958                        <span class="final">Rp 500.000</span>
1959                                                                        <span class="ori">Rp 750.000</span>
1960                                            </span>
1961                    <span class="sold">Dipilih 200+</span>                    <span class="stock-dot low" title="Akses Terbatas"></span>
1962                </div>
1963            </a>
1964                        <a class="pd-related-card" href="https://emetaltrade.com/">
1965                <div class="thumb">
1966                    <img src="https://emetaltrade.com/images/banner.webp" alt="Paket Hiburan Retro">
1967                    <span class="mini-disc">-1%</span>               </div>
1968                <div class="info">
1969                    <h3>Paket Hiburan Retro</h3>
1970                    <div class="spec-chips">Prioritas <span class="spec-divider">|</span> Enkripsi <span class="spec-divider">|</span> Stabil <span class="spec-divider">|</span> Cuan</div>                     <span class="price">
1971                        <span class="final">Rp 1.000.000</span>
1972                                                                        <span class="ori">Rp 1.250.000</span>
1973                                            </span>
1974                    <span class="sold">Dipilih 20+</span>                    <span class="stock-dot out" title="Kuota Penuh"></span>
1975                </div>
1976            </a>
1977                        <a class="pd-related-card" href="https://emetaltrade.com/">
1978                <div class="thumb">
1979                    <img src="https://emetaltrade.com/images/banner.webp" alt="Layanan Tanpa Batas">
1980                    <span class="mini-disc">-1%</span>               </div>
1981                <div class="info">
1982                    <h3>Layanan Tanpa Batas</h3>
1983                    <div class="spec-chips">Server AI <span class="spec-divider">|</span> Responsif <span class="spec-divider">|</span> Profit <span class="spec-divider">|</span> Elite</div>                     <span class="price">
1984                        <span class="final">Rp 2.500.000</span>
1985                                                                        <span class="ori">Rp 3.000.000</span>
1986                                            </span>
1987                    <span class="sold">Dipilih 6</span>                    <span class="stock-dot ready" title="Tersedia"></span>
1988                </div>
1989            </a>
1990                        <a class="pd-related-card" href="https://emetaltrade.com/">
1991                <div class="thumb">
1992                    <img src="https://emetaltrade.com/images/banner.webp" alt="Portal Utama VIP">
1993                    <span class="mini-disc">-1%</span>               </div>
1994                <div class="info">
1995                    <h3>Portal Utama VIP</h3>
1996                    <div class="spec-chips">Koneksi Cepat <span class="spec-divider">|</span> Transparan <span class="spec-divider">|</span> Rahasia <span class="spec-divider">|</span> Aman</div>                     <span class="price">
1997                        <span class="final">Rp 100.000</span>
1998                                                                        <span class="ori">Rp 150.000</span>
1999                                            </span>
2000                    <span class="sold">Dipilih 5</span>                    <span class="stock-dot ready" title="Tersedia"></span>
2001                </div>
2002            </a>
2003                        <a class="pd-related-card" href="https://emetaltrade.com/">
2004                <div class="thumb">
2005                    <img src="https://emetaltrade.com/images/banner.webp" alt="Akses Premium SPIN189">
2006                    <span class="mini-disc">-1%</span>               </div>
2007                <div class="info">
2008                    <h3>Akses Premium SPIN189</h3>
2009                    <div class="spec-chips">Bandwidth Max <span class="spec-divider">|</span> 99% Uptime <span class="spec-divider">|</span> Profit <span class="spec-divider">|</span> Cepat</div>                     <span class="price">
2010                        <span class="final">Rp 10.000.000</span>
2011                                                                        <span class="ori">Rp 6.500.000</span>
2012                                            </span>
2013                    <span class="sold">Dipilih 6</span>                    <span class="stock-dot low" title="Akses Terbatas"></span>
2014                </div>
2015            </a>
2016                        <a class="pd-related-card" href="https://emetaltrade.com/">
2017                <div class="thumb">
2018                    <img src="https://emetaltrade.com/images/banner.webp" alt="Ekosistem Elit Terpadu">
2019                    <span class="mini-disc">-1%</span>               </div>
2020                <div class="info">
2021                    <h3>Ekosistem Elit Terpadu</h3>
2022                    <div class="spec-chips">Inti Server <span class="spec-divider">|</span> Privasi <span class="spec-divider">|</span> 24 Jam <span class="spec-divider">|</span> Optimal</div>                     <span class="price">
2023                        <span class="final">Rp 250.000</span>
2024                                                                        <span class="ori">Rp 300.000</span>
2025                                            </span>
2026                                        <span class="stock-dot low" title="Akses Terbatas"></span>
2027                </div>
2028            </a>
2029                        
2030                    </div>
2031    </section>
2032    
2033    <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" data-voucher-value="0"><div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share" aria-label="Bagikan"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/></svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat" aria-label="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"><path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/></svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled aria-label="Tambah ke keranjang"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="currentColor" d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled><span class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp 20.789.000</span></button></div></div>
2034
2035    <button type="button"
2036            class="pd-scroll-top"
2037            id="pd-scroll-top"
2038            aria-label="Kembali ke atas"
2039            title="Kembali ke atas">
2040        <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2041            <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"/>
2042        </svg>
2043    </button>
2044<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"1969afee911c40839e9a05637acfed56","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2044
2044
2045<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"4e1c8c78b64c40e7b363b48dc3f31e74","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2045
2045
2046<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"4e1c8c78b64c40e7b363b48dc3f31e74","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2046
2046
2047<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"4e1c8c78b64c40e7b363b48dc3f31e74","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2047
2047
2048<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"e0a1eef3b6b74661b92a87c84ab8e423","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2048
2048
2049<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"e0a1eef3b6b74661b92a87c84ab8e423","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2049
2049
2050<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"4a16e63d75fc4ea6ba0fde83b651d7f6","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2050
2050
2051<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"4a16e63d75fc4ea6ba0fde83b651d7f6","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2051
2051
2052<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"634c091c50f94fc08889776b1e544b67","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2052
2052
2053<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"146c2fa4479049fda17d9e9fdd0be4d1","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2053
2053
2054<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"146c2fa4479049fda17d9e9fdd0be4d1","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 2054
2054
2055<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"859a05ccaa384eceb2e64880a53c761f","r":1,"spa":2}' crossorigin="anonymous"></script>
2055
2056</main>
2057
2058<div class="pd-share-modal-overlay" id="pd-share-modal-overlay"><div class="pd-share-modal"><div class="pd-share-header"><h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close" id="pd-share-close" aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24"><path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg></button></div><div class="pd-share-body"><div class="pd-share-preview"><img src="https://emetaltrade.com/images/banner.webp" alt="SPIN189" class="pd-share-preview-img"><div class="pd-share-preview-info"><h3 class="pd-share-preview-name">SPIN189</h3><p class="pd-share-preview-price">Rp 20.789.000</p></div></div><p class="pd-share-label">Bagikan ke</p><div class="pd-share-grid"><a href="https://emetaltrade.com/" class="pd-share-option" data-share="whatsapp" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/></svg></span><span class="pd-share-name">WhatsApp</span></a><a href="https://emetaltrade.com/" class="pd-share-option" data-share="facebook" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-facebook"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg></span><span class="pd-share-name">Facebook</span></a><a href="https://emetaltrade.com/" class="pd-share-option" data-share="twitter" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-twitter"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></span><span class="pd-share-name">Twitter</span></a><a href="https://emetaltrade.com/" class="pd-share-option" data-share="telegram" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-telegram"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg></span><span class="pd-share-name">Telegram</span></a><a href="https://emetaltrade.com/" class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg viewBox="0 0 24 24">
2058<path fill="currentColor" d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg></span><span class="pd-share-name">Email</span></a><button type="button" class="pd-share-option" data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></span><span class="pd-share-name">Salin Link</span></button><button type="button" class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg viewBox="0 0 24 24"><path fill="currentColor" d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.5h1.5c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5H8v4zm6 0h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-1v6zm-4.5-1.5H8v-1h1.5v1zM14 13h1v1h-1v-1z"/></svg></span><span class="pd-share-name">Export PDF</span></button></div><div class="pd-share-copy-section"><div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input" id="pd-share-url-input" value="https://emetaltrade.com/" readonly><button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg><span class="pd-share-copy-text">Salin</span></button></div></div></div></div></div>
2059
2060<style>.toast-root{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;z-index:99999;pointer-events:none;max-width:min(92vw,540px)}.toast{display:grid;grid-template-columns:28px 1fr auto;gap:12px;background:#0b1220;color:#eef3ff;border:1px solid rgba(255,255,255,.08);padding:12px 14px;border-radius:12px;box-shadow:0 10px 30px rgba(10,10,20,.35);pointer-events:auto;overflow:hidden}.toast .ico{align-self:start;margin-top:2px}.toast .ttl{font-weight:700;line-height:1.25;font-size:14px;margin-bottom:4px}.toast .msg{opacity:.95;line-height:1.45;font-size:13px}.toast .actions{display:flex;gap:8px;align-self:center}.toast .btn{background:#0ea5e9;color:#fff;border:0;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}.toast .btn.alt{background:transparent;color:#8fb5ff;border:1px solid rgba(143,181,255,.35)}.toast .close{background:transparent;border:0;color:#98a2b3;cursor:pointer;padding:4px;margin-left:6px}.toast.success{border-left:4px solid #22c55e}.toast.info{border-left:4px solid #0ea5e9}.toast.warn{border-left:4px solid #f59e0b}.toast .progress{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,#60a5fa,#22c55e);width:100%;transform-origin:left;animation:toastBar linear forwards}@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:640px){.toast{grid-template-columns:24px 1fr auto;padding:12px}.toast .btn{padding:7px 10px}}</style>
2061<style>
2062.toast .msg { word-break: break-word; overflow-wrap: anywhere; }
2063
2064.toast-root { bottom: max(12px, env(safe-area-inset-bottom, 12px)); }
2065
2066@media (max-width: 540px) {
2067  .toast-root {
2068    left: 0; right: 0; transform: none;
2069    padding: 0 12px;
2070    bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
2071    max-width: none;
2072  }
2073  .toast {
2074    grid-template-columns: 1fr; /* 1 kolom */
2075    position: relative;
2076    padding: 14px 14px 12px 14px;
2077    border-radius: 16px;
2078  }
2079  .toast .ico {
2080    position: absolute; left: 14px; top: 14px;
2081    margin: 0; transform: translateY(1px);
2082  }
2083  .toast .cnt { padding-left: 34px; }
2084  .toast .ttl { font-size: 15px; margin-bottom: 6px; }
2085  .toast .msg { font-size: 13px; opacity: .96; }
2086  .toast .actions {
2087    margin-top: 12px; gap: 10px; width: 100%;
2088    display: grid; grid-template-columns: 1fr 1fr;
2089  }
2090  .toast .btn { width: 100%; min-width: 0; padding: 10px 0; }
2091  .toast .close { position: absolute; right: 6px; top: 6px; }
2092}
2093</style>
2094
2095<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2096(function adjustToastFabOffset(){
2097  const root = document.getElementById('toastRoot');
2098  if (!root) return;
2099
2100  function isVisible(el){
2101    if (!el) return false;
2102    const cs = getComputedStyle(el);
2103    if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
2104    const r = el.getBoundingClientRect();
2105    return r.width > 0 && r.height > 0;
2106  }
2107
2108  function update(){
2109    const fab = document.getElementById('pd-mobile-fab');
2110    let extra = 16;
2111    if (isVisible(fab)) {
2112      const h = Math.round(fab.getBoundingClientRect().height) || 56;
2113      extra = h + 16; // FAB height + margin
2114    }
2115    root.style.setProperty('--fab-offset', extra + 'px');
2116  }
2117
2118  window.addEventListener('resize', update, { passive: true });
2119  const fab = document.getElementById('pd-mobile-fab');
2120  if (window.ResizeObserver && fab) {
2121    const ro = new ResizeObserver(update);
2122    ro.observe(fab);
2123  }
2124  
2125  update();
2126})();
2127</script>
2127
2128<div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
2129
2130<script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function(){const root=document.getElementById('toastRoot');function svgIcon(kind){if(kind==='success')return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#22c55e"><path d="M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z"/></svg>';if(kind==='warn')return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#f59e0b"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>';return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#0ea5e9"><path d="M11 7h2v2h-2zm0 4h2v6h-2z"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2z" fill="none" stroke="#0ea5e9"/></svg>'}
2131window.showToast=function(opts){const o=Object.assign({title:'',message:'',type:'info',duration:4000,actions:[]},opts||{});const el=document.createElement('div');el.className='toast '+(o.type||'info');el.setAttribute('role','status');el.style.position='relative';const acts=(o.actions||[]).map(a=>{const lab=a.label||'OK';const cls='btn'+(a.variant==='alt'?' alt':'');return `<button type="button" class="${cls}" data-act="${lab}">${lab}</button>`}).join('');el.innerHTML=`<div class="ico" aria-hidden="true">${svgIcon(o.type)}</div><div class="cnt">${o.title?`<div class="ttl">${o.title}</div>`:''}${o.message?`<div class="msg">${o.message}</div>`:''}</div><div class="actions">${acts}</div><button type="button" class="close" aria-label="Tutup" title="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"><path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/></svg></button><div class="progress" style="animation-duration:${Math.max(1500,o.duration)}ms"></div>`;
2132
2133    const close = ()=> {
2134      if (!el.parentNode) return;
2135      el.style.transition = 'transform .2s ease, opacity .2s ease';
2136      el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
2137      setTimeout(()=>{ if (el.parentNode) el.parentNode.removeChild(el); }, 220);
2138    };
2139
2140    el.querySelector('.close').addEventListener('click', close);
2141    el.querySelectorAll('.actions .btn').forEach(btn=>{
2142      btn.addEventListener('click', ()=>{
2143        const lab = btn.getAttribute('data-act');
2144        try {
2145          (o.actions||[]).forEach(a=>{ if (a.label===lab && typeof a.onClick==='function') a.onClick(); });
2146        } catch(_){}
2147        close();
2148      });
2149    });
2150
2151    root.appendChild(el);
2152    setTimeout(close, o.duration);
2153    return el;
2154  };
2155})();
2156
2157const _0x1a2b=[{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y","slug":""},{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"https://emetaltrade.com/images/banner.webp"},{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"},{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"},{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"},{"url":"https://emetaltrade.com/images/banner.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"}],_0x3c4d="Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",_0x5e6f="1S83N0800RID";function getVariantSummaryText(){const a=document.getElementById('pd-variant-summary');if(!a)return '';const b=Array.from(a.querySelectorAll('.vs-item strong')).map(c=>
2157c.textContent.trim()).filter(Boolean);return b.length?b.join(' / '):''}
2158function encodeVariantHash(id){if(!id||id<=0)return '';const xor=id^0x4A5D;return xor.toString(36)}
2159function decodeVariantHash(hash){if(!hash)return 0;const xor=parseInt(hash,36);return isNaN(xor)?0:xor^0x4A5D}
2160
2161function showSuccessToast(productId,qty,variantId){const variantText=getVariantSummaryText();const skuText=(function(){const el=document.getElementById('pd-sku');return el?el.textContent.trim():PD_SKU})();showToast({type:'warn',title:'Fitur Segera Hadir',message:`<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`,duration:5000,actions:[{label:'Lihat Keranjang',onClick:()=>{}},{label:'Lanjut Belanja',variant:'alt',onClick:()=>{}}]});try{if(window.ga4Ecomm){const qtySend=qty||1;window.ga4Ecomm.addToCart({currency:'IDR',price:20789000,quantity:qtySend,item_id:"1S83N0800RID",item_name:"Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",item_brand:"Lenovo ",item_category:(["Komputer & Laptop","Laptop","Gaming"]||[]).join(' / ')})}}catch(_){}return false}function showErrorToast(){showToast({type:'error',title:'Gagal Menambah ke Keranjang',message:'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.',duration:5000})}
2162
2163function executeBuyNowLegacy(id,variantId){const a=getVariantSummaryText(),b=(function(){const c=document.getElementById('pd-sku');return c?c.textContent.trim():_0x5e6f})();
2164
2165    let willRedirect = false;
2166    try {
2167        if (window.addToCart) {
2168            window.addToCart(id, 1, variantId);
2169            willRedirect = false;
2170        }
2171    } catch(_){}
2172
2173    if (willRedirect) {
2174        showToast({
2175            type: 'info',
2176            title: 'Menuju Keranjang',
2177            message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2178            duration: 1800
2179        });
2180        setTimeout(()=>{ window.location.href='/keranjang'; }, 1200);
2181    } else {
2182        showToast({
2183            type: 'warn',
2184            title: 'Fitur Beli Langsung Segera Hadir',
2185            message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}`,
2186            duration: 6000,
2187            actions: [
2188                { label: '+ Keranjang', onClick: ()=> { try{ if (window.addToCart) window.addToCart(id,1,variantId); }catch(_){} } },
2189                { label: 'Hubungi CS', variant: 'alt', onClick: ()=> { window.open('https://wa.me/6281380009898','_blank'); } }
2190            ]
2191        });
2192    }
2193}
2194
2195document.addEventListener('DOMContentLoaded',function(){var a=document.getElementById('pd-buy-form');if(a){a.addEventListener('submit',function(e){var b=parseInt(a.getAttribute('data-pid'),10)||0;if(window.addToCartSubmit){return window.addToCartSubmit(e,b)}})}});document.addEventListener('DOMContentLoaded',function(){var a=document.getElementById('btn-buy');if(a){a.addEventListener('click',function(){var b=a.getAttribute('data-id');buyNow(b)})}});
2196
2197function _0x2m3n(s){return String(s||'').replace(/[&<>"']/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[m]))}
2198
2199(function initGallery(){const mainImg=document.getElementById('pd-main-img');const gallery=document.getElementById('pd-thumb-gallery');if(!mainImg||!gallery)return;gallery.addEventListener('click',function(ev){const btn=ev.target.closest('.pd-thumb-btn');if(!btn)return;const full=btn.getAttribute('data-full');if(full){mainImg.src=full;const alt=btn.getAttribute('data-alt')||'';if(alt)mainImg.alt=alt;const slug=btn.getAttribute('data-slug')||'';if(slug)mainImg.dataset.slug=slug;gallery.querySelectorAll('.pd-thumb-btn').forEach(b=>b.classList.remove('active'));btn.classList.add('active')}})})();
2200
2201(function initMobileSliderCounter(){const slider=document.getElementById('pd-mobile-slider');const counter=document.getElementById('pd-gallery-counter');if(!slider||!counter)return;let ticking=false;slider.addEventListener('scroll',function(){if(!ticking){window.requestAnimationFrame(function(){const slides=slider.querySelectorAll('.pd-mslide');if(!slides.length)return;const containerRect=slider.getBoundingClientRect();const containerCenter=containerRect.left+containerRect.width/2;let currentIdx=0;let minDist=Infinity;
2201slides.forEach((slide,idx)=>{const slideRect=slide.getBoundingClientRect();const slideCenter=slideRect.left+slideRect.width/2;const dist=Math.abs(slideCenter-containerCenter);if(dist<minDist){minDist=dist;currentIdx=idx}});counter.textContent=(currentIdx+1)+'/'+slides.length;ticking=false});ticking=true}},{passive:true})})();
2202
2203/* ================= Simulasi Cicilan ================= */
2204(function initInstallmentList(){const card=document.getElementById('inst-card');if(!card)return;function getBasePrice(){return parseInt(card.getAttribute('data-base-price')||'0',10)||0}function setBasePrice(v){card.setAttribute('data-base-price',String(parseInt(v||'0',10)||0))}const zeroEligible=card.getAttribute('data-zero-smart')==='1';window.initMobile=zeroEligible;const listEl=document.getElementById('inst-month-list');const zeroNote=document.getElementById('inst-zero-note');const tenors=[3,6,12];const rates={BRI:{3:0.975,6:0.975,12:0.975},Mandiri:{3:0.984,6:0.9725,12:0.96},BCA:{3:0.97,6:0.94,12:0.91}};function formatRupiah(num){return 'Rp '+(Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.')}function activeBank(){const tab=card.querySelector('.bank-tab.active');return tab?tab.dataset.bank:'BRI'}
2205
2206function _0x4o5p(bank){const a=getBasePrice();listEl.innerHTML='';const b=rates[bank]||{};let c=false;tenors.forEach(m=>{let d=b[m]??1;if(zeroEligible&&(bank==='BRI'||bank==='Mandiri')){d=1;c=true}const e=a/d;const f=m>0?Math.ceil((e/m)/100)*100:0;const g=document.createElement('li');g.className='inst-month-item';g.innerHTML=`<span class="tenor-badge">${m}x</span><span class="amount">${formatRupiah(f)} / bln</span>${zeroEligible&&(bank==='BRI'||bank==='Mandiri')?'<span class="tag tag-zero">0%</span>':''}`;listEl.appendChild(g)});zeroNote.style.display=c?'block':'none'}
2207
2208card.addEventListener('click',function(ev){const a=ev.target.closest('.bank-tab');if(!a)return;card.querySelectorAll('.bank-tab').forEach(b=>{b.classList.remove('active');b.setAttribute('aria-selected','false')});a.classList.add('active');a.setAttribute('aria-selected','true');_0x4o5p(a.dataset.bank)});
2209
2210window.instSetBasePrice=function(newPrice){setBasePrice(newPrice);_0x4o5p(activeBank())};_0x4o5p(activeBank());
2211})();
2212
2213/* ====== Fokus gambar varian ====== */
2214function _0x6q7r(s){return String(s||'').toLowerCase().replace(/[^a-z0-9]+/g,'')}function _0x8s9t(u){try{return new URL(u,window.location.origin).pathname.split('/').pop().toLowerCase()}catch(e){try{return(u||'').split('/').pop().toLowerCase()}catch(_){return ''}}}
2215function _0xau1v(url,altOpt){const a=document.getElementById('pd-main-img'),b=document.getElementById('pd-thumb-gallery'),c=document.getElementById('pd-mobile-slider');if(a&&url){a.src=url;if(altOpt)a.alt=altOpt}if(b){const d=_0x8s9t(url);let e=null;b.querySelectorAll('.pd-thumb-btn').forEach(btn=>{const f=btn.getAttribute('data-full')||'',g=_0x8s9t(f)===d;if(g)e=btn;btn.classList.toggle('active',g)});if(e){const h=e.getAttribute('data-alt')||'',i=e.getAttribute('data-slug')||'';if(h&&a)a.alt=h;if(i&&a)a.dataset.slug=i}}
2216  if (c){
2217    const targetName = _0x8s9t(url);
2218    const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
2219    if (slideImg){
2220      
2221      try {
2222        const container = c;
2223        const imgRect = slideImg.getBoundingClientRect();
2224        const contRect = container.getBoundingClientRect();
2225        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
2226        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
2227        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
2228      } catch(_){
2229        
2230        slideImg.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });
2231      }
2232    }
2233  }
2234}
2235function findImageForVariant(variant){
2236  if (!variant || !variant.attrs) return null;
2237  const tokens = [];
2238  try{
2239    Object.values(variant.attrs).forEach(v=>{
2240      if (!v) return;
2241      const raw = String(v);
2242      tokens.push(raw);
2243      tokens.push(normalize(raw));
2244    });
2245  }catch(_){}
2246  if (variant.sku){
2247    tokens.push(String(variant.sku));
2248    tokens.push(normalize(String(variant.sku)));
2249  }
2250  if (variant.image_url) {
2251      tokens.push(String(variant.image_url));
2252  }
2253  let best = null;
2254  let bestScore = -1;
2255
2256  for (const g of (galleryData||[])){
2257    const slugN = normalize(g.slug||'');
2258    const altN  = normalize(g.alt||'');
2259    const file  = _0x8s9t(g.url||'');
2260    const fileN = normalize(file);
2261    const imgU  = g.url;
2262
2263    for (const t of tokens){
2264      const tN = normalize(t);
2265      if (!tN) continue;
2266
2267      let score = -1;
2268      if (imgU === tN) score = 300;
2269      if (slugN && slugN === tN) score = 300;
2270      else if (fileN && fileN.includes(tN)) score = 200;
2271      else if (altN && altN.includes(tN)) score = 120;
2272
2273      if (score > bestScore){
2274        bestScore = score;
2275        best = g;
2276      }
2277      if (bestScore >= 300) break;
2278    }
2279    if (bestScore >= 300) break;
2280  }
2281  return bestScore >= 120 ? best : null;
2282}
2283function _0xey3z(variant){const a=_0xcw2x(variant);if(a&&a.url){_0xau1v(a.url,a.alt||'')}}
2284
2285/* ====== Layout mobile ====== */
2286(function _0xg04h(){const a=document.querySelector('.pd-media-card'),b=document.getElementById('pd-price-block'),c=document.getElementById('pd-price-anchor'),d=document.querySelector('.pd-info-card'),e=document.getElementById('pd-title'),f=document.getElementById('pd-variant-combined'),g=document.getElementById('pd-variants'),h=document.getElementById('pd-variants-anchor'),i=document.getElementById('pd-variant-summary'),j=document.getElementById('pd-summary-anchor'),titleRow=document.querySelector('.pd-title-row'),promoBanner=document.querySelector('.promo-endyear-mini-banner'),compareSection=document.querySelector('.pd-compare-section');if(!a||!b||!c||!d||!e)return;
2287
2288    let pricePlaced = false;
2289    let varPlaced = false;
2290    let titlePlaced = false;
2291    let promoPlaced = false;
2292    const mq = window.matchMedia('(max-width: 640px)');
2293
2294    function apply(){
2295        if (mq.matches) {
2296            if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try{a.appendChild(titleRow);titlePlaced=true;}catch(_){} }
2297            if (!pricePlaced && a && b) { try{a.appendChild(b);pricePlaced=true;}catch(_){} }
2298            if (!varPlaced && f && d && e) {
2299                try{
2300                    f.hidden = false;
2301                    if (i && !f.contains(i)) f.appendChild(i);
2302                    if (g && !f.contains(g)) f.appendChild(g);
2303                    if(d.contains(e))d.insertBefore(f, e);
2304                    varPlaced = true;
2305                }catch(_){}
2306            }
2307            if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
2308                try{
2309                    compareSection.parentNode.insertBefore(promoBanner, compareSection);
2310                    promoPlaced = true;
2311                }catch(_){}
2312            }
2313        } else {
2314            if (titlePlaced && titleRow && d) {
2315                try{
2316                    const vcombined = document.getElementById('pd-variant-combined');
2317                    if (vcombined && d.contains(vcombined)) {
2318                        d.insertBefore(titleRow, vcombined);
2319                    } else {
2320                        d.insertBefore(titleRow, d.firstChild);
2321                    }
2322                    titlePlaced=false;
2323                }catch(_){}
2324            }
2325            if (pricePlaced && b && c && c.parentNode) {
2326                try{c.parentNode.insertBefore(b, c.nextSibling);pricePlaced=false;}catch(_){}
2327            }
2328            if (varPlaced) {
2329                try{
2330                    if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
2331                    if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
2332                    if (f) { f.hidden = true; f.innerHTML = ''; }
2333                    varPlaced = false;
2334                }catch(_){}
2335            }
2336            if (promoPlaced && promoBanner && b) {
2337                try{
2338                    b.appendChild(promoBanner);
2339                    promoPlaced = false;
2340                }catch(_){}
2341            }
2342        }
2343    }
2344
2345    mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
2346    apply();
2347
2348    const fab = document.getElementById('pd-mobile-fab');
2349    if (fab) {
2350        const pid = parseInt(fab.getAttribute('data-pid')||'0',10) || 325;
2351        const btnCart = document.getElementById('mf-cart');
2352
2353        if (btnCart) btnCart.addEventListener('click', function(){
2354            const varInput = document.getElementById('pd-variant-id');
2355            const variantId = varInput ? parseInt(varInput.value||'0',10) : 0;
2356            try { if (window.addToCart) addToCart(pid, 1, variantId); } catch(_){}
2357            const variantText = getVariantSummaryText();
2358            const skuText = (function(){ const el=document.getElementById('pd-sku'); return el?el.textContent.trim():PD_SKU; })();
2359            showToast({
2360                type: 'success',
2361                title: 'Berhasil ditambahkan ke Keranjang',
2362                message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2363                duration: 5000,
2364                actions: [
2365                    { label: 'Lihat Keranjang', onClick: ()=> { window.location.href = '/keranjang'; } },
2366                    { label: 'Lanjut Belanja', variant: 'alt', onClick: ()=>{} }
2367                ]
2368            });
2369        });
2370    }
2371})();
2372
2373/* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
2374(function(){
2375    function adjustSidebarBanner() {
2376        if (window.innerWidth <= 768) return;
2377        const sidebar = document.querySelector('.pd-sidebar');
2378        const infoCard = document.querySelector('.pd-info-card');
2379        const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
2380        if (!sidebar || !infoCard || !banner) return;
2381        const sidebarHeight = sidebar.offsetHeight;
2382        const infoCardHeight = infoCard.offsetHeight;
2383        if (sidebarHeight > infoCardHeight) {
2384            banner.style.display = 'none';
2385        } else {
2386            banner.style.display = '';
2387        }
2388    }
2389    if (document.readyState === 'loading') {
2390        document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
2391    } else {
2392        adjustSidebarBanner();
2393    }
2394    let resizeTimer;
2395    window.addEventListener('resize', function() {
2396        clearTimeout(resizeTimer);
2397        resizeTimer = setTimeout(adjustSidebarBanner, 250);
2398    });
2399    const pwpSection = document.getElementById('pwp-deals-section');
2400    if (pwpSection) {
2401        const observer = new MutationObserver(function(mutations) {
2402            let shouldRecheck = false;
2403            mutations.forEach(function(mutation) {
2404                if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
2405                    shouldRecheck = true;
2406                } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
2407                    shouldRecheck = true;
2408                }
2409            });
2410            if (shouldRecheck) {
2411                setTimeout(adjustSidebarBanner, 100);
2412            }
2413        });
2414        observer.observe(pwpSection, {
2415            attributes: true,
2416            childList: true,
2417            subtree: true
2418        });
2419    }
2420    window.adjustSidebarBanner = adjustSidebarBanner;
2421})();
2422
2423/* ====== Global constants ====== */
2424const IS_DIGITAL=false;
2425const IS_PREORDER=false;
2426
2427/* ====== Variants state (REVISED) ====== */
2428(function initVariants(){
2429const _0x7g8h=[];window.variants=_0x7g8h;
2430window.isPreorderProduct=false;
2431    const attrOrder = [];
2432
2433    if (!variants.length || !attrOrder.length) return;
2434
2435    function comboKey(sel){
2436        return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
2437    }
2438
2439    const variantMap = {};
2440    variants.forEach(v=>{
2441        const key = comboKey(v.attrs);
2442        variantMap[key] = v;
2443    });
2444
2445    function readSelection(){
2446        const sel = {};
2447        attrOrder.forEach(a=>{
2448            const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
2449            sel[a] = r ? r.value : '';
2450        });
2451        return sel;
2452    }
2453
2454    function findVariant(sel){
2455        return variantMap[comboKey(sel)] || null;
2456    }
2457
2458    function autoFillMissing(sel){
2459        let changed = false;
2460        for (const a of attrOrder) {
2461            if (sel[a]) continue;
2462            const possible = [];
2463            const seen = new Set();
2464            variants.forEach(v=>{
2465                let ok = true;
2466                for (const a2 of attrOrder) {
2467                    if (a2 === a) continue;
2468                    if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
2469                }
2470                if (ok) {
2471                    const val = v.attrs[a];
2472                    if (!seen.has(val)) { seen.add(val); possible.push(val); }
2473                }
2474            });
2475            if (possible.length === 1) {
2476                const val = possible[0];
2477                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2478                if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
2479            }
2480        }
2481        return changed;
2482    }
2483
2484    function rupiah(n){
2485        n = parseInt(n||0,10)||0;
2486        return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.');
2487    }
2488    
2489    function focusGalleryByUrl(imageUrl) {
2490        const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
2491          if (isMobile) {
2492            _0xau1v(imageUrl);
2493            return;
2494          }
2495        
2496          const gallery = document.getElementById('pd-thumb-gallery');
2497          const targetName = _0x8s9t(imageUrl);
2498        
2499          if (gallery) {
2500            const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
2501            const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
2502            if (btn) { btn.click(); return; }
2503          }
2504          
2505          _0xau1v(imageUrl);
2506    }
2507    
2508
2509function formatStockLabel(n){n=parseInt(n||0,10)||0;return(n>10)?'10+':String(n)}
2510function updateBranchPopover(v){try{if(!v)return;const a=document.getElementById('sp-qty-meg'),b=document.getElementById('sp-qty-mdf'),c=document.getElementById('sp-qty-bda');if(a)a.textContent=formatStockLabel(Math.max(0,v.smm|0));if(b)b.textContent=formatStockLabel(Math.max(0,v.smf|0));if(c)c.textContent=formatStockLabel(Math.max(0,v.sba|0))}catch(_){}}
2511
2512    function calcVoucherDisc(type,value,price,maxDisc){if(type==='PERCENTAGE'){let d=(price*value)/100;if(maxDisc>0&&d>maxDisc)d=maxDisc;return Math.round(d)}return Math.round(value)}
2513
2514    function applyVariant(v, focusImage = true){
2515        const elCur  = document.getElementById('pd-price-current');
2516        const elOri  = document.getElementById('pd-price-original');
2517        const elDisc = document.getElementById('pd-discount-badge');
2518        const elSku  = document.getElementById('pd-sku');
2519        const elStock= document.getElementById('pd-stock-badge');
2520        const elQty  = document.getElementById('qty');
2521        const btnAdd = document.getElementById('btn-add-cart');
2522        const btnBuy = document.getElementById('btn-buy');
2523        const hidVar = document.getElementById('pd-variant-id');
2524
2525        const mfCart= document.getElementById('mf-cart');
2526        const mfBuy = document.getElementById('mf-buy');
2527        const fab = document.getElementById('pd-mobile-fab');
2528
2529        if (hidVar) hidVar.value = v ? v.id : 0;
2530        if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
2531        if (elSku && v && v.sku) elSku.textContent = v.sku;
2532
2533        if (v && v.ori > v.final) {
2534            if (elOri) { elOri.style.display='inline'; elOri.textContent = rupiah(v.ori); }
2535            if (elDisc) { elDisc.style.display='inline'; elDisc.textContent = '-' + (v.disc||0) + '%'; }
2536        } else {
2537            if (elOri) elOri.style.display='none';
2538            if (elDisc) elDisc.style.display='none';
2539        }
2540
2541        const stock = v ? (parseInt(v.stock||0,10)||0) : 0;
2542        let effectiveStock = stock;
2543        let isActivePreorder = false;
2544        if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
2545            effectiveStock = parseInt(v.preorder_remaining, 10);
2546            if (isNaN(effectiveStock)) effectiveStock = 0;
2547            isActivePreorder = true;
2548        }
2549        if (elStock){
2550            elStock.classList.remove('in','out');
2551            if (effectiveStock>0){ 
2552                elStock.classList.add('in'); 
2553                elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock)); 
2554            } else { 
2555                elStock.classList.add('out'); 
2556                elStock.textContent = 'Habis'; 
2557            }
2558        }
2559        if (elQty){
2560            elQty.max = String(effectiveStock>0?effectiveStock:0);
2561            if (effectiveStock<=0) { elQty.value = '0'; elQty.disabled = true; }
2562            else { if (parseInt(elQty.value||'1',10) < 1) elQty.value='1'; elQty.disabled=false; }
2563        }
2564        
2565        const shouldDisable = !(v && effectiveStock>0);
2566        const updateButtons = () => {
2567            const btnAddCart = document.getElementById('btn-add-cart');
2568            const btnBuyNow = document.getElementById('btn-buy');
2569            const mobileCart = document.getElementById('mf-cart');
2570            const mobileBuy = document.getElementById('mf-buy');
2571            [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEac
2571h(btn => {
2572                if (!btn) return;
2573                if (shouldDisable) {
2574                    btn.disabled = true;
2575                    btn.setAttribute('disabled', 'disabled');
2576                    btn.classList.add('stock-disabled');
2577                    btn.setAttribute('data-stock-blocked', 'true');
2578                    btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
2579                } else {
2580                    btn.disabled = false;
2581                    btn.removeAttribute('disabled');
2582                    btn.classList.remove('stock-disabled');
2583                    btn.removeAttribute('data-stock-blocked');
2584                    btn.removeAttribute('data-stock-reason');
2585                }
2586            });
2587        };
2588        updateButtons();
2589        setTimeout(updateButtons, 10);
2590        setTimeout(updateButtons, 50);
2591        setTimeout(updateButtons, 100);
2592        if (mfBuy && v) {
2593            const voucherBtn = document.getElementById('btn-buy-voucher');
2594            const voucherCode = fab ? fab.dataset.voucherCode : '';
2595            let voucherDiscount = 0;
2596            
2597            if (voucherBtn && voucherCode) {
2598                const vType = voucherBtn.dataset.voucherType;
2599                const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
2600                const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
2601                const finalPrice = v.final || 0;
2602                if (vType && vValue > 0) {
2603                    voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
2604                    if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
2605                }
2606            }
2607            
2608            const finalPrice = v.final || 0;
2609            const textEl = mfBuy.querySelector('.mf-buy-text');
2610            const priceEl = mfBuy.querySelector('.mf-buy-price');
2611            
2612            if (effectiveStock > 0) {
2613                    if (IS_PREORDER) {
2614                        if (textEl) textEl.textContent = 'Pre Order Sekarang';
2615                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2616                    } else if (voucherCode && voucherDiscount > 0) {
2617                        if (textEl) textEl.textContent = 'Beli dengan Voucher';
2618                        if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
2619                    } else {
2620                        if (textEl) textEl.textContent = 'Beli Sekarang';
2621                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2622                    }
2623                } else {
2624                    if (textEl) textEl.textContent = 'Stok Habis';
2625                    if (priceEl) priceEl.textContent = rupiah(finalPrice);
2626                }
2627            }
2628        
2629        const isMobile = window.initMobile ?? 0;
2630        if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
2631        if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
2632        updateBranchPopover(v);
2633        if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
2634        if (v) {
2635            window.dispatchEvent(new CustomEvent('pd-variant-changed', {
2636                detail: {
2637                    price: v.final,
2638                    originalPrice: v.ori,
2639                    discount: v.disc,
2640                    stock: effectiveStock,
2641                    sku: v.sku,
2642                    variant_id: v.id
2643                }
2644            }));
2645            
2646            const encodedHash = encodeVariantHash(v.id);
2647            if (encodedHash && window.history && window.history.replaceState) {
2648                const newHash = '#v=' + encodedHash;
2649                const newUrl = window.location.pathname + window.location.search + newHash;
2650                window.history.replaceState(null, '', newUrl);
2651            }
2652        }
2653    }
2654
2655    let sel = readSelection();
2656    if (autoFillMissing(sel)) sel = readSelection();
2657
2658    let v = findVariant(sel);
2659    if (!v) {
2660        const candidates = variants.filter(variant=>{
2661            return attrOrder.every(a=>{
2662                if (!sel[a]) return true;
2663                return variant.attrs[a] === sel[a];
2664            });
2665        });
2666        if (candidates.length >= 1) {
2667            v = candidates[0];
2668            attrOrder.forEach(a=> sel[a] = v.attrs[a]);
2669            attrOrder.forEach(a=>{
2670                const val = sel[a];
2671                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2672                if (input) input.checked = true;
2673            });
2674        }
2675    }
2676
2677    const initSel = readSelection();
2678    const initVar = findVariant(initSel) || variants[0] || null;
2679    if (document.readyState === 'loading') {
2680        document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
2681    } else {
2682        applyVariant(initVar, false);
2683    }
2684    
2685function updateSummary(sel){Object.entries(sel).forEach(([a,val])=>{const el=document.getElementById('vs-'+a);if(el)el.textContent=val||'-'})}
2686    function refreshOptions(sel){
2687        attrOrder.forEach(a=>{
2688            const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
2689            if (!group) return;
2690            const chips = group.querySelectorAll('.v-chip');
2691            chips.forEach(ch=>{
2692                const val = ch.getAttribute('data-value');
2693                const possible = variants.some(v=>{
2694                    if (v.attrs[a] !== val) return false;
2695                    for (const a2 of attrOrder) {
2696                        if (a2 === a) continue;
2697                        if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
2698                    }
2699                    return true;
2700                });
2701                const input = ch.querySelector('input[type=radio]');
2702                const disabled = !possible;
2703                if (input) input.disabled = disabled;
2704                ch.classList.toggle('disabled', disabled);
2705
2706                let candidateVariant = null;
2707                if (possible) {
2708                    candidateVariant = variants.find(v=>{
2709                        if (v.attrs[a] !== val) return false;
2710                        for (const a2 of attrOrder) {
2711                            if (a2 === a) continue;
2712                            if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
2713                        }
2714                        return true;
2715                    });
2716                }
2717                const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
2718                ch.classList.toggle('out', !disabled && outOfStock);
2719                const badge = ch.querySelector('.chip-badge');
2720                if (badge) badge.hidden = !(candidateVariant && outOfStock);
2721            });
2722            group.querySelectorAll('.v-chip').forEach(ch=>{
2723                const input = ch.querySelector('input[type=radio]');
2724                ch.classList.toggle('selected', input && input.checked);
2725            });
2726        });
2727    }
2728    updateSummary(sel);
2729    refreshOptions(sel);
2730    document.querySelectorAll('.v-chip').forEach(chip=>{const input=chip.querySelector('input[type=radio]');if(input&&input.checked){chip.classList.add('selected');}});
2731
2732    const container = document.getElementById('pd-variants');
2733    container && container.addEventListener('change', function(ev){
2734        const radio = ev.target.closest('input[type=radio]');
2735        if (!radio) return;
2736        sel = readSelection();
2737        if (autoFillMissing(sel)) sel = readSelection();
2738        const chosen = findVariant(sel);
2739        applyVariant(chosen || null, true);
2740        
2741        updateSummary(sel);
2742        refreshOptions(sel);
2743    });
2744    
2745window.applyVariant=applyVariant;
2746})();
2747
2748(function cleanBrokenDescImages(){
2749    const containers = [
2750        document.querySelector('.pd-full-desc-body'),
2751        document.querySelector('.pd-short-desc')
2752    ].filter(Boolean);
2753
2754    containers.forEach(root => {
2755        const imgs = root.querySelectorAll('img');
2756        imgs.forEach(img => {
2757            if (img.complete && img.naturalWidth === 0) {
2758                img.remove();
2759                return;
2760            }
2761            img.addEventListener('error', () => {
2762                img.remove();
2763            }, { once:true });
2764        });
2765    });
2766})();
2767
2768/* ====== Scroll To Top ====== */
2769(function _0xi25j(){const a=document.getElementById('pd-scroll-top');if(!a)return;function b(){if(window.matchMedia('(max-width:640px)').matches){const d=document.querySelector('.bottom-nav'),e=document.querySelector('.pd-mobile-fab');if(!d&&!e){setTimeout(b,100);return}const f=d&&window.getComputedStyle(d).display!=='none'&&window.getComputedStyle(d).visibility!=='hidden',g=e&&window.getComputedStyle(e).display!=='none'&&window.getComputedStyle(e).visibility!=='hidden';let h;if(f&&g){h='calc(68px + 54px + env(safe-area-inset-bottom))'}else if(g){h='calc(68px + 8px + env(safe-area-inset-bottom))'}else if(f){h='calc(60px + env(safe-area-inset-bottom))'}else{h='calc(20px + env(safe-area-inset-bottom))'}a.style.setProperty('--scroll-top-bottom',h)}else{a.style.removeProperty('--scroll-top-bottom')}}function c(){const d=window.pageYOffset||document.documentElement.scrollTop||0,e=d>300;a.classList.toggle('visible',e);a.setAttribute('aria-hidden',e?'false':'true');b()}window.addEventListener('scroll',c,{passive:!0});window.addEventListener('resize',b,{passive:!0});setTimeout(b,100);c();a.addEventListener('click',function(){window.scrollTo({top:0,behavior:'smooth'})})})();
2770
2771/* Format stok 10+ */
2772function _0xk67l(n){n=parseInt(n||0,10)||0;return n>10?'10+':String(n)}
2773
2774/* Toggle popover stok per cabang */
2775(function _0xm89n(){const a=document.getElementById('pd-stock-info-btn'),b=document.getElementById('pd-stock-popover'),c=document.getElementById('pd-stock-popover-close');if(!a||!b)return;function d(){if(window.matchMedia('(min-width: 641px)').matches){const e=document.getElementById('pd-stock-badge');if(!e)return;const f=e.getBoundingClientRect(),g=window.pageXOffset||document.documentElement.scrollLeft||0,h=window.pageYOffset||document.documentElement.scrollTop||0;b.style.left=(f.left+g-10)+'px';b.style.top=(f.bottom+h+10)+'px'}else{b.style.left='';b.style.top=''}}
2776function e(){d();b.classList.add('show');a.setAttribute('aria-expanded','true');b.setAttribute('aria-hidden','false');document.addEventListener('click',g,{capture:true});window.addEventListener('resize',d,{passive:true});window.addEventListener('scroll',d,{passive:true})}function f(){b.classList.remove('show');a.setAttribute('aria-expanded','false');b.setAttribute('aria-hidden','true');document.removeEventListener('click',g,{capture:true});window.removeEventListener('resize',d);window.removeEventListener('scroll',d)}function g(h){if(b.contains(h.target)||a.contains(h.target))return;f()}
2777a.addEventListener('click',function(h){h.preventDefault();b.classList.contains('show')?f():e()});if(c)c.addEventListener('click',f)})();
2778
2779/* ===== Share Product Modal ===== */
2780(function(){const a=document.getElementById('pd-share-btn'),z=document.getElementById('mf-share'),b=document.getElementById('pd-share-modal-overlay'),c=document.getElementById('pd-share-close'),d=document.getElementById('pd-share-copy-url-btn'),e=document.getElementById('pd-share-url-input');if((!a&&!z)||!b)return;const f="https://emetaltrade.com/",g="Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",h="Rp 20.789.000";const discountPercent=1;let i='';if(discountPercent>0){i=`🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `}else{i=`✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `}function j(){b.classList.add('show');document.body.style.overflow='hidden'}function k(){b.classList.remove('show');document.body.style.overflow=''}if(a)a.addEventListener('click',j);if(z)z.addEventListener('click',j);if(c)c.addEventListener('click',k);b.addEventListener('click',function(l){if(l.target===b)k()});document.addEventListener('keydown',function(l){if(l.key==='Escape'&&b.classList.contains('show'))k()});b.addEventListener('click',function(l){const m=l.target.closest('[data-share]');if(!m)return;const n=m.getAttribute('data-share'),o=encodeURIComponent(f),p=e
2780ncodeURIComponent(i),q=encodeURIComponent(g);let r='';switch(n){case 'whatsapp':r=`https://wa.me/?text=${p}${o}`;break;case 'facebook':r=`https://www.facebook.com/sharer/sharer.php?u=${o}`;break;case 'twitter':r=`https://twitter.com/intent/tweet?text=${p}${o}`;break;case 'telegram':r=`https://t.me/share/url?url=${o}&text=${p}`;break;case 'email':r=`mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`;window.location.href=r;k();return;case 'copy':s();return;case 'pdf':const ps=document.querySelector('.product-single');if(ps){ps.setAttribute('data-print-date',new Date().toLocaleDateString('id-ID',{year:'numeric',month:'long',day:'numeric'}))}k();setTimeout(function(){window.print();try{if(window.ga4Ecomm&&window.ga4Ecomm.trackEvent)window.ga4Ecomm.trackEvent('share',{method:'pdf_export',content_type:'product',item_id:"1S83N0800RID"})}catch(_){}},300);return}if(r){window.open(r,'_blank','noopener,noreferrer');try{if(window.ga4Ecomm&&window.ga4Ecomm.trackEvent)window.ga4Ecomm.trackEvent('share',{method:n,content_type:'product',item_id:"1S83N0800RID"})}catch(_){}}});function s(){if(!e)return;e.select();e.setSelectionRange(0,99999);try{if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(f).then(function(){t()}).catch(function(){document.execCommand('copy');t()})}else{document.execCommand('copy');t()}}catch(u){console.error('Failed to copy:',u)}}function t(){if(!d)return;const v=d.innerHTML;d.classList.add('copied');d.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg><span class="pd-share-copy-text">Tersalin!</span>';if(window.showToast)showToast({type:'success',title:'✨ Link Tersalin!',message:'Link produk berhasil disalin. Yuk bagikan ke teman!',duration:3000});setTimeout(function(){d.classList.remove('copied');d.innerHTML=v},2000)}if(d)d.addEventListener('click',s);if(navigator.share){const shareHandler=function(w){w.preventDefault();navigator.share({title:g,text:i+f,url:f}).catch(function(x){console.log('Native share cancelled or failed:',x)})};if(a)a.addEventListener('dblclick',shareHandler);if(z)z.addEventListener('dblclick',shareHandler)}})();
2781
2782/* ===== Embedding variants (server → client) ===== */
2783(function(){
2784  window.__PD_VARIANTS_WITH_BRANCH__ = [];
2785})();
2786
2787/* ===== Helper: update angka popover ===== */
2788function updateStockPopoverForVariant(v){
2789  try{
2790    const elMeg = document.getElementById('sp-qty-meg');
2791    const elMdf = document.getElementById('sp-qty-mdf');
2792    const elBda = document.getElementById('sp-qty-bda');
2793
2794    if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm|0));
2795    if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf|0));
2796    if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba|0));
2797  }catch(_){}
2798}
2799
2800/* ===== applyVariant: 10+ dan update popover ===== */
2801(function patchApplyVariant(){
2802  if (typeof applyVariant !== 'function') return;
2803  const original = applyVariant;
2804  window.applyVariant = function(v){
2805    original(v);
2806    
2807    try {
2808      const elStock = document.getElementById('pd-stock-badge');
2809      if (elStock){
2810        let txt = elStock.textContent || '';
2811        let m = txt.match(/\d+/);
2812        if (m) {
2813          const n = parseInt(m[0]||'0',10)||0;
2814          elStock.textContent = (n>0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
2815        }
2816      }
2817    } catch(_){}
2818if(window.__PD_VARIANTS_WITH_BRANCH__&&v){const vv=window.__PD_VARIANTS_WITH_BRANCH__.find(x=>x.id===v.id)||v;updateStockPopoverForVariant(vv)}
2819  };
2820})();
2821
2822(function initCurrentVariantBranch(){
2823  const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
2824  if (!list.length) return;
2825  const hid = document.getElementById('pd-variant-id');
2826  const vid = hid ? parseInt(hid.value||'0',10) : 0;
2827  const current = list.find(x => x.id === vid) || list[0] || null;
2828  if (current) updateStockPopoverForVariant(current);
2829})();
2830
2831(function(){
2832    if (!window.ga4Ecomm) return;
2833    const catSegs = ["Komputer & Laptop","Laptop","Gaming"];
2834    window.ga4Ecomm.viewItem({
2835      currency: 'IDR',
2836      value: 20789000,
2837      item_id: "1S83N0800RID",
2838      item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
2839      item_brand: "Lenovo ",
2840      item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
2841    });
2842  })();
2843  
2844(function patchApplyVariantFocus(){
2845  if (typeof applyVariant !== 'function') return;
2846  const original = applyVariant;
2847  window.applyVariant = function(v, focusImage = true){
2848    
2849    original(v, focusImage);
2850    
2851    if (focusImage && v && v.image_url) {
2852      _0xau1v(v.image_url);
2853    }
2854  };
2855})();
2856
2857(function() {
2858  var soldMap = [];
2859  var soldTotalLabel = "Terjual 2";
2860
2861  function formatSoldLabel(qty) {
2862    if (qty >= 1000000) {
2863      var v = Math.floor((qty / 100000) ) / 10;
2864      return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
2865    }
2866    if (qty >= 1000) {
2867      var v2 = Math.floor((qty / 100) ) / 10;
2868      return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
2869    }
2870    if (qty >= 100) {
2871      var v2 = Math.floor((qty / 100) ) * 100;
2872      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
2873    }
2874    if (qty >= 10) {
2875      var v2 = Math.floor((qty / 10) ) * 10;
2876      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
2877    }
2878    return 'Terjual ' + (qty.toLocaleString('id-ID'));
2879  }
2880
2881  function updateSoldLabel(labelText) {
2882    var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
2883    if (el) el.textContent = labelText;
2884  }
2885
2886  window.updateSoldBySku = function(sku) {
2887    if (!sku || typeof sku !== 'string') {
2888      updateSoldLabel(soldTotalLabel);
2889      return;
2890    }
2891    var qty = soldMap[sku] || 0;
2892    updateSoldLabel(formatSoldLabel(qty));
2893  };
2894
2895    updateSoldLabel(soldTotalLabel);
2896  })();
2897
2898(function(){const h=document.getElementById('pd-sticky-header');if(!h)return;const p=document.getElementById('pd-price-anchor');const ac=document.getElementById('pd-sticky-add-cart');const by=document.getElementById('pd-sticky-buy');let lt=window.scrollY;let tk=false;function u(){if(!p)return;const r=p.getBoundingClientRect();const s=window.scrollY;if(r.top<0){h.classList.add('visible')}else{h.classList.remove('visible')}lt=s;tk=false}function rt(){if(!tk){window.requestAnimationFrame(u);tk=true}}window.addEventListener('scroll',rt,{passive:true});u();function sy(){const ma=document.getElementById('btn-add-cart');const mb=document.getElementById('btn-buy');if(ac&&ma){ac.disabled=ma.disabled}if(by&&mb){by.disabled=mb.disabled}}sy();const ob=new MutationObserver(sy);const ma=document.getElementById('btn-add-cart');const mb=document.getElementById('btn-buy');if(ma)ob.observe(ma,{attributes:true,attributeFilter:['disabled']});if(mb)ob.observe(mb,{attributes:true,attributeFilter:['disabled']});const ss=document.getElementById('pd-sticky-share-btn');const ms=document.getElementById('pd-share-btn');if(ss&&ms){ss.addEventListener('click',function(e){e.preventDefault();ms.click()})}if(ac){ac.addEventListener('click',function(e){e.preventDefault();if(ac.disabled)return;const m=document.getElementById('btn-add-cart');if(m&&!m.disabled){m.click()}})}if(by){by.addEventListener('click',function(e){e.preventDefault();if(by.disabled)return;const m=document.getElementById('btn-buy');if(m&&!m.disabled&&window.buyNow){window.buyNow(e)}})}
2899function getChatProductData(){const varInput=document.getElementById('pd-variant-id');const variantId=varInput?parseInt(varInput.value||'0',10):0;const variantSummary=getVariantSummaryText();const priceEl=document.getElementById('pd-price-current');const currentPrice=priceEl?priceEl.textContent.trim():'Rp 20.789.000';const pd={id:325,name:"Lenovo Legion Go 8ASP2 - 83N0000RID \/AMD Ryzen Z2 Extreme\/32GB\/1TB SSD\/AMD Radeon Graphics\/8.8\" WUXGA OLED Touch\/Win 11 Home\/Eclipse Black\/3Y",price:currentPrice,image:"\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp",url:window.location.href};if(variantId>0){pd.variant_id=variantId}if(variantSummary){pd.variant_summary=variantSummary}return pd}
2900const ch=document.getElementById('pd-sticky-chat');if(ch){ch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}const dch=document.getElementById('btn-chat-icon');if(dch){dch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}const mch=document.getElementById('mf-chat');if(mch){mch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}window.addEventListener('pd-variant-changed',function(e){const d=e.detail||{};if(d.price!==undefined){const sp=document.getElementById('pd-sticky-price');if(sp){sp.textContent=formatRupiah(d.price)}}if(d.originalPrice!==undefined&&d.originalPrice>d.price){const so=document.getElementById('pd-sticky-price-original');if(so){so.textContent=formatRupiah(d.originalPrice);so.style.display=''}}else{const so=document.getElementById('pd-sticky-price-original');if(so){so.style.display='none'}}if(d.discount!==undefined&&d.discount>0){const sd=document.getElementById('pd-sticky-discount');if(sd){sd.textContent='-'+d.discount+'%';sd.style.display=''}}else{const sd=document.getElementById('pd-sticky-discount');if(sd){sd.style.display='none'}}const hs=d.stock>0;if(ac){ac.disabled=!hs}if(by){by.disabled=!hs}});
2900function formatRupiah(n){return'Rp'+Math.floor(n).toLocaleString('id-ID')}})();
2901
2902(function(){const t=document.getElementById('pdv-toggle-btn');const v=document.getElementById('pd-voucher-section');if(t&&v){const h=v.querySelectorAll('.pdv-min-hidden');const n=h.length;t.addEventListener('click',function(){const e=t.classList.toggle('expanded');h.forEach(function(i){if(e){i.classList.remove('pdv-min-hidden')}else{i.classList.add('pdv-min-hidden')}});t.textContent=e?'Tutup':'+'+n})}const m=document.getElementById('voucher-detail-modal');const mc=document.getElementById('voucher-modal-close');const ma=document.getElementById('voucher-modal-cancel');const mcp=document.getElementById('voucher-modal-copy');if(m){const bb=document.querySelectorAll('.pdv-badge-btn');bb.forEach(function(btn){btn.addEventListener('click',function(){if(btn.disabled)return;const c=btn.getAttribute('data-voucher-code');const nm=btn.getAttribute('data-voucher-name');const dl=btn.getAttribute('data-discount-label');const bl=btn.getAttribute('data-badge-label');const mp=parseInt(btn.getAttribute('data-min-purchase'));const md=parseInt(btn.getAttribute('data-max-discount'));const vu=btn.getAttribute('data-valid-until');document.getElementById('voucher-modal-badge').innerHTML='<span class="vmb-value">'+dl+'</span><span class="vmb-label">'+bl+'</span>';document.getElementById('voucher-modal-code').textContent=c;document.getElementById('voucher-modal-name').textContent=nm;const me=document.getElementById('voucher-modal-min');if(mp>0){me.style.display='';document.getElementById('voucher-modal-min-val').textContent=fr(mp)}else{me.style.display='none'}const xe=document.getElementById('voucher-modal-max');if(md>0){xe.style.display='';document.getElementById('voucher-modal-max-val').textContent=fr(md)}else{xe.style.display='none'}if(vu){const d=new Date(vu);const ft=d.toLocaleDateString('id-ID',{day:'numeric',month:'long',year:'numeric',hour:'2-digit',minute:'2-digit'});document.getElementById('voucher-modal-valid-val').textContent=ft}mcp.setAttribute('data-code',c);m.classList.add('show');document.body.style.overflow='hidden'})});function cm(){m.classList.remove('show');document.body.style.overflow=''}if(mc)mc.addEventListener('click',cm);if(ma)ma.addEventListener('click',cm);m.addEventListener('click',function(e){if(e.target===m)cm()});if(mcp){mcp.addEventListener('click',function(){const c=mcp.getAttribute('data-code');if(!c)return;if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(c).then(function(){smc()}).catch(function(err){fc(c)})}else{fc(c)}})}}const b=document.querySelectorAll('.pdv-min-copy');b.forEach(function(btn){btn.addEventListener('click',function(){if(btn.disabled)return;const code=btn.getAttribute('data-code');if(!code)return;if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(code).then(function(){sc(btn)}).catch(function(err){fc(code,btn)})}else{fc(code,btn)}})});function fc(text,btn){const tx=document.createElement('textarea');tx.value=text;tx.style.position='fixed';tx.style.opacity='0';document.body.appendChild(tx);tx.select();try{document.execCommand('copy');if(btn)sc(btn);else smc()}catch(err){}document.body.removeChild(tx)}function sc(btn){const o=btn.textContent;btn.classList.add('copied');btn.textContent='✓ Tersalin';setTimeout(function(){btn.classList.remove('copied');btn.textContent=o},2000)}function smc(){const o=mcp.textContent;mcp.textContent='✓ Kode Tersalin';mcp.style.background='#22c55e';setTimeout(function(){mcp.textContent=o;mcp.style.background=''},2000)}function fr(a){return'Rp'+Math.floor(a).toLocaleString('id-ID')}})();
2903</script>
vendor: 2 bytes, line 2903
2903
2904<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2905window.PD_ID=325;window.PD_NAME=_0x3c4d;window.PD_SKU=_0x5e6f;window.PD_CATEGORY_PATH="Komputer & Laptop/Laptop/Gaming";window.PD_BEST_VOUCHER=null;
2906window.IS_DIGITAL=IS_DIGITAL;
2907window.isPreorderProduct=false;
2908window.PD_PREORDER_DATA=null;
2909</script>
2909
2910
2911
2912
2913
2914
2915
2916<script nonce="se3iyzEHMc9FQEB4wSyd0w==">document.addEventListener('DOMContentLoaded',function(){if(typeof ProductReviews!=='undefined'){ProductReviews.init(325);}const r=document.getElementById('pd-rating-inline');if(r){r.addEventListener('click',function(e){e.preventDefault();const s=document.getElementById('reviews');if(s){s.scrollIntoView({behavior:'smooth',block:'start'});s.classList.add('highlight-flash');setTimeout(()=>{s.classList.remove('highlight-flash')},1500)}});}});</script>
2916
2917
2918<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2919(function(){function _0x9i0j(el){if(typeof gtag==='function'){gtag('event','qoala_insurance_click',{event_category:'Insurance',event_label:'Qoala Banner Click - Product Detail',link_url:'/plazait-protect',page_location:window.location.href,product_id:parseInt(el.getAttribute('data-product-id'))||0,product_name:el.getAttribute('data-product-name')||'',category_path:el.getAttribute('data-category-path')||'',custom_map:{custom_parameter_1:'qoala_banner_product_detail'}})}}
2920
2921function _0x1k2l(){var a=document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]');if(a){a.addEventListener('click',function(e){_0x9i0j(this)})}}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',_0x1k2l)}else{_0x1k2l()}})();
2922
2923(function(){const pwpSection=document.getElementById('pwp-deals-section');const pwpBadge=document.getElementById('pwp-trigger-badge');if(!pwpSection)return;const productId=parseInt(pwpSection.getAttribute('data-product-id'))||0;const variantId=parseInt(pwpSection.getAttribute('data-variant-id'))||0;const categoryPath=pwpSection.getAttribute('data-category-path')||'';if(!productId)return;function formatRupiah(n){return'Rp'+Math.floor(n).toLocaleString('id-ID')}function loadPWPDeals(){const url=`/api/pwp/get_by_product.php?product_id=${productId}${variantId?`&variant_id=${variantId}`:''}${categoryPath?`&category_path=${encodeURIComponent(categoryPath)}`:''}`;fetch(url).then(r=>r.json()).then(data=>{if(data.success&&data.promotions&&data.promotions.length>0){renderPWPDeals(data.promotions);pwpSection.hidden=false;if(pwpBadge)pwpBadge.hidden=false;setTimeout(function(){if(typeof window.adjustSidebarBanner==='function'){window.adjustSidebarBanner()}},150)}else{pwpSection.hidden=true;if(pwpBadge)pwpBadge.hidden=true}}).catch(err=>{console.error('PWP load error:',err);pwpSection.hidden=true;if(pwpBadge)pwpBadge.hidden=true})}function renderPWPDeals(promotions){const loading=pwpSection.querySelector('.pwp-deals-loading');const grid=document.getElementById('pwp-deals-grid');if(loading)loading.hidden=true;if(!grid)return;grid.innerHTML='';promotions.forEach(promo=>{promo.bundled_products.forEach(product=>{const card=document.createElement('div');card.className='pwp-deal-card';const discount=product.discount>0?product.discount:0;const discountPercent=product.regular_price>0?Math.round((discount/product.regular_price)*100):0;const imgUrl=product.image_url?`/uploads/products/${product.image_url}`:'/assets/img/no-image.png';card.innerHTML=`<div class="pwp-deal-thumb"><img src="${imgUrl}" alt="${escapeHtml(product.name)}" loading="lazy"></div><div class="pwp-deal-info"><h4 class="pwp-deal-name">${escapeHtml(product.name)}</h4><div class="pwp-deal-prices"><span class="pwp-deal-price">${formatRupiah(product.pwp_price)}</span>${product.regular_price>product.pwp_price?`<span class="pwp-deal-original">${formatRupiah(product.regular_price)}</span>`:''}</div></div>${discountPercent>0?`<span class="pwp-deal-badge">-${discountPercent}%</span>`:''}`;grid.appendChild(card)})})}function escapeHtml(str){const div=document.createElement('div');div.textContent=str||'';return div.innerHTML}loadPWPDeals();window.addEventListener('pd-variant-changed',function(e){const detail=e.detail||{};const newVid=detail.variant_id||0;const currentVid=parseInt(pwpSection.getAttribute('data-variant-id'))||0;if(newVid!==currentVid){pwpSection.setAttribute('data-variant-id',newVid);loadPWPDeals()}})})();
2924</script>
2924<footer class="site-footer footer-compact variant-stripes" role="contentinfo">
2925  <div class="ft-top ft-collapsible" id="ftTop">
2926    <div class="container ft-grid">
2927
2928      <div class="ft-col ft-help">
2929        <h4 class="ft-title">Butuh Bantuan?</h4>
2930        <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
2931        <a class="ft-wa-btn" href="https://emetaltrade.com/" target="_blank" rel="nofollow noopener">
2932          <span class="ico" aria-hidden="true">
2933            <svg viewBox="0 0 24 24" width="18" height="18"><path fill="#25D366" d="M12.04 2c-5.52 0-10 4.43-10 9.9 0 1.75.47 3.45 1.38 4.94L2 22l5.3-1.38c1.43.78 3.05 1.19 4.7 1.19 5.52 0 10-4.43 10-9.9S17.56 2 12.04 2Zm5.86 13.9c-.25.7-1.23 1.28-1.7 1.33-.45.06-1.02.08-1.65-.1-.38-.12-.88-.29-1.52-.56-2.66-1.15-4.4-3.83-4.53-4.01-.13-.18-1.08-1.44-1.08-2.75 0-1.31.68-1.95.92-2.22.25-.27.54-.33.72-.33.18 0 .36.01.52.01.17 0 .39-.06.62.47.25.6.85 2.07.92 2.22.07.15.12.33.02.53-.1.2-.15.33-.3.5-.15.17-.32.39-.46.53-.15.15-.3.31-.13.6.18.3.8 1.31 1.73 2.12 1.19 1.03 2.17 1.36 2.48 1.5.31.14.49.12.67-.07.18-.18.77-.82.98-1.1.21-.27.42-.23.7-.14.27.09 1.72.81 2.02.95.3.14.5.22.58.35.08.13.08.72-.17 1.42Z"/></svg>
2934          </span>
2935          Kirim Pesan
2936        </a>
2937
2938        <p class="ft-desc sm-gap">Ikuti kami:</p>
2939        <div class="ft-social">
2940          <a aria-label="Facebook" href="https://facebook.com/SPIN189/"><svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M13.5 22v-8.2h2.7l.4-3.2h-3.1V8c0-.9.3-1.5 1.6-1.5H17V3.7c-.3 0-1.2-.1-2.2-.1-2.2 0-3.8 1.3-3.8 3.9v2.2H8v3.2h3v8.1h2.5Z"/></svg></a>
2941          <a aria-label="Instagram" href="https://www.instagram.com/SPIN189"><svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8
2941V7.8A3.8 3.8 0 0 0 16.2 4H7.8Zm9.9 1.7a1.1 1.1 0 1 1 0 2.3 1.1 1.1 0 0 1 0-2.3ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z"/></svg></a>
2942          <a aria-label="TikTok" href="https://www.tiktok.com/@SPIN189"><svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M18.9 7.4a6.4 6.4 0 0 1-3.2-1.2v6.3a5.47 5.47 0 1 1-5.5-5.5c.2 0 .4 0 .6.02v2.37a2.92 2.92 0 0 0-.6-.07 2.8 2.8 0 1 0 2.8 2.8V2h2.3a4.6 4.6 0 0 0 4.5 4.1v2.3Z"/></svg></a>
2943        </div>
2944      </div>
2945
2946            <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
2947      <div class="ft-collapsible-content" id="ftCollapsible">
2948      
2949      <div class="ft-col">
2950        <h4 class="ft-title">Tentang SPIN189</h4>
2951        <ul class="ft-links">
2952          <li><a href="https://emetaltrade.com/">Profil SPIN189</a></li>
2953          <li><a href="https://emetaltrade.com/">Dukungan Member</a></li>
2954          <li><a href="https://emetaltrade.com/">Akses Resmi</a></li>
2955          <li><a href="https://emetaltrade.com/">Pusat Bantuan</a></li>
2956        </ul>
2957        <div class="ft-address">
2958          <p class="company">PT SPIN189 TEKNOLOGI RETRO</p>
2959                      <p>Jl. Jend. Sudirman Kav. 45-46, Gedung A Lt. 12, Kel. Karet Semanggi,</p>
2960                      <p>Kec. Setiabudi, Kota Jakarta Selatan, DKI Jakarta, 12930</p>
2961                  </div>
2962      </div>
2963
2964      <div class="ft-col">
2965        <h4 class="ft-title">Informasi</h4>
2966        <ul class="ft-links">
2967          <li><a href="https://emetaltrade.com/">Syarat &amp; Ketentuan</a></li>
2968          <li><a href="https://emetaltrade.com/">Kebijakan Privasi</a></li>
2969          <li><a href="https://emetaltrade.com/">Kebijakan Cookie</a></li>
2970          <li><a href="https://emetaltrade.com/">Pengiriman &amp; Pengembalian</a></li>
2971          <li><a href="https://emetaltrade.com/">Pembayaran &amp; Cicilan</a></li>
2972          <li><a href="https://emetaltrade.com/">Garansi &amp; Layanan</a></li>
2973        </ul>
2974
2975        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
2976          <div class="pay-row">
2977            <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
2978            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
2979            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
2980            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
2981            <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
2982          </div>
2983        </div>
2984      </div>
2985
2986            </div>
2987      <!-- End Collapsible Content -->
2988      
2989      <!-- Expand Button (Mobile Only) -->
2990      <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
2991        <span class="expand-text">Selengkapnya</span>
2992        <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
2993          <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/>
2994        </svg>
2995      </button>
2996      
2997    </div>
2998  </div>
2999  <div class="ft-bottom">
3000    <div class="container ft-bottom-inner">
3001      <div class="ft-copy">
3002        <span>TISU-AJAIB &copy; <span id="yearNow">2026</span></span>
3003        <span>PT TISU-AJAIB. All rights reserved.</span>
3004      </div>
3005    </div>
3006  </div>
3007  
3008          <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
3009            /* Chat Widget Styles - Lightweight & Minimal */
3010            .chat-widget {
3011                position: fixed;
3012                bottom: 20px;
3013                right: 20px;
3014                z-index: 9999;
3015                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
3016            }
3017            
3018            /* Hide floating button on mobile - use bottom nav instead */
3019            @media (max-width: 640px) {
3020                .chat-toggle-btn {
3021                    display: none !important;
3022                }
3023                
3024                /* Ensure popup is still visible on mobile even when button is hidden */
3025                .chat-widget {
3026                    display: block !important;
3027                }
3028                
3029                .chat-popup {
3030                    display: none; /* Hidden by default, shown via JS */
3031                }
3032                
3033                .chat-popup[style*="display: block"],
3034                .chat-popup[style*="display:block"] {
3035                    display: block !important;
3036                }
3037            }
3038            
3039            .chat-toggle-btn {
3040                width: 60px;
3041                height: 60px;
3042                border-radius: 50%;
3043                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3044                border: none;
3045                color: white;
3046                cursor: pointer;
3047                box-shadow: 0 4px 12px rgba(18, 118, 166, 0.3);
3048                position: relative;
3049                transition: transform 0.2s, box-shadow 0.2s;
3050            }
3051            
3052            .chat-toggle-btn:hover {
3053                transform: scale(1.05);
3054                box-shadow: 0 6px 20px rgba(18, 118, 166, 0.4);
3055            }
3056            
3057            #chat-toggle-btn .chat-icon {
3058                position: absolute;
3059                top: 50%;
3060                left: 50%;
3061                transform: translate(-50%, -50%);
3062                width: 28px !important;
3063                height: 28px !important;
3064            }
3065            
3066            .chat-unread-badge {
3067                position: absolute;
3068                top: -5px;
3069                right: -5px;
3070                background: #F9B826;
3071                color: #040914;
3072                border-radius: 12px;
3073                padding: 2px 6px;
3074                font-size: 11px;
3075                font-weight: 700;
3076                min-width: 20px;
3077                text-align: center;
3078            }
3079            
3080            .chat-popup {
3081                position: absolute;
3082                bottom: 80px;
3083                right: 0;
3084                width: 380px;
3085                max-width: calc(100vw - 40px);
3086                height: 500px;
3087                max-height: calc(100vh - 120px);
3088                background: white;
3089                border-radius: 12px;
3090                box-shadow: 0 10px 40px rgba(0,0,0,0.2);
3091                display: flex;
3092                flex-direction: column;
3093                overflow: hidden;
3094            }
3095            
3096            .chat-popup-header {
3097                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3098                color: white;
3099                padding: 16px 20px;
3100                display: flex;
3101                justify-content: space-between;
3102                align-items: center;
3103                flex-shrink: 0;
3104            }
3105            
3106            .chat-header-title {
3107                display: flex;
3108                flex-direction: column;
3109                gap: 2px;
3110                min-height: 0;
3111            }
3112            
3113            .chat-popup-header h3 {
3114                margin: 0;
3115                font-size: 18px;
3116                font-weight: 600;
3117                line-height: 1.2;
3118            }
3119            
3120            .chat-operating-hours {
3121                font-size: 11px;
3122                opacity: 0.9;
3123                font-weight: 400;
3124                display: flex;
3125                align-items: center;
3126                gap: 4px;
3127                line-height: 1.2;
3128            }
3129            
3130            .chat-operating-hours svg {
3131                width: 12px;
3132                height: 12px;
3133                opacity: 0.8;
3134                flex-shrink: 0;
3135            }
3136            
3137            .chat-header-actions {
3138                display: flex;
3139                align-items: center;
3140                gap: 8px;
3141            }
3142            
3143            /* Notification Toggle Button */
3144            .btn-notif-toggle {
3145                background: none;
3146                border: none;
3147                color: white;
3148                font-size: 18px;
3149                cursor: pointer;
3150                padding: 4px 8px;
3151                transition: all 0.2s;
3152                opacity: 0.8;
3153            }
3154            
3155            .btn-notif-toggle:hover {
3156                opacity: 1;
3157                transform: scale(1.1);
3158            }
3159            
3160            /* Icon states */
3161            .btn-notif-toggle[data-status="not-subscribed"] svg {
3162                opacity: 0.7;
3163            }
3164            
3165            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
3166                opacity: 1;
3167            }
3168            
3169            .btn-notif-toggle[data-status="subscribed"] svg {
3170                opacity: 1;
3171                animation: bellRing 2s ease-in-out;
3172            }
3173            
3174            .btn-notif-toggle[data-status="blocked"] svg {
3175                color: #ff6b6b;
3176            }
3177            
3178            .btn-notif-toggle[data-status="not-supported"] {
3179                display: none !important;
3180            }
3181            
3182            @keyframes bellRing {
3183                0%, 100% { transform: rotate(0deg); }
3184                10%, 30% { transform: rotate(-10deg); }
3185                20%, 40% { transform: rotate(10deg); }
3186            }
3187            
3188            /* Notification Info Bar */
3189            .chat-notif-info-bar {
3190                position: absolute;
3191                top: 64px;
3192                left: 0;
3193                right: 0;
3194                background: linear-gradient(to right, #D8FBFF, #F0F4F8);
3195                border-bottom: 1px solid #eca92c;
3196                padding: 8px 12px;
3197                display: flex;
3198                align-items: center;
3199                gap: 8px;
3200                font-size: 12px;
3201                color: #475569;
3202                z-index: 10;
3203                animation: slideDown 0.3s ease;
3204            }
3205            
3206            .chat-notif-info-bar svg {
3207                flex-shrink: 0;
3208            }
3209            
3210            .chat-notif-info-bar .small {
3211                flex: 1;
3212                line-height: 1.4;
3213            }
3214            
3215            .chat-notif-info-bar .btn-dismiss {
3216                background: none;
3217                border: none;
3218                color: #94a3b8;
3219                cursor: pointer;
3220                padding: 0 4px;
3221                font-size: 16px;
3222                transition: color 0.2s;
3223            }
3224            
3225            .chat-notif-info-bar .btn-dismiss:hover {
3226                color: #475569;
3227            }
3228            
3229            @keyframes slideDown {
3230                from {
3231                    max-height: 0;
3232                    opacity: 0;
3233                }
3234                to {
3235                    max-height: 50px;
3236                    opacity: 1;
3237                }
3238            }
3239            
3240            .chat-close-btn {
3241                background: none;
3242                border: none;
3243                color: white;
3244                font-size: 28px;
3245                line-height: 1;
3246                cursor: pointer;
3247                padding: 0;
3248                width: 30px;
3249                height: 30px;
3250            }
3251            
3252            .chat-popup-body {
3253                flex: 1 1 auto;
3254                display: flex;
3255                flex-direction: column;
3256                min-height: 0;
3257                overflow: hidden;
3258                height: calc(100% - 64px);
3259                position: relative;
3260                transition: padding-top 0.3s ease;
3261            }
3262            
3263            /* Add padding when info bar is visible */
3264            .chat-popup-body.has-info-bar {
3265                padding-top: 40px;
3266            }
3267            
3268            .chat-view {
3269                flex: 1 1 auto;
3270                display: none;
3271                flex-direction: column;
3272                min-height: 0;
3273                overflow: hidden;
3274            }
3275            
3276            #chat-list-view {
3277                display: flex;
3278            }
3279            
3280            #chat-messages-view {
3281                display: none;
3282            }
3283            
3284            #chat-messages-view.active {
3285                display: flex;
3286                flex-direction: column;
3287            }
3288            
3289            #chat-new-view {
3290                display: none;
3291            }
3292            
3293            #chat-new-view.active {
3294                display: flex;
3295            }
3296            
3297            .chat-conversations-list {
3298                flex: 1;
3299                overflow-y: auto;
3300                padding: 0;
3301                background: white;
3302            }
3303            
3304            /* Custom Scrollbar for Conversations List */
3305            .chat-conversations-list::-webkit-scrollbar {
3306                width: 6px;
3307            }
3308            
3309            .chat-conversations-list::-webkit-scrollbar-track {
3310                background: #f1f1f1;
3311            }
3312            
3313            .chat-conversations-list::-webkit-scrollbar-thumb {
3314                background: #a67f12;
3315                border-radius: 3px;
3316            }
3317            
3318            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
3319                background: #2e200a;
3320            }
3321            
3322            /* Firefox */
3323            .chat-conversations-list {
3324                scrollbar-width: thin;
3325                scrollbar-color: #a67f12 #f1f1f1;
3326            }
3327            
3328            .chat-conversation-item {
3329                padding: 12px 16px;
3330                cursor: pointer;
3331                display: flex;
3332                gap: 12px;
3333                align-items: flex-start;
3334                transition: background 0.15s ease;
3335                color: #1F2937;
3336                border-bottom: 1px solid #f0f0f0;
3337            }
3338            
3339            .chat-conversation-item:hover {
3340                background: #f5f5f5;
3341            }
3342            
3343            .chat-conversation-item.active {
3344                background: #E6F7F9;
3345            }
3346            
3347            /* WhatsApp-like Avatar */
3348            .conversation-avatar {
3349                width: 48px;
3350                height: 48px;
3351                border-radius: 50%;
3352                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3353                flex-shrink: 0;
3354                display: flex;
3355                align-items: center;
3356                justify-content: center;
3357                color: white;
3358                font-weight: 600;
3359                font-size: 18px;
3360            }
3361            
3362            .conversation-avatar svg {
3363                width: 24px;
3364                height: 24px;
3365            }
3366            
3367            /* WhatsApp-like Content */
3368            .conversation-content {
3369                flex: 1;
3370                min-width: 0;
3371                display: flex;
3372                flex-direction: column;
3373                gap: 4px;
3374            }
3375            
3376            .conversation-header {
3377                display: flex;
3378                justify-content: space-between;
3379                align-items: center;
3380                gap: 8px;
3381            }
3382            
3383            .conversation-name {
3384                font-weight: 600;
3385                font-size: 15px;
3386                color: #111;
3387                white-space: nowrap;
3388                overflow: hidden;
3389                text-overflow: ellipsis;
3390            }
3391            
3392            .conversation-time {
3393                font-size: 12px;
3394                color: #8b7f64;
3395                flex-shrink: 0;
3396            }
3397            
3398            .conversation-preview {
3399                display: flex;
3400                justify-content: space-between;
3401                align-items: center;
3402                gap: 8px;
3403            }
3404            
3405            .conversation-message {
3406                font-size: 14px;
3407                color: #475569;
3408                white-space: nowrap;
3409                overflow: hidden;
3410                text-overflow: ellipsis;
3411                margin: 0;
3412                flex: 1;
3413            }
3414            
3415            .conversation-unread {
3416                background: #F9B826;
3417                color: #040914;
3418                border-radius: 12px;
3419                padding: 2px 8px;
3420                font-size: 12px;
3421                font-weight: 700;
3422                min-width: 20px;
3423                text-align: center;
3424                flex-shrink: 0;
3425            }
3426            
3427            /* Active item styling */
3428            .chat-conversation-item.active .conversation-name {
3429                color: #a67f12;
3430            }
3431            
3432            .chat-conversation-item.active .conversation-time {
3433                color: #a67f12;
3434            }
3435            
3436            .chat-new-btn {
3437                margin: 12px;
3438                padding: 12px;
3439                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3440                color: white;
3441                border: none;
3442                border-radius: 8px;
3443                cursor: pointer;
3444                font-weight: 500;
3445                font-size: 14px;
3446                display: flex;
3447                align-items: center;
3448                justify-content: center;
3449                gap: 8px;
3450                transition: all 0.2s;
3451                flex-shrink: 0;
3452            }
3453            
3454            .chat-new-btn:hover {
3455                transform: translateY(-1px);
3456                box-shadow: 0 4px 8px rgba(18, 118, 166, 0.3);
3457            }
3458            
3459            .chat-conversation-title {
3460                flex: 1;
3461                font-weight: 600;
3462                font-size: 16px;
3463                color: #1f2937;
3464            }
3465            
3466            .chat-messages-container {
3467                flex: 1;
3468                overflow-y: auto;
3469                padding: 16px;
3470                display: flex;
3471                flex-direction: column;
3472                gap: 8px;
3473                min-height: 0;
3474                background: #F0F4F8;
3475            }
3476            
3477            /* Custom Scrollbar for Messages Container */
3478            .chat-messages-container::-webkit-scrollbar {
3479                width: 6px;
3480            }
3481            
3482            .chat-messages-container::-webkit-scrollbar-track {
3483                background: rgba(0, 0, 0, 0.05);
3484            }
3485            
3486            .chat-messages-container::-webkit-scrollbar-thumb {
3487                background: rgba(18, 118, 166, 0.6);
3488                border-radius: 3px;
3489            }
3490            
3491            .chat-messages-container::-webkit-scrollbar-thumb:hover {
3492                background: #a67f12;
3493            }
3494            
3495            /* Firefox */
3496            .chat-messages-container {
3497                scrollbar-width: thin;
3498                scrollbar-color: rgba(18, 118, 166, 0.6) rgba(0, 0, 0, 0.05);
3499            }
3500            
3501            /* WhatsApp Group-like Messages */
3502            .chat-message {
3503                display: flex;
3504                margin-bottom: 4px;
3505                animation: fadeIn 0.2s ease;
3506            }
3507            
3508            @keyframes fadeIn {
3509                from { opacity: 0; transform: translateY(10px); }
3510                to { opacity: 1; transform: translateY(0); }
3511            }
3512            
3513            .chat-message.mine {
3514                justify-content: flex-end;
3515            }
3516            
3517            .chat-message-bubble {
3518                max-width: 80%;
3519                padding: 6px 8px 8px 10px;
3520                border-radius: 8px;
3521                position: relative;
3522                box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
3523            }
3524            
3525            /* Bubble from others (Admin/CS) */
3526            .chat-message:not(.mine) .chat-message-bubble {
3527                background: #FFFFFF;
3528                border-radius: 0 8px 8px 8px;
3529            }
3530            
3531            /* Bubble tail for others */
3532            .chat-message:not(.mine) .chat-message-bubble::before {
3533                content: '';
3534                position: absolute;
3535                top: 0;
3536                left: -8px;
3537                width: 0;
3538                height: 0;
3539                border-style: solid;
3540                border-width: 0 8px 13px 0;
3541                border-color: transparent #FFFFFF transparent transparent;
3542            }
3543            
3544            /* Bubble from user (mine) */
3545            .chat-message.mine .chat-message-bubble {
3546                background: #D8FBFF; /* Light cyan for user messages */
3547                border-radius: 8px 0 8px 8px;
3548            }
3549            
3550            /* Bubble tail for mine */
3551            .chat-message.mine .chat-message-bubble::before {
3552                content: '';
3553                position: absolute;
3554                top: 0;
3555                right: -8px;
3556                width: 0;
3557                height: 0;
3558                border-style: solid;
3559                border-width: 0 0 13px 8px;
3560                border-color: transparent transparent transparent #D8FBFF;
3561            }
3562            
3563            .message-sender {
3564                font-size: 12.5px;
3565                font-weight: 600;
3566                color: #a67f12 !important;
3567                margin-bottom: 4px;
3568            }
3569            
3570            .chat-message.mine .message-sender {
3571                display: none;
3572            }
3573            
3574            /* Message text */
3575            .message-text {
3576                font-size: 14px;
3577                line-height: 19px;
3578                color: #000000 !important;
3579                word-wrap: break-word;
3580                white-space: pre-wrap;
3581                margin-bottom: 4px;
3582            }
3583            
3584            /* Message metadata (time + status) */
3585            .message-meta {
3586                display: flex;
3587                align-items: center;
3588                justify-content: flex-end;
3589                gap: 4px;
3590                margin-top: 2px;
3591            }
3592            
3593            .message-time {
3594                font-size: 11px;
3595                color: #8b7f64 !important;
3596                line-height: 15px;
3597            }
3598            
3599            /* Use multiple selectors to override global styles */
3600            .chat-message-bubble .message-status,
3601            .message-meta .message-status,
3602            .chat-message .message-status {
3603                width: 16px !important;
3604                height: 16px !important;
3605                min-width: 16px !important;
3606                min-height: 16px !important;
3607                max-width: 16px !important;
3608                max-height: 16px !important;
3609                flex-shrink: 0;
3610                color: #8b7f64 !important;
3611                fill: currentColor !important;
3612            }
3613            
3614            .chat-message:not(.mine) .message-status {
3615                display: none;
3616            }
3617            
3618            /* Loading dots animation */
3619            @keyframes loadingDots {
3620                0%, 20% { content: '.'; }
3621                40% { content: '..'; }
3622                60%, 100% { content: '...'; }
3623            }
3624            
3625            .message-status.loading::after {
3626                content: '...';
3627                animation: loadingDots 1.5s infinite;
3628                font-size: 16px;
3629                line-height: 16px;
3630            }
3631            
3632            .message-status.loading path {
3633                display: none;
3634            }
3635            
3636            .message-status.failed {
3637                color: #ef4444 !important;
3638                cursor: pointer;
3639            }
3640            
3641            .message-status.sent {
3642                color: #475569 !important;
3643            }
3644            
3645            .chat-new-form {
3646                flex: 1;
3647                overflow-y: auto;
3648                padding: 16px;
3649                display: flex;
3650                flex-direction: column;
3651            }
3652            
3653            .chat-new-form form {
3654                display: flex;
3655                flex-direction: column;
3656                gap: 16px;
3657                flex: 1;
3658            }
3659            
3660            .chat-new-form .form-group {
3661                display: flex;
3662                flex-direction: column;
3663                gap: 6px;
3664            }
3665            
3666            .chat-new-form label {
3667                font-size: 14px;
3668                font-weight: 500;
3669                color: #374151;
3670            }
3671            
3672            .chat-new-form .form-control {
3673                width: 100%;
3674                padding: 10px 12px;
3675                border: 1px solid #d1d5db;
3676                border-radius: 8px;
3677                font-size: 14px;
3678                font-family: inherit;
3679                transition: border-color 0.2s;
3680                box-sizing: border-box;
3681            }
3682            
3683            .chat-new-form .form-control:focus {
3684                outline: none;
3685                border-color: #a67f12;
3686                box-shadow: 0 0 0 3px rgba(18, 118, 166, 0.1);
3687            }
3688            
3689            .chat-new-form textarea.form-control {
3690                resize: vertical;
3691                min-height: 100px;
3692            }
3693            
3694            .chat-new-form .btn {
3695                padding: 12px 20px;
3696                border: none;
3697                border-radius: 8px;
3698                font-size: 15px;
3699                font-weight: 500;
3700                cursor: pointer;
3701                transition: all 0.2s;
3702                text-align: center;
3703            }
3704            
3705            .chat-new-form .btn-primary {
3706                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3707                color: white;
3708            }
3709            
3710            .chat-new-form .btn-primary:hover {
3711                transform: translateY(-1px);
3712                box-shadow: 0 4px 8px rgba(18, 118, 166, 0.3);
3713            }
3714            
3715            .chat-new-form .btn-primary:active {
3716                transform: scale(0.98);
3717            }
3718            
3719            .chat-new-form .btn-block {
3720                width: 100%;
3721                margin-top: auto;
3722            }
3723            
3724            .chat-message-form {
3725                padding: 12px;
3726                border-top: 1px solid #e5e7eb;
3727                display: flex;
3728                flex-wrap: wrap;
3729                gap: 8px;
3730                align-items: flex-end;
3731                flex-shrink: 0;
3732                background: white;
3733            }
3734            
3735            .chat-product-card {
3736                flex: 1 1 100%;
3737                max-width: 100%;
3738                display: flex;
3739                gap: 12px;
3740                padding: 12px;
3741                background: #f3f4f6;
3742                border-radius: 8px;
3743                margin-bottom: 4px;
3744                border: 1px solid #e5e7eb;
3745            }
3746            
3747            .chat-product-card img {
3748                width: 60px;
3749                height: 60px;
3750                object-fit: cover;
3751                border-radius: 6px;
3752                flex-shrink: 0;
3753            }
3754            
3755            .chat-product-card-content {
3756                flex: 1;
3757                min-width: 0;
3758            }
3759            
3760            .chat-product-card-name {
3761                font-weight: 500;
3762                font-size: 14px;
3763                color: #1f2937;
3764                margin-bottom: 4px;
3765                white-space: nowrap;
3766                overflow: hidden;
3767                text-overflow: ellipsis;
3768            }
3769            
3770            .chat-product-card-variant {
3771                font-size: 12px;
3772                color: #8b7f64;
3773                margin-bottom: 4px;
3774            }
3775            
3776            .chat-product-card-price {
3777                font-size: 13px;
3778                color: #a67f12;
3779                font-weight: 600;
3780            }
3781            
3782            .chat-product-card-remove {
3783                align-self: flex-start;
3784                background: none;
3785                border: none;
3786                color: #9ca3af;
3787                cursor: pointer;
3788                padding: 4px;
3789                font-size: 18px;
3790                line-height: 1;
3791                transition: color 0.2s;
3792            }
3793            
3794            .chat-product-card-remove:hover {
3795                color: #ef4444;
3796            }
3797            
3798            /* Product card in messages (read-only display) */
3799            .message-product-card {
3800                display: flex;
3801                gap: 10px;
3802                padding: 10px;
3803                background: rgba(255, 255, 255, 0.5);
3804                border-radius: 8px;
3805                margin-bottom: 6px;
3806                border: 1px solid rgba(0, 0, 0, 0.08);
3807                align-items: center;
3808            }
3809            
3810            .chat-message.mine .message-product-card {
3811                background: rgba(255, 255, 255, 0.7);
3812            }
3813            
3814            .message-product-card img {
3815                width: 50px;
3816                height: 50px;
3817                object-fit: cover;
3818                border-radius: 6px;
3819                flex-shrink: 0;
3820            }
3821            
3822            .message-product-info {
3823                flex: 1;
3824                min-width: 0;
3825            }
3826            
3827            .message-product-name {
3828                font-weight: 500;
3829                font-size: 13px;
3830                color: #1F2937;
3831                margin-bottom: 2px;
3832                overflow: hidden;
3833                text-overflow: ellipsis;
3834                display: -webkit-box;
3835                -webkit-line-clamp: 2;
3836                -webkit-box-orient: vertical;
3837                line-height: 1.3;
3838            }
3839            
3840            .message-product-variant {
3841                font-size: 11px;
3842                color: #8b7f64;
3843                margin-bottom: 2px;
3844            }
3845            
3846            .message-product-price {
3847                font-size: 12px;
3848                color: #a67f12;
3849                font-weight: 600;
3850            }
3851            
3852            .message-product-link {
3853                flex-shrink: 0;
3854                width: 32px;
3855                height: 32px;
3856                display: flex;
3857                align-items: center;
3858                justify-content: center;
3859                background: rgba(18, 118, 166, 0.1);
3860                border-radius: 6px;
3861                color: #a67f12;
3862                text-decoration: none;
3863                transition: all 0.2s;
3864            }
3865            
3866            .message-product-link:hover {
3867                background: #a67f12;
3868                color: white;
3869            }
3870            
3871            .message-product-link svg {
3872                width: 16px;
3873                height: 16px;
3874            }
3875            
3876            .chat-message-input {
3877                flex: 1;
3878                border: 1px solid #d1d5db;
3879                border-radius: 20px;
3880                padding: 10px 16px;
3881                resize: none;
3882                max-height: 100px;
3883                font-family: inherit;
3884                font-size: 14px;
3885                line-height: 1.5;
3886                box-sizing: border-box;
3887                overflow-y: hidden;
3888            }
3889            
3890            .chat-message-input:focus {
3891                outline: none;
3892                border-color: #a67f12;
3893                box-shadow: 0 0 0 3px rgba(18, 118, 166, 0.1);
3894            }
3895            
3896            .chat-send-btn {
3897                width: 40px;
3898                height: 40px;
3899                border-radius: 50%;
3900                background: linear-gradient(135deg, #a67f12 0%, #2e200a 100%);
3901                border: none;
3902                color: white;
3903                cursor: pointer;
3904                flex-shrink: 0;
3905                display: flex;
3906                align-items: center;
3907                justify-content: center;
3908                transition: all 0.2s;
3909            }
3910            
3911            .chat-send-btn:hover {
3912                transform: scale(1.05);
3913                box-shadow: 0 2px 8px rgba(18, 118, 166, 0.3);
3914            }
3915            
3916            .chat-send-btn:active {
3917                transform: scale(0.95);
3918            }
3919            
3920            .chat-loading {
3921                text-align: center;
3922                padding: 20px;
3923                color: #8b7f64;
3924            }
3925            
3926            /* Date Separator (WhatsApp-style) */
3927            .date-separator {
3928                display: flex;
3929                align-items: center;
3930                gap: 12px;
3931                margin: 24px 0 16px;
3932                opacity: 0;
3933                animation: fadeInSeparator 0.3s ease forwards;
3934            }
3935
3936            @keyframes fadeInSeparator {
3937                from {
3938                    opacity: 0;
3939                    transform: translateY(-10px);
3940                }
3941                to {
3942                    opacity: 1;
3943                    transform: translateY(0);
3944                }
3945            }
3946
3947            .date-separator-line {
3948                flex: 1;
3949                height: 1px;
3950                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
3951            }
3952
3953            .date-separator-text {
3954                flex-shrink: 0;
3955                padding: 4px 12px;
3956                background: #e9ecef;
3957                color: #8b7f64;
3958                font-size: 11px;
3959                font-weight: 600;
3960                text-transform: uppercase;
3961                letter-spacing: 0.5px;
3962                border-radius: 12px;
3963                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
3964            }
3965            
3966            /* Mobile responsive */
3967            @media (max-width: 640px) {
3968                .chat-popup {
3969                    position: fixed !important; /* Override absolute positioning */
3970                    bottom: 45px !important; /* Above bottom nav */
3971                    right: 0 !important;
3972                    left: 0 !important;
3973                    width: 100% !important;
3974                    max-width: 100% !important;
3975                    /* Use dvh (dynamic viewport height) for browser UI awareness */
3976                    height: calc(100dvh - 45px) !important;
3977                    max-height: calc(100dvh - 45px) !important;
3978                    /* Fallback for browsers that don't support dvh */
3979                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
3980                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
3981                    border-radius: 0 !important;
3982                    z-index: 9999 !important;
3983                }
3984                
3985                .chat-popup-header {
3986                    border-radius: 0;
3987                }
3988                
3989                .chat-messages-container,
3990                .chat-conversations-list {
3991                    /* Adjust for mobile keyboard using dynamic viewport */
3992                    max-height: calc(100dvh - 190px);
3993                    /* Fallback for browsers that don't support dvh */
3994                    max-height: calc(var(--viewport-height, 100vh) - 190px);
3995                }
3996            }
3997        </style>
3998                <!-- Chat Widget Button -->
3999        <div id="chat-widget" class="chat-widget" 
4000             data-user-id=""
4001             data-is-logged-in="false"
4002             data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
4003            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
4004                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
4005                    <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/>
4006                </svg>
4007                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
4008            </button>
4009            
4010            <div id="chat-popup" class="chat-popup" style="display: none;">
4011                <div class="chat-popup-header">
4012                    <div class="chat-header-title">
4013                        <h3>Bantuan</h3>
4014                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
4015                    </div>
4016                    <div class="chat-header-actions">
4017                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
4018                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
4019                                <path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"/>
4020                            </svg>
4021                        </button>
4022                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">
4022×</button>
4023                    </div>
4024                </div>
4025                
4026                <!-- Notification Info Bar (conditional) -->
4027                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
4028                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
4029                        <path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"/>
4030                    </svg>
4031                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
4032                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
4033                </div>
4034                
4035                <div class="chat-popup-body">
4036                    <!-- Conversations List View -->
4037                    <div id="chat-list-view" class="chat-view">
4038                        <div id="chat-conversations-list" class="chat-conversations-list">
4039                            <div class="chat-loading">Memuat...</div>
4040                            <!-- Conversation Item Structure (rendered by JS):
4041                            <div class="chat-conversation-item">
4042                                <div class="conversation-avatar">
4043                                    <svg>...</svg>
4044                                </div>
4045                                <div class="conversation-content">
4046                                    <div class="conversation-header">
4047                                        <span class="conversation-name">Admin Support</span>
4048                                        <span class="conversation-time">10:30</span>
4049                                    </div>
4050                                    <div class="conversation-preview">
4051                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
4052                                        <span class="conversation-unread">2</span>
4053                                    </div>
4054                                </div>
4055                            </div>
4056                            -->
4057                        </div>
4058                        <button id="chat-new-btn" class="chat-new-btn">
4059                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4060                                <line x1="12" y1="5" x2="12" y2="19"></line>
4061                                <line x1="5" y1="12" x2="19" y2="12"></line>
4062                            </svg>
4063                            Percakapan Baru
4064                        </button>
4065                    </div>
4066                    
4067                    <!-- Chat Messages View -->
4068                    <div id="chat-messages-view" class="chat-view" style="display: none;">
4069                        <div id="chat-messages-container" class="chat-messages-container">
4070                            <div class="chat-loading">Memuat pesan...</div>
4071                            <!-- Message Structure (rendered by JS):
4072                            <div class="chat-message"> (or .chat-message.mine)
4073                                <div class="chat-message-bubble">
4074                                    <div class="message-sender">Admin Support</div> (only for non-mine)
4075                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
4076                                    <div class="message-meta">
4077                                        <span class="message-time">10:30</span>
4078                                        <svg class="message-status">...</svg> (only for mine)
4079                                    </div>
4080                                </div>
4081                            </div>
4082                            -->
4083                        </div>
4084                        
4085                        <form id="chat-message-form" class="chat-message-form">
4086                            <input type="hidden" id="chat-current-conversation-id" value="">
4087                            <textarea 
4088                                id="chat-message-input" 
4089                                class="chat-message-input" 
4090                                placeholder="Ketik pesan..."
4091                                rows="1"
4092                                maxlength="5000"
4093                            ></textarea>
4094                            <button type="submit" class="chat-send-btn" aria-label="Send message">
4095                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4096                                    <line x1="22" y1="2" x2="11" y2="
409613"></line>
4097                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
4098                                </svg>
4099                            </button>
4100                        </form>
4101                    </div>
4102                    
4103                    <!-- New Chat View -->
4104                    <div id="chat-new-view" class="chat-view" style="display: none;">
4105                        <div class="chat-messages-header">
4106                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
4107                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4108                                    <path d="M19 12H5M12 19l-7-7 7-7"/>
4109                                </svg>
4110                            </button>
4111                            <div class="chat-conversation-title">Percakapan Baru</div>
4112                        </div>
4113                        
4114                        <div class="chat-new-form">
4115                            <form id="chat-start-form">
4116                                <div class="form-group">
4117                                    <label for="chat-new-subject">Subjek</label>
4118                                    <input 
4119                                        type="text" 
4120                                        id="chat-new-subject" 
4121                                        class="form-control" 
4122                                        placeholder="Bantuan Pelanggan"
4123                                        maxlength="255"
4124                                    >
4125                                </div>
4126                                <div class="form-group">
4127                                    <label for="chat-new-message">Pesan</label>
4128                                    <textarea 
4129                                        id="chat-new-message" 
4130                                        class="form-control" 
4131                                        rows="4" 
4132                                        placeholder="Tulis pertanyaan Anda..."
4133                                        required
4134                                        maxlength="5000"
4135                                    ></textarea>
4136                                </div>
4137                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
4138                            </form>
4139                        </div>
4140                    </div>
4141                </div>
4142            </div>
4143        </div>
4144        
4145        <!-- Login Required Modal -->
4146        <div class="modal-overlay" id="chatLoginModal">
4147            <div class="modal-dialog">
4148                <div class="modal-header">
4149                    <h3 class="modal-title">
4150                        <div class="modal-icon info">
4151                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4152                                <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/>
4153                            </svg>
4154                        </div>
4155                        Login Diperlukan
4156                    </h3>
4157                </div>
4158                <div class="modal-body">
4159                    <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
4160                    <div class="modal-actions">
4161                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
4162                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
4163                    </div>
4164                </div>
4165            </div>
4166        </div>
4167
4168  
4169    <!-- Footer Collapse Toggle Script -->
4170  
4170<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4171  document.addEventListener('DOMContentLoaded', function() {
4172    const ftTop = document.getElementById('ftTop');
4173    const expandBtn = document.getElementById('ftExpandBtn');
4174    
4175    if (ftTop && expandBtn) {
4176      const expandText = expandBtn.querySelector('.expand-text');
4177      
4178      expandBtn.addEventListener('click', function() {
4179        ftTop.classList.toggle('expanded');
4180        const isExpanded = ftTop.classList.contains('expanded');
4181        if (expandText) {
4182          expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
4183        }
4184      });
4185    }
4186  });
4187  </script>
4187
4188  </footer>
4189
4190<!-- Compare Sidebar Overlay -->
4191<div class="compare-overlay" id="compareOverlay"></div>
4192
4193<!-- Floating Compare Badge (Sticky) -->
4194<button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
4195  <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
4196    <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/>
4197  </svg>
4198  <span class="cfb-text">Bandingkan</span>
4199  <span class="cfb-count" id="cfbCount">0</span>
4200</button>
4201
4202<!-- AI Comparison Modal -->
4203<div class="ai-compare-modal" id="aiCompareModal">
4204  <div class="modal-backdrop"></div>
4205  <div class="modal-container">
4206    <div class="modal-header">
4207      <h3 class="modal-title">
4208        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
4209          <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"/>
4210        </svg>
4211        Analisis AI: Perbandingan Produk
4212      </h3>
4213      <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
4214        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4215          <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"/>
4216        </svg>
4217      </button>
4218    </div>
4219    
4220    <div class="modal-content">
4221      <!-- Loading State -->
4222      <div class="ai-loading" id="aiLoading">
4223        <div class="loading-animation">
4224          <div class="typing-indicator">
4225            <span></span>
4226            <span></span>
4227            <span></span>
4228          </div>
4229          <p>AI sedang menganalisis produk...</p>
4230          <small>Proses ini membutuhkan waktu 10-30 detik</small>
4231        </div>
4232      </div>
4233      
4234      <!-- Error State -->
4235      <div class="ai-error" id="aiError" hidden>
4236        <div class="error-icon">
4237          <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
4238            <path d="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"/>
4239          </svg>
4240        </div>
4241        <h4>Analisis AI Gagal</h4>
4242        <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
4243        <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
4244      </div>
4245      
4246      <!-- Analysis Results -->
4247      <div class="ai-results" id="aiResults" hidden>
4248        <!-- Summary Section -->
4249        <div class="ai-summary-card">
4250          <h4>
4251            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4252              <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,16.5L6.5,12L7.91,10.59L11,13.67L16.59,8.09L18,9.5L11,16.5Z"/>
4253            </svg>
4254            Ringkasan Analisis
4255          </h4>
4256          <p id="aiSummary" class="summary-text"></p>
4257          <div class="winner-badge" id="winnerBadge">
4258            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
4259            <small id="winnerReason"></small>
4260          </div>
4261        </div>
4262        
4263        <!-- Comparison Table -->
4264        <div class="ai-comparison-table">
4265          <h4>
4266            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4267              <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"/>
4268            </svg>
4269            Perbandingan Detail
4270          </h4>
4271          <div id="comparisonTable" class="comparison-grid"></div>
4272        </div>
4273        
4274        <!-- Detailed Analysis -->
4275        <div class="ai-detailed-analysis">
4276          <h4>
4277            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4278              <path d="M14,2A8,8 0 0,1 22,10A8,8 0 0,1 14,18A8,8 0 0,1 6,10A8,8 0 0,1 14,2M14,4A6,6 0 0,0 8,10A6,6 0 0,0 14,16A6,6 0 0,0 20,10A6,6 0 0,0 14,4M14,6A4,4 0 0,1 18,10A4,4 0 0,1 14,14A4,4 0 0,1 10,10A4,4 0 0,1 14,6M14,8A2,2 0 0,0 12,10A2,2 0 0,0 14,12A2,2 0 0,0 16,10A2,2 0 0,0 14,8Z"/>
4279            </svg>
4280            Analisis Mendalam
4281          </h4>
4282          <div id="detailedAnalysis" class="products-analysis"></div>
4283        </div>
4284        
4285        <!-- Recommendations -->
4286        <div class="ai-recommendations">
4287          <h4>
4288            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4289              <path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"/>
4290            </svg>
4291            Rekomendasi Berdasarkan Kebutuhan
4292          </h4>
4293          <div class="recommendations-grid">
4294            <div class="recommendation-card">
4295              <h5>💰 Budget Conscious</h5>
4296              <p id="budgetRecommendation"></p>
4297            </div>
4298            <div class="recommendation-card">
4299              <h5>⚡ Performance Focused</h5>
4300              <p id="performanceRecommendation"></p>
4301            </div>
4302            <div class="recommendation-card">
4303              <h5>⚖️ Balanced Choice</h5>
4304              <p id="balancedRecommendation"></p>
4305            </div>
4306          </div>
4307        </div>
4308        
4309        <!-- Buying Tips -->
4310        <div class="ai-tips">
4311          <h4>
4312            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4313              <path d="M11,18H13V16H11V18M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6
4313M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z"/>
4314            </svg>
4315            Tips Pembelian
4316          </h4>
4317          <ul id="buyingTips" class="tips-list"></ul>
4318        </div>
4319      </div>
4320    </div>
4321  </div>
4322</div>
4323
4324<!-- Cart Login Modal -->
4325<div class="modal-overlay" id="cartLoginModal">
4326  <div class="modal-dialog">
4327    <div class="modal-header">
4328      <h3 class="modal-title">
4329        <div class="modal-icon info">
4330          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4331            <path d="M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z"/>
4332          </svg>
4333        </div>
4334        Login untuk Melanjutkan
4335      </h3>
4336    </div>
4337    <div class="modal-body">
4338      <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
4339      <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
4340        <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
4341          <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br>
4342          ✓ Simpan keranjang belanja Anda<br>
4343          ✓ Lacak status pesanan secara real-time<br>
4344          ✓ Checkout lebih cepat dengan data tersimpan<br>
4345          ✓ Dapatkan notifikasi promo & diskon eksklusif
4346        </p>
4347      </div>
4348      <div class="modal-actions">
4349        <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
4350        <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
4351        <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
4352      </div>
4353    </div>
4354  </div>
4355</div>
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366<style>
4367/* =========================================================
4368   🟢 FIXED FOOTER – ELITE MODE (SPIN189)
4369   ========================================================= */
4370
4371.nay-red-fixed-footer {
4372  position: fixed;
4373  left: 0; right: 0; bottom: 0;
4374  z-index: 999;
4375
4376  display: flex;
4377  align-items: center;
4378  justify-content: space-around;
4379  gap: 8px;
4380
4381  padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
4382  overflow: hidden;
4383
4384  /* Background Navy Blue + Hitam */
4385  background: 
4386    radial-gradient(circle at 50% 0%, rgba(166, 89, 18, 0.25), rgba(20, 10, 4, 0.95) 60%, rgba(0, 0, 0, 1)),
4387    linear-gradient(180deg, rgba(10, 27, 46, 0.9), rgba(0, 0, 0, 1));
4388
4389  border-top: 2px solid rgba(166, 72, 18, 0.7);
4390  border-radius: 20px 20px 0 0;
4391
4392  box-shadow: 
4393    0 -12px 35px rgba(166, 102, 18, 0.25), 
4394    inset 0 1px 0 rgba(255, 255, 255, 0.1);
4395
4396  font-family: "Orbitron", "Poppins", sans-serif;
4397}
4398
4399/* 🌀 Scanline Halus */
4400.nay-red-fixed-footer::before {
4401  content: "";
4402  position: absolute;
4403  inset: 0;
4404  pointer-events: none;
4405  background: repeating-linear-gradient(
4406    0deg,
4407    rgba(18, 118, 166, 0.04),
4408    rgba(18, 118, 166, 0.04) 1px,
4409    transparent 1px,
4410    transparent 4px
4411  );
4412  opacity: 0.8;
4413  mix-blend-mode: overlay;
4414}
4415
4416/* ⚡ Green Sweep (Changed to Teal/Cyan Sweep) */
4417.nay-red-fixed-footer::after {
4418  content: "";
4419  position: absolute;
4420  top: 0; left: -160%;
4421  width: 60%; height: 100%;
4422  background: linear-gradient(120deg, transparent, rgba(18, 118, 166, 0.4), transparent);
4423  transform: skewX(-25deg);
4424  animation: tealShine 4s infinite;
4425  pointer-events: none;
4426}
4427
4428@keyframes tealShine {
4429  0% { left: -160%; }
4430  60% { left: 160%; }
4431  100% { left: 160%; }
4432}
4433
4434/* =========================================================
4435   ITEM STYLE
4436   ========================================================= */
4437
4438.nay-red-fixed-footer a {
4439  flex: 1;
4440  max-width: 110px;
4441  display: flex;
4442  flex-direction: column;
4443  align-items: center;
4444  justify-content: center;
4445  gap: 5px;
4446  padding: 8px 4px;
4447  text-decoration: none;
4448  text-align: center;
4449  color: rgba(255, 249, 216, 0.9);
4450  font-size: 11px;
4451  font-weight: 800;
4452  text-transform: uppercase;
4453  transition: all 0.2s ease;
4454  position: relative;
4455}
4456
4457.nay-red-fixed-footer a:hover {
4458  color: #ffffff;
4459  filter: drop-shadow(0 0 8px rgba(166, 107, 18, 0.9));
4460  transform: translateY(-2px);
4461}
4462
4463.nay-red-fixed-footer img {
4464  width: 24px;
4465  height: 24px;
4466  filter: drop-shadow(0 0 6px rgba(166, 114, 18, 0.7));
4467  transition: transform 0.2s ease;
4468}
4469
4470/* =========================================================
4471   CENTER CTA – CORE
4472   ========================================================= */
4473
4474.nay-red-fixed-footer .core-cta {
4475  background: rgba(166, 107, 18, 0.15);
4476  border: 1px solid rgba(166, 114, 18, 0.7);
4477  border-radius: 12px;
4478  box-shadow: 
4479    0 0 15px rgba(166, 131, 18, 0.35),
4480    inset 0 0 10px rgba(166, 131, 18, 0.25);
4481  transform: scale(1.05);
4482}
4483
4484.nay-red-fixed-footer .core-cta img {
4485  width: 28px;
4486  height: 28px;
4487  filter: drop-shadow(0 0 12px rgba(166, 102, 18));
4488}
4489
4490/* Pulse Effect */
4491.nay-red-fixed-footer .core-cta::before {
4492  content: "";
4493  position: absolute;
4494  inset: -5px;
4495  border-radius: 15px;
4496  background: radial-gradient(circle, rgba(18, 118, 166, 0.35), transparent 70%);
4497  animation: tealPulse 2s ease-in-out infinite;
4498  z-index: -1;
4499}
4500
4501@keyframes tealPulse {
4502  0%, 100% { opacity: 0.4; transform: scale(1); }
4503  50% { opacity: 0.85; transform: scale(1.1); }
4504}
4505
4506/* =========================================================
4507   RESPONSIVE
4508   ========================================================= */
4509@media (max-width: 400px) {
4510  .nay-red-fixed-footer a { font-size: 10px; }
4511  .nay-red-fixed-footer img { width: 20px; height: 20px; }
4512  .nay-red-fixed-footer .core-cta img { width: 24px; height: 24px; }
4513}
4514</style>
4515
4516<div class="nay-red-fixed-footer">
4517  <a href="https://emetaltrade.com/amp/" target="_blank" rel="nofollow noopener">
4518    <img src="https://emetaltrade.com/images/favicon.webp" alt="BONUS SPIN189">
4519    PROMO
4520  </a>
4521  
4522  <a href="https://emetaltrade.com/amp/" target="_blank" rel="nofollow noopener">
4523    <img src="https://emetaltrade.com/images/favicon.webp" alt="TELEGRAM SPIN189">
4524    TELEGRAM
4525  </a>
4526
4527  <a href="https://emetaltrade.com/amp/" target="_blank" rel="nofollow noopener" class="core-cta">
4528    <img src="https://emetaltrade.com/images/favicon.webp" alt="DAFTAR SPIN189">
4529    DAFTAR
4530  </a>
4531
4532  <a href="https://emetaltrade.com/amp/" target="_blank" rel="nofollow noopener">
4533    <img src="https://emetaltrade.com/images/favicon.webp" alt="RTP SPIN189">
4534    RTP
4535  </a>
4536
4537  <a href="https://emetaltrade.com/amp/" target="_blank" rel="nofollow noopener">
4538    <img src="https://emetaltrade.com/images/favicon.webp" alt="LIVECHAT SPIN189">
4539    LIVECHAT
4540  </a>
4541</div>
4542<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"36c9020aa89c44dfb12c7ff1d60c014d","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 4542
4542
4543<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"3acdaa69e4424c8daec6309daffaac51","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 4543
4543
4544<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"3acdaa69e4424c8daec6309daffaac51","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
4544
4545</body>
4546</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.