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 & 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 & 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 — 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=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[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 & 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 & Pengembalian</a></li> 2971 <li><a href="https://emetaltrade.com/">Pembayaran & Cicilan</a></li> 2972 <li><a href="https://emetaltrade.com/">Garansi & 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 © <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.