1<!DOCTYPE html> 2<html lang="id"><head> 3 4 <title>88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!</title> 5 <meta name="robots" content="index,follow"> 6 <link rel="canonical" href="https://88megagacor.com/"> 7 <link rel="amphtml" href="https://gogo.88megagacor.one/back/"> 8 <link rel="alternate" hreflang="id-id" href="https://gogo.88megagacor.one/back/"/> 9 <link rel="alternate" href="https://gogo.88megagacor.one/back/"/> 10 <link rel="alternate" hreflang="id" href="https://gogo.88megagacor.one/back/"/> 11 <link rel="alternate" hreflang="en" href="https://gogo.88megagacor.one/back/"/> 12 <link rel="alternate" hreflang="x-default" href="https://gogo.88megagacor.one/back/"/> 13 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 14
14<script 15 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>
15 16 <meta property="og:locale" content="id_ID"> 17 <meta property="og:site_name" content="88MEGA MAXWIN"> 18 <meta property="og:type" content="product"> 19 <meta property="og:title" content="88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!"> 20 <meta property="og:description" 21 content="Selamat datang di 88MEGA Gacor, destinasi utama para pecinta game slot online yang mengutamakan keseruan, keamanan, dan peluang menang maksimal!"> 22 <meta property="og:url" content="https://88megagacor.com/"> 23 <meta property="og:image" content="/image.png"> 24 <meta property="og:image:alt" content="88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!"> 25 <meta property="product:price:amount" content="5000"> 26 <meta property="product:price:currency" content="IDR"> 27 <meta property="product:availability" content="out of stock"> 28 <meta name="keywords" content="88MEGA 88MEGA LOGIN" /> 29 <meta name="twitter:card" content="summary_large_image"> 30 <meta name="twitter:title" content="88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!"> 31 <meta name="twitter:description" 32 content="Selamat datang di 88MEGA Gacor, destinasi utama para pecinta game slot online yang mengutamakan keseruan, keamanan, dan peluang menang maksimal!"> 33 <meta name="twitter:image" content="/image.png"> 34 <link rel="icon" type="image/png" href="/88megaicon.webp"> 35 <meta name="google-site-verification" content="-BWoj3fikODRY-E6e0RP8Gsoaayk26iP6VVV5ca14II" /> 36 <meta name="google-site-verification" content="mSjkewbb_m_MOLfGa0gg8pDFO03CVr-7k4V9B5HJMzs" /> 37 <meta name="google-site-verification" content="X56V5iIKkMXXvSTbj-6kRsZvic90WYsekyWscMZV7PQ" /> 38 39
39<script type="application/ld+json"> 40{ 41 "@context": "https://schema.org", 42 "@type": "WebSite", 43 "@id": "/#website", 44 "url": "https://88megagacor.com/", 45 "name": "88MEGA", 46 "inLanguage": "id", 47 "potentialAction": { 48 "@type": "SearchAction", 49 "target": "https://88megagacor.com/", 50 "query-input": "required name=search_term_string" 51 } 52} 53</script>
53 54 55
55<script type="application/ld+json"> 56{ 57 "@context": "https://schema.org", 58 "@type": "Organization", 59 "@id": "/#organization", 60 "name": "88MEGA", 61 "url": "https://88megagacor.com/", 62 "logo": "/88megalogo.webp" 63} 64</script>
64 65 66
66<script type="application/ld+json"> 67{ 68 "@context": "https://schema.org", 69 "@type": "Product", 70 "name": "88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!", 71 "sku": "1S83N0880RID", 72 "image": [ 73 "/image.png" 74 ], 75 "url": "https://88megagacor.com/", 76 "description": "88MEGA menyediakan informasi link akses bandar togel online dan Toto Macau. Temukan informasi yang tersusun rapi, akses melalui perangkat desktop maupun mobile, serta layanan pelanggan yang tersedia selama 24 jam.", 77 "category": "88MEGA", 78 "brand": { 79 "@type": "Brand", 80 "name": "88MEGA" 81 }, 82 "offers": { 83 "@type": "Offer", 84 "url": "https://88megagacor.com/", 85 "priceCurrency": "IDR", 86 "price": "5000", 87 "priceValidUntil": "2027-03-01", 88 "availability": "https://schema.org/OutOfStock", 89 "itemCondition": "https://schema.org/NewCondition", 90 "seller": { 91 "@type": "Organization", 92 "name": "88MEGA", 93 "url": "https://88megagacor.com/" 94 }, 95 "shippingDetails": { 96 "@type": "OfferShippingDetails", 97 "shippingDestination": { 98 "@type": "DefinedRegion", 99 "addressCountry": "ID" 100 }, 101 "shippingRate": { 102 "@type": "MonetaryAmount", 103 "value": "0", 104 "currency": "IDR" 105 }, 106 "deliveryTime": { 107 "@type": "ShippingDeliveryTime", 108 "handlingTime": { 109 "@type": "QuantitativeValue", 110 "minValue": 0, 111 "maxValue": 1, 112 "unitCode": "DAY" 113 }, 114 "transitTime": { 115 "@type": "QuantitativeValue", 116 "minValue": 1, 117 "maxValue": 5, 118 "unitCode": "DAY" 119 } 120 } 121 }, 122 "hasMerchantReturnPolicy": { 123 "@type": "MerchantReturnPolicy", 124 "applicableCountry": "ID", 125 "returnPolicyCategory": "https://schema.org/MerchantReturnNotPermitted" 126 } 127}, 128"aggregateRating": { 129 "@type": "AggregateRating", 130 "ratingValue": "5", 131 "reviewCount": "6", 132 "bestRating": "5", 133 "worstRating": "1" 134}, 135 "review": [ 136 { 137 "@type": "Review", 138 "author": { 139 "@type": "Person", 140 "name": "Kevin Surya" 141 }, 142 "reviewBody": "Saya sudah bergabung dengan 88MEGA selama beberapa bulan dan hasilnya sangat memuaskan. Proses deposit dan withdraw cepat serta permainan yang adil membuat saya betah bermain.", 143 "reviewRating": { 144 "@type": "Rating", 145 "ratingValue": "5", 146 "bestRating": "5", 147 "worstRating": "1" 148 } 149 }, 150 { 151 "@type": "Review", 152 "author": { 153 "@type": "Person", 154 "name": "Adrian Wijaya" 155 }, 156 "reviewBody": "Awalnya ragu karena portal game online sering terdengar mencurigakan. Namun setelah mencoba 88MEGA saya melihat potensi jackpot yang nyata. Sangat direkomendasikan untuk pemula.", 157 "reviewRating": { 158 "@type": "Rating", 159 "ratingValue": "5", 160 "bestRating": "5", 161 "worstRating": "1" 162 } 163 }, 164 { 165 "@type": "Review", 166 "author": { 167 "@type": "Person", 168 "name": "Denny Saputra" 169 }, 170 "reviewBody": " Yang saya suka dari 88MEGA adalah adanya data statistik permainan yang lengkap. Saya bisa menganalisis sebelum bermain sehingga keputusan yang diambil lebih matang dan terencana.", 171 "reviewRating": { 172 "@type": "Rating", 173 "ratingValue": "5", 174 "bestRating": "5", 175 "worstRating": "1" 176 } 177 }, 178 { 179 "@type": "Review", 180 "author": { 181 "@type": "Person", 182 "name": "Farhan Wibowo" 183 }, 184 "reviewBody": "Layanan pelanggan 88MEGA sangat membantu saat saya mengalami kendala teknis. Responnya cepat dan solusi yang diberikan tepat sasaran. Ini penting bagi pengguna yang serius.", 185 "reviewRating": { 186 "@type": "Rating", 187 "ratingValue": "5", 188 "bestRating": "5", 189 "worstRating": "1" 190 } 191 }, 192 { 193 "@type": "Review", 194 "author": { 195 "@type": "Person", 196 "name": "Michael Tan" 197 }, 198 "reviewBody": "Navigasi antarmuka situs sangat mudah dipahami bahkan untuk pemain pemula. Layanan bantuan pengelola juga sangat cepat memberikan panduan lengkap saat saya mengalami pertanyaan seputar fitur terbaru permainan.", 199 "reviewRating": { 200 "@type": "Rating", 201 "ratingValue": "5", 202 "bestRating": "5", 203 "worstRating": "1" 204 } 205 }, 206 { 207 "@type": "Review", 208 "author": { 209 "@type": "Person", 210 "name": "Riko Prasetyo" 211 }, 212 "reviewBody": "Kecepatan akses server dan pembaruan sistem yang rutin membuat platform ini layak menjadi pilihan utama. Sangat direkomendasikan bagi siapa saja yang mencari sarana hiburan game online bermutu tinggi di Indonesia.", 213 "reviewRating": { 214 "@type": "Rating", 215 "ratingValue": "5", 216 "bestRating": "5", 217 "worstRating": "1" 218 } 219 } 220 ] 221} 222</script>
222 223 224
224<script type="application/ld+json"> 225{ 226 "@context": "https://schema.org", 227 "@type": "BreadcrumbList", 228 "itemListElement": [ 229 { 230 "@type": "ListItem", 231 "position": 1, 232 "name": "88MEGA", 233 "item": "https://88megagacor.com/" 234 }, 235 { 236 "@type": "ListItem", 237 "position": 2, 238 "name": "ONLINE", 239 "item": "https://88megagacor.com/" 240 }, 241 { 242 "@type": "ListItem", 243 "position": 3, 244 "name": "Link Akses 88MEGA", 245 "item": "https://88megagacor.com/" 246 }, 247 { 248 "@type": "ListItem", 249 "position": 4, 250 "name": "Pelayanan Meditasi", 251 "item": "https://88megagacor.com/" 252 }, 253 { 254 "@type": "ListItem", 255 "position": 5, 256 "name": "Toto Macau 88MEGA GAMPANG MAXWIN", 257 "item": "https://88megagacor.com/" 258 } 259 ] 260} 261</script>
261 262 263 264
264<script type="application/ld+json"> 265{ 266 "@context": "https://schema.org", 267 "@type": "FAQPage", 268 "mainEntity": [ 269 { 270 "@type": "Question", 271 "name": "Apa itu 88MEGA dan apa saja layanan yang ditawarkan?", 272 "acceptedAnswer": { 273 "@type": "Answer", 274 "text": "88MEGA adalah sebuah portal game online yang menghubungkan pemain dengan berbagai permainan digital populer dan terviral saat ini. Platform ini menawarkan akses ke ratusan game dari penyedia terkemuka yang telah terverifikasi kualitasnya. Setiap permainan yang tersedia di 88MEGA telah melalui proses kurasi ketat untuk memastikan keadilan dan keamanan. Pemain dapat menikmati berbagai kategori game mulai dari yang klasik hingga paling modern. 88MEGA juga menyediakan informasi lengkap tentang setiap game termasuk tingkat kesulitan dan potensi jackpot. Dengan demikian pemain dapat memilih permainan yang paling sesuai dengan preferensi mereka." 275 } 276 }, 277 { 278 "@type": "Question", 279 "name": "Apakah 88MEGA aman digunakan untuk bermain game online?", 280 "acceptedAnswer": { 281 "@type": "Answer", 282 "text": "Keamanan merupakan aspek yang sangat diperhatikan oleh 88MEGA dalam setiap layanannya. Portal ini menggunakan sistem enkripsi terkini untuk melindungi data pribadi dan riwayat transaksi pengguna. 88MEGA juga hanya bekerja sama dengan penyedia game yang memiliki lisensi resmi dan reputasi baik di industri. Proses verifikasi akun dilakukan secara ketat untuk mencegah penyalahgunaan oleh pihak tidak bertanggung jawab. Banyak pengguna yang telah menggunakan 88MEGA selama bertahun-tahun tanpa mengalami kendala berarti. Mereka menganggap portal ini cukup terpercaya untuk pengalaman bermain game online jangka panjang." 283 } 284 }, 285 { 286 "@type": "Question", 287 "name": "Berapa modal minimum yang diperlukan untuk bergabung di 88MEGA?", 288 "acceptedAnswer": { 289 "@type": "Answer", 290 "text": "88MEGA menawarkan fleksibilitas dalam hal biaya akses dan deposit awal untuk pemain baru. Anda bisa memulai dengan nominal yang sangat terjangkau untuk mencoba berbagai permainan yang tersedia. Hal ini bertujuan untuk memberikan akses seluas-luasnya bagi semua kalangan masyarakat. Namun perlu diingat bahwa potensi jackpot biasanya sebanding dengan tingkat komitmen dan strategi bermain yang diterapkan. Untuk pemula disarankan memulai dengan jumlah kecil terlebih dahulu sambil mempelajari pola permainan. Setelah memahami sistem dan aturan, Anda dapat meningkatkan nominal secara bertahap sesuai kemampuan. Panduan lengkap mengenai biaya tersedia di halaman bantuan 88MEGA." 291 } 292 }, 293 { 294 "@type": "Question", 295 "name": "Bagaimana cara menarik jackpot atau hasil kemenangan dari 88MEGA?", 296 "acceptedAnswer": { 297 "@type": "Answer", 298 "text": "Proses penarikan hasil kemenangan di 88MEGA tergolong cepat dan mudah untuk semua pengguna. Anda hanya perlu masuk ke akun pribadi dan memilih opsi penarikan dana yang tersedia. Kemudian tentukan jumlah yang ingin dicairkan sesuai dengan saldo yang dimiliki. Dana akan ditransfer ke rekening bank atau dompet digital yang telah terdaftar sebelumnya. Waktu pemrosesan biasanya berkisar antara beberapa jam hingga satu hari kerja maksimal. 88MEGA tidak memungut biaya tambahan untuk proses penarikan dana ini. Pastikan data rekening Anda sudah benar untuk menghindari keterlambatan atau kesalahan transfer." 299 } 300 }, 301 { 302 "@type": "Question", 303 "name": " Apakah ada strategi khusus untuk meraih jackpot di 88MEGA?", 304 "acceptedAnswer": { 305 "@type": "Answer", 306 "text": "Meskipun hasil permainan bersifat acak dan tidak dapat diprediksi, ada beberapa pendekatan yang bisa meningkatkan peluang Anda. 88MEGA menyediakan fitur analisis untuk memantau tren permainan yang sedang populer. Anda juga bisa mempelajari pola dari pemain lain melalui forum komunitas yang tersedia. Manajemen modal dan waktu yang baik sangat dianjurkan agar tidak kehilangan fokus. Disarankan untuk tidak mengejar kerugian dengan meningkatkan taruhan secara gegabah. Konsistensi dan kesabaran sering kali membawa hasil yang lebih baik dalam jangka panjang. Evaluasi rutin terhadap strategi yang digunakan juga sangat membantu meningkatkan peluang jackpot." 307 } 308 }, 309 { 310 "@type": "Question", 311 "name": "Apa yang membedakan 88MEGA dengan portal game online lainnya?",
312 "acceptedAnswer": { 313 "@type": "Answer", 314 "text": "Keunggulan utama 88MEGA terletak pada pendekatannya yang terstruktur dan transparan dalam menyajikan game. Bukan sekadar menyediakan akses biasa, tetapi ada elemen edukasi dan panduan yang jelas untuk pemain. 88MEGA juga rutin memberikan bonus dan promosi menarik bagi pengguna setia setiap minggunya. Layanan pelanggannya responsif dan siap membantu 24 jam sehari penuh. Selain itu transparansi dalam hal aturan dan peluang kemenangan membuat pemain lebih percaya diri. Kombinasi faktor inilah yang membuat 88MEGA berbeda dan diminati banyak orang dari berbagai kalangan." 315 } 316 } 317 ] 318} 319</script>
319 320 321 <!-- User Session Data --> 322 <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc"> 323 <meta name="user-logged-in" content="false"> 324 <meta name="user-id" content="0"> 325 326 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 327 328 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/style.css"> 329 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/bottom-nav.css"> 330 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/search-suggest.css"> 331 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-detail.css"> 332 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-grid.css"> 333 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/site-notice.css"> 334 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/benchmark.css"> 335 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-filters.css"> 336 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/mega-menu-tiles.css"> 337 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-compare.css"> 338 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-card-actions.css"> 339 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/modal.css"> 340 341 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/reviews-points.css"> 342 343</head> 344 345<body> 346 <header class="topbar"> 347 <div class="container topbar-inner"> 348 <div class="topbar-left"> 349 88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa! 350 </div> 351 <div class="topbar-right"> 352 <a href="https://88megagacor.com/">88MEGA</a> 353 <a href="https://88megagacor.com/">LINK ALTERNATIF 88MEGA</a> 354 <a href="https://88megagacor.com/">Daftar</a> 355 <a href="https://88megagacor.com/">Masuk</a> 356 </div> 357 </div> 358 </header> 359 <nav class="navbar"> 360 <nav class="navbar-logo" style="width: 100%;"> 361 <div class="container nav-inner" style="justify-items: center; justify-content: center;"> 362 <a href="/" class="logo-mobile"> 363 <img src="/88megalogo.webp" alt="88MEGA" height="100"> 364 </a> 365 </div> 366 </nav> 367 <div class="container nav-inner"> 368 <a href="/" class="logo"> 369 <img src="/88megalogo.webp" alt="88MEGA" height="100"> 370 </a> 371 372 373 <form class="search" method="get" action="#"> 374 <input type="hidden" name="page" value="produk"> 375 376 <!-- Search Icon (Desktop) --> 377 <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari"> 378 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 379 stroke-linecap="round" stroke-linejoin="round"> 380 <circle cx="11" cy="11" r="8" /></circle> 381 <path d="m21 21-4.35-4.35" /></path> 382 </svg> 383 </button> 384 385 <input type="text" name="q" id="searchInput" placeholder="Cari 88MEGA" value="" autocomplete="off"> 386 387 <div class="search-suggest" id="searchSuggest" hidden></div> 388 </form> 389 390 <div class="nav-actions"> 391 <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">ðŸââ</button>--> 392 <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang"> 393 ðŸâºâ <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span> 394 </button> 395 396 397 <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span> 398 399 400 <!-- Dynamic login/logout button --> 401 <button class="login-btn" id="loginBtn" aria-label="Masuk"> 402 <span class="login-text">Masuk</span> 403 <span class="login-ico" aria-hidden="true">ðŸËÅ </span> 404 </button> 405 </div> 406 </div> 407 408 <div class="container" style="display: flex; align-items: center;"> 409 410 411 <div class="mega-cats-wrapper"> 412 <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;"> 413 <a class="" href="https://gogo.88megagacor.one/back/"> 414 88MEGA </a> 415 <a class="" href="https://gogo.88megagacor.one/back/"> 416 88MEGA DAFTAR </a> 417 <a class="" href="https://gogo.88megagacor.one/back/"> 418 88MEGA LOGIN </a> 419 <a class="" href="https://gogo.88megagacor.one/back/"> 420 88MEGA SLOT GACOR </a> 421 <a class="" href="https://gogo.88megagacor.one/back/"> 422 88MEGA SLOT ONLINE </a> 423 <a class="" href="https://gogo.88megagacor.one/back/"> 424 LINK ALTERNATIF 88MEGA </a> 425 <a class="" href="https://gogo.88megagacor.one/back/"> 426 88MEGA TERPERCAYA </a> 427 </div> 428 <div class="mega-cats-fade" id="megaCatsFade" style="opacity: 1;"></div> 429 </div> 430 </div> 431 </nav> 432 433 <!-- Panel Mega Menu - Outside navbar for full-screen --> 434 <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori"> 435 <div class="mm2-view is-active" data-mm2="top"></div> 436 <div class="mm2-view" data-mm2="detail"></div> 437 </div> 438 439 <!-- Backdrop - Outside navbar for full-screen --> 440 <div class="mm2-backdrop" data-mm2="backdrop"></div> 441 442 <!-- Mobile Bottom Navigation --> 443 <nav class="bottom-nav"> 444 <div class="bottom-nav-inner"> 445 <!-- Home --> 446 <a href="/" class="bottom-nav-item active" id="bottomHomeBtn" data-page="home"> 447 <div class="bottom-nav-item-icon"> 448 <!-- Outlined icon (default) -->
449 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 450 stroke-linecap="round" stroke-linejoin="round"> 451 <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /></path> 452 <polyline points="9 22 9 12 15 12 15 22" /></polyline> 453 </svg> 454 <!-- Filled icon (active) --> 455 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 456 <path 457 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" /></path> 458 <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" /></path> 459 </svg> 460 </div> 461 <span class="bottom-nav-item-label">Home</span> 462 </a> 463 464 <!-- Kategori --> 465 <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori"> 466 <div class="bottom-nav-item-icon"> 467 <!-- Outlined icon (default) --> 468 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 469 stroke-linecap="round" stroke-linejoin="round"> 470 <line x1="3" y1="12" x2="21" y2="12" /></line> 471 <line x1="3" y1="6" x2="21" y2="6" /></line> 472 <line x1="3" y1="18" x2="21" y2="18" /></line> 473 </svg> 474 <!-- Filled icon (active) --> 475 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 476 <path 477 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" /></path> 478 </svg> 479 </div> 480 <span class="bottom-nav-item-label">Kategori</span> 481 </button> 482 483 <!-- Keranjang --> 484 <button class="bottom-nav-item" id="bottomCartBtn"> 485 <div class="bottom-nav-item-icon"> 486 <!-- Outlined icon (default) --> 487 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 488 stroke-linecap="round" stroke-linejoin="round"> 489 <circle cx="9" cy="21" r="1" /></circle> 490 <circle cx="20" cy="21" r="1" /></circle> 491 <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6" /></path> 492 </svg> 493 <!-- Filled icon (active) --> 494 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 495 <path 496 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" /></path> 497 </svg> 498 <span class="bottom-nav-item-badge" id="bottomCartCount" style="display: none;">0</span> 499 </div> 500 <span class="bottom-nav-item-label">Keranjang</span> 501 </button> 502 503 <!-- Compare --> 504 <button class="bottom-nav-item" id="bottomCompareBtn"> 505 <div class="bottom-nav-item-icon"> 506 <!-- Outlined icon (default) --> 507 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 508 stroke-linecap="round" stroke-linejoin="round"> 509 <polyline points="17 11 21 7 17 3" /></polyline> 510 <path d="M21 7H9" /></path> 511 <polyline points="7 21 3 17 7 13" /></polyline> 512 <path d="M15 17H3" /></path> 513 </svg> 514 <!-- Filled icon (active) --> 515 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 516 <path 517 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" /></path> 518 </svg>
519 <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span> 520 </div> 521 <span class="bottom-nav-item-label">Compare</span> 522 </button> 523 524 <!-- Chat - Always show, check login in JavaScript --> 525 <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat"> 526 <div class="bottom-nav-item-icon"> 527 <!-- Outlined icon (default) --> 528 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 529 opacity="0.85"> 530 <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" /></path> 531 </svg> 532 <!-- Filled icon (active) --> 533 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 534 <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z" /></path> 535 </svg> 536 <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span> 537 </div> 538 <span class="bottom-nav-item-label">Chat</span> 539 </button> 540 541 <!-- Akun --> 542 <button class="bottom-nav-item" id="bottomLoginBtn"> 543 <div class="bottom-nav-item-icon"> 544 <!-- Outlined icon (default) --> 545 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 546 stroke-linecap="round" stroke-linejoin="round"> 547 <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" /></path> 548 <circle cx="12" cy="7" r="4" /></circle> 549 </svg> 550 <!-- Filled icon (active) --> 551 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 552 <path fill-rule="evenodd" 553 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" 554 clip-rule="evenodd" /></path> 555 </svg> 556 </div> 557 <span class="bottom-nav-item-label">Login</span> 558 </button> 559 560 </div> 561 562 563 </nav> 564 <!-- Mobile User Menu Bottom Sheet --> 565 566
566<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 567 (function () { 568 const btn = document.getElementById('megaMoreBtn'); 569 const dd = document.getElementById('megaMoreDropdown'); 570 if (!btn || !dd) return; 571 572 function openDD() { 573 dd.hidden = false; 574 btn.setAttribute('aria-expanded', 'true'); 575 document.addEventListener('click', outside, { capture: true }); 576 document.addEventListener('keydown', esc); 577 } 578 function closeDD() { 579 if (dd.hidden) return; 580 dd.hidden = true; 581 btn.setAttribute('aria-expanded', 'false'); 582 document.removeEventListener('click', outside, { capture: true }); 583 document.removeEventListener('keydown', esc); 584 } 585 function toggle() { dd.hidden ? openDD() : closeDD(); } 586 function outside(e) { 587 if (!dd.contains(e.target) && e.target !== btn) { 588 closeDD(); 589 } 590 } 591 function esc(e) { 592 if (e.key === 'Escape') { 593 closeDD(); 594 btn.focus(); 595 } 596 } 597 btn.addEventListener('click', toggle); 598 })(); 599 600 // ========== HORIZONTAL SCROLL FADE INDICATOR ========== 601 (function () { 602 const megaCats = document.getElementById('megaCatsScroll'); 603 const fade = document.getElementById('megaCatsFade'); 604 if (!megaCats || !fade) return; 605 606 function updateFade() { 607 const scrollLeft = megaCats.scrollLeft; 608 const scrollWidth = megaCats.scrollWidth; 609 const clientWidth = megaCats.clientWidth; 610 const maxScroll = scrollWidth - clientWidth; 611 612 // Hide fade when scrolled to end (within 10px tolerance) 613 if (maxScroll - scrollLeft <= 10) { 614 fade.style.opacity = '0'; 615 } else { 616 fade.style.opacity = '1'; 617 } 618 } 619 620 // Update on scroll 621 megaCats.addEventListener('scroll', updateFade, { passive: true }); 622 623 // Update on resize 624 window.addEventListener('resize', updateFade, { passive: true }); 625 626 // Initial check 627 setTimeout(updateFade, 100); 628 })(); 629 630 document.addEventListener('DOMContentLoaded', function () { 631 var input = document.getElementById('searchInput'); 632 if (!input) return; 633 input.addEventListener('keydown', function (e) { 634 if (e.key === 'Enter') { 635 e.preventDefault(); 636 var form = input.form; 637 if (!form) return; 638 if (typeof form.requestSubmit === 'function') form.requestSubmit(); 639 else form.submit(); 640 } 641 }); 642 }); 643 644 645 (function () { 646 const cartBtn = document.getElementById('cartBtn'); 647 if (cartBtn) { 648 cartBtn.addEventListener('click', function (e) { 649 e.preventDefault(); 650 651 const checkLogin = () => { 652 return window.isUserLoggedIn ? window.isUserLoggedIn() : false; 653 }; 654 655 if (checkLogin()) { 656 window.location.href = '/keranjang'; 657 } else { 658 showCartLoginModal(); 659 } 660 }); 661 } 662 663 const loginBtn = document.getElementById('loginBtn'); 664 if (loginBtn) { 665 loginBtn.addEventListener('click', function (e) { 666 e.preventDefault(); 667 window.location.href = 'https://88megagacor.com/'; 668 }); 669 } 670 671 const userMenuBtn = document.getElementById('userMenuBtn'); 672 const userDropdown = document.getElementById('userDropdown'); 673 674 if (userMenuBtn && userDropdown) { 675 function openDropdown() { 676 userDropdown.hidden = false; 677 userMenuBtn.setAttribute('aria-expanded', 'true'); 678 document.addEventListener('click', closeOnOutside, { capture: true }); 679 document.addEventListener('keydown', closeOnEscape); 680 } 681 682 function closeDropdown() { 683 if (userDropdown.hidden) return; 684 userDropdown.hidden = true; 685 userMenuBtn.setAttribute('aria-expanded', 'false'); 686 document.removeEventListener('click', closeOnOutside, { capture: true }); 687 document.removeEventListener('keydown', closeOnEscape); 688 } 689 690 function closeOnOutside(e) { 691 if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) { 692 closeDropdown(); 693 } 694 } 695 696 function closeOnEscape(e) { 697 if (e.key === 'Escape') { 698 closeDropdown(); 699 userMenuBtn.focus(); 700 } 701 } 702 703 userMenuBtn.addEventListener('click', function (e) { 704 e.preventDefault(); 705 userDropdown.hidden ? openDropdown() : closeDropdown(); 706 }); 707 708 // Close dropdown when clicking profile links 709 userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => { 710 link.addEventListener('click', function () { 711 closeDropdown(); 712 }); 713 }); 714 } 715 716 // Bottom nav profile button - toggle mobile bottom sheet 717 const bottomProfileBtn = document.getElementById('bottomProfileBtn'); 718 const mobileUserSheet = document.getElementById('mobileUserSheet'); 719 const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop'); 720 721 if (bottomProfileBtn && mobileUserSheet) { 722 function openMobileSheet() { 723 mobileUserSheet.hidden = false; 724 document.body.style.overflow = 'hidden'; 725 // Trigger animation 726 requestAnimationFrame(() => { 727 mobileUserSheet.classList.add('active'); 728 }); 729 } 730 731 function closeMobileSheet() { 732 mobileUserSheet.classList.remove('active'); 733 document.body.style.overflow = ''; 734 setTimeout(() => { 735 mobileUserSheet.hidden = true; 736 }, 300); 737 } 738 739 bottomProfileBtn.addEventListener('click', function (e) { 740 e.preventDefault(); 741 openMobileSheet(); 742 }); 743 744 if (mobileUserSheetBackdrop) { 745 mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet); 746 } 747 748 // Close on escape key 749 document.addEventListener('keydown', function (e) { 750 if (e.key === 'Escape' && !mobileUserSheet.hidden) { 751 closeMobileSheet(); 752 } 753 }); 754 755 // Close sheet when clicking profile links 756 mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => { 757 link.addEventListener('click', function () { 758 closeMobileSheet(); 759 }); 760 }); 761 } 762 763 // Handle Google avatar error in bottom-nav (fallback to initials) 764 const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img'); 765 if (bottomNavAvatar) { 766 bottomNavAvatar.addEventListener('error', function () { 767 const initials = this.getAttribute('data-fallback-initials') || 'U'; 768 const initialsDiv = document.createElement('div'); 769 initialsDiv.className = 'bottom-nav-avatar-initials'; 770 initialsDiv.textContent = initials; 771 this.parentNode.replaceChild(initialsDiv, this); 772 }); 773 } 774 775 // Mobile logout button 776 const mobileLogoutBtn = document.getElementById('mobileLogoutBtn'); 777 if (mobileLogoutBtn) { 778 mobileLogoutBtn.addEventListener('click', async function (e) { 779 e.preventDefault(); 780 781 // Check push notification before logout 782 if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') { 783 const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification(); 784 if (!confirmLogout) { 785 return; // User cancelled logout 786 } 787 } 788 789 const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''; 790 791 try { 792 const response = await fetch('/auth/logout', { 793 method: 'POST', 794 credentials: 'same-origin', 795 headers: { 796 'Content-Type': 'application/json', 797 'X-CSRF-Token': getCsrfToken() 798 }, 799 body: JSON.stringify({ 800 csrf_token: getCsrfToken() 801 }) 802 }); 803 804 if (response.ok) { 805 if (window.guestCart && typeof window.guestCart.clear === 'function') { 806 window.guestCart.clear(); 807 } 808 window.location.href = '/login?logged_out=1'; 809 } else { 810 console.error('Logout failed'); 811 window.location.href = '/logout'; 812 } 813 } catch (error) { 814 console.error('Logout error:', error); 815 window.location.href = '/logout'; 816 } 817 }); 818 } 819 820 const logoutBtn = document.getElementById('logoutBtn'); 821 if (logoutBtn) { 822 logoutBtn.addEventListener('click', async function (e) { 823 e.preventDefault(); 824 825 // Check push notification before logout 826 if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') { 827 const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification(); 828 if (!confirmLogout) { 829 return; // User cancelled logout 830 } 831 } 832 833 const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''; 834 835 try { 836 const response = await fetch('/auth/logout', { 837 method: 'POST', 838 credentials: 'same-origin', 839 headers: { 840 'Content-Type': 'application/json', 841 'X-CSRF-Token': getCsrfToken() 842 }, 843 body: JSON.stringify({ 844 csrf_token: getCsrfToken() 845 }) 846 }); 847 848 if (response.ok) { 849 if (window.guestCart && typeof window.guestCart.clear === 'function') { 850 window.guestCart.clear(); 851 } 852 853 window.location.href = '/login?logged_out=1'; 854 } else { 855 console.error('Logout failed'); 856 window.location.href = '/logout'; 857 } 858 } catch (error) { 859 console.error('Logout error:', error); 860 window.location.href = '/logout'; 861 } 862 }); 863 } 864 865 const wishlistBtn = document.getElementById('wishlistBtn'); 866 const notifBtn = document.getElementById('notifBtn'); 867 868 if (wishlistBtn) { 869 wishlistBtn.addEventListener('click', function (e) { 870 e.preventDefault(); 871 alert('Fitur wishlist akan segera tersedia!'); 872 }); 873 } 874 875 if (notifBtn) { 876 notifBtn.addEventListener('click', function (e) { 877 e.preventDefault(); 878 alert('Fitur notifikasi akan segera tersedia!'); 879 }); 880 } 881 })(); 882 883 // ========== MOBILE BOTTOM NAVIGATION ========== 884 (function initBottomNav() { 885 // Sync cart badge with bottom nav 886 function syncBottomCartBadge() { 887 const mainBadge = document.getElementById('cartCount'); 888 const bottomBadge = document.getElementById('bottomCartCount'); 889 if (mainBadge && bottomBadge) { 890 const count = mainBadge.textContent; 891 bottomBadge.textContent = count; 892 bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none'; 893 } 894 } 895 896 // Sync compare badge with bottom nav 897 function syncBottomCompareBadge() { 898 const mainBadge = document.getElementById('compareCount'); 899 const bottomBadge = document.getElementById('bottomCompareCount'); 900 if (mainBadge && bottomBadge) { 901 const count = mainBadge.textContent; 902 bottomBadge.textContent = count; 903 bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none'; 904 } 905 } 906 907 // Initial sync 908 syncBottomCartBadge(); 909 syncBottomCompareBadge(); 910 911 // Observe badge changes 912 const observer = new MutationObserver(function () { 913 syncBottomCartBadge(); 914 syncBottomCompareBadge(); 915 }); 916 917 const cartBadge = document.getElementById('cartCount'); 918 const compareBadge = document.getElementById('compareCount'); 919 920 if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
921 if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true }); 922 923 // Bottom Cart Button 924 const bottomCartBtn = document.getElementById('bottomCartBtn'); 925 if (bottomCartBtn) { 926 bottomCartBtn.addEventListener('click', function (e) { 927 e.preventDefault(); 928 929 const checkLogin = () => { 930 return window.isUserLoggedIn ? window.isUserLoggedIn() : false; 931 }; 932 933 if (checkLogin()) { 934 window.location.href = '/keranjang'; 935 } else { 936 showCartLoginModal(); 937 } 938 }); 939 } 940 941 // Bottom Compare Button 942 const bottomCompareBtn = document.getElementById('bottomCompareBtn'); 943 if (bottomCompareBtn) { 944 bottomCompareBtn.addEventListener('click', function (e) { 945 e.preventDefault(); 946 947 // Close chat widget if open 948 if (window.plazaChat && window.plazaChat.isWidgetOpen) { 949 window.plazaChat.closeWidget(); 950 } 951 952 const mainCompareBtn = document.getElementById('compareBtn'); 953 if (mainCompareBtn) { 954 mainCompareBtn.click(); 955 } 956 }); 957 } 958 959 // Bottom Category Button - triggers mega menu 960 const bottomCategoryBtn = document.getElementById('bottomCategoryBtn'); 961 if (bottomCategoryBtn) { 962 bottomCategoryBtn.addEventListener('click', function (e) { 963 e.preventDefault(); 964 // Trigger desktop mega menu 965 const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)'); 966 if (desktopTrigger) { 967 desktopTrigger.click(); 968 } 969 }); 970 } 971 972 // Bottom Login Button 973 const bottomLoginBtn = document.getElementById('bottomLoginBtn'); 974 if (bottomLoginBtn) { 975 bottomLoginBtn.addEventListener('click', function (e) { 976 e.preventDefault(); 977 window.location.href = '/login'; 978 }); 979 } 980 981 // Bottom Chat Button 982 const bottomChatBtn = document.getElementById('bottomChatBtn'); 983 if (bottomChatBtn) { 984 bottomChatBtn.addEventListener('click', function (e) { 985 e.preventDefault(); 986 987 // Trigger chat widget (try multiple times if needed) 988 const triggerChat = () => { 989 const chatToggle = document.getElementById('chat-toggle-btn'); 990 if (chatToggle) { 991 chatToggle.click(); 992 return true; 993 } 994 return false; 995 }; 996 997 // Immediate attempt 998 if (!triggerChat()) { 999 // Retry after 100ms if not found 1000 setTimeout(() => { 1001 if (!triggerChat()) { 1002 // Last resort: manually show popup 1003 const popup = document.getElementById('chat-popup'); 1004 if (popup) { 1005 popup.style.display = 'block'; 1006 } 1007 } 1008 }, 100); 1009 } 1010 }); 1011 } 1012 1013 // Sync chat unread badge 1014 function syncBottomChatBadge() { 1015 const chatBadge = document.getElementById('chat-unread-badge'); 1016 const bottomChatBadge = document.getElementById('bottomChatCount'); 1017 if (chatBadge && bottomChatBadge) { 1018 const count = chatBadge.textContent; 1019 bottomChatBadge.textContent = count; 1020 bottomChatBadge.style.display = chatBadge.style.display; 1021 } 1022 } 1023 1024 // Observe chat badge changes 1025 const chatBadge = document.getElementById('chat-unread-badge'); 1026 if (chatBadge) { 1027 observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true }); 1028 syncBottomChatBadge(); 1029 } 1030 1031 // Active state management based on current page 1032 function updateActiveState() { 1033 const currentPath = window.location.pathname; 1034 const bottomNavItems = document.querySelectorAll('.bottom-nav-item'); 1035 1036 bottomNavItems.forEach(item => { 1037 item.classList.remove('active'); 1038 1039 const itemId = item.id; 1040 const page = item.getAttribute('data-page'); 1041 const href = item.getAttribute('href'); 1042 1043 // Check by ID for specific pages 1044 if (itemId === 'bottomHomeBtn' && currentPath === '/') { 1045 item.classList.add('active'); 1046 } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) { 1047 item.classList.add('active'); 1048 } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) { 1049 item.classList.add('active'); 1050 } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) { 1051 item.classList.add('active'); 1052 } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') { 1053 item.classList.add('active'); 1054 } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') { 1055 item.classList.add('active'); 1056 } 1057 // Fallback: check by data-page attribute 1058 else if (page === 'home' && currentPath === '/') { 1059 item.classList.add('active'); 1060 } else if (page === 'profile' && currentPath.startsWith('/profile')) { 1061 item.classList.add('active'); 1062 } 1063 // Fallback: check by href 1064 else if (href && currentPath === href) { 1065 item.classList.add('active'); 1066 } 1067 }); 1068 } 1069 1070 // Update active state on load 1071 updateActiveState(); 1072 1073 // Bottom nav always visible - auto-hide disabled for better UX 1074 // const bottomNav = document.querySelector('.bottom-nav'); 1075 // if (bottomNav && window.innerWidth <= 640) { 1076 // // Auto-hide feature disabled 1077 // } 1078 })(); 1079 // Cart Login Modal Handler (Global scope) 1080 function showCartLoginModal() { 1081 const modal = document.getElementById('cartLoginModal'); 1082 if (!modal) return; 1083 1084 modal.classList.add('show'); 1085 1086 const confirmBtn = document.getElementById('cartLoginConfirm'); 1087 const registerBtn = document.getElementById('cartRegisterBtn'); 1088 const cancelBtn = document.getElementById('cartLoginCancel'); 1089 1090 const handleLogin = () => { 1091 window.location.href = '/login?return=' + encodeURIComponent('/keranjang'); 1092 }; 1093 1094 const handleRegister = () => { 1095 window.location.href = '/register?return=' + encodeURIComponent('/keranjang'); 1096 }; 1097 1098 const handleCancel = () => { 1099 modal.classList.remove('show'); 1100 confirmBtn.removeEventListener('click', handleLogin); 1101 registerBtn.removeEventListener('click', handleRegister); 1102 cancelBtn.removeEventListener('click', handleCancel); 1103 }; 1104 1105 confirmBtn.removeEventListener('click', handleLogin); 1106 registerBtn.removeEventListener('click', handleRegister); 1107 cancelBtn.removeEventListener('click', handleCancel); 1108 1109 confirmBtn.addEventListener('click', handleLogin); 1110 registerBtn.addEventListener('click', handleRegister); 1111 cancelBtn.addEventListener('click', handleCancel); 1112 1113 modal.addEventListener('click', (e) => { 1114 if (e.target === modal) { 1115 handleCancel(); 1116 } 1117 }); 1118 } 1119 </script>
1119 1120 1121 <!-- Product Compare Sidebar --> 1122 <div class="compare-sidebar" id="compareSidebar"> 1123 <div class="compare-header"> 1124 <h4 class="compare-title"> 1125 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 1126 <path 1127 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" /></path> 1128 </svg> 1129 Bandingkan Produk 1130 <span class="compare-count" id="compareCountSidebar">(0)</span> 1131 </h4> 1132 <button class="compare-close" id="compareClose" aria-label="Tutup"> 1133 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 1134 <path 1135 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" /></path> 1136 </svg> 1137 </button> 1138 </div> 1139 1140 <div class="compare-content"> 1141 <div class="compare-empty" id="compareEmpty"> 1142 <div class="empty-icon"> 1143 <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3"> 1144 <path 1145 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" /></path> 1146 </svg> 1147 </div> 1148 <h5>Belum ada produk dipilih</h5> 1149 <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p> 1150 </div> 1151 1152 <div class="compare-list" id="compareList"> 1153 <!-- Products will be populated here --> 1154 </div> 1155 </div> 1156 1157 <div class="compare-actions" id="compareActions"> 1158 <button class="btn btn-outline-danger btn-sm" id="compareClearAll"> 1159 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"> 1160 <path 1161 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" /></path> 1162 </svg> 1163 Hapus Semua 1164 </button> 1165 <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled> 1166 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"> 1167 <path 1168 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" /></path> 1169 </svg> 1170 Analisis AI 1171 </button> 1172 </div> 1173 1174 <!-- AI Disclaimer in Sidebar --> 1175 <div class="compare-disclaimer"> 1176 <div class="ai-disclaimer"> 1177 <div class="disclaimer-text"> 1178 <strong>ðŸâ¡ Catatan:</strong> Dengan berbagai pilihan yang tersedia, pengguna memiliki kebebasan untuk 1179 menentukan jenis permainan yang paling sesuai dengan preferensi masing-masing. 1180 </div> 1181 </div> 1182 </div> 1183 </div> 1184 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/pd-lightbox.css"> 1185 <style> 1186 .paylater-promo { 1187 display: inline-flex; 1188 align-items: center; 1189 gap: 8px; 1190 background: linear-gradient(135deg, #ffffff 0, #ffffff 100%); 1191 border: 1px solid #000000; 1192 border-radius: 8px; 1193 padding: 8px 12px; 1194 font-size: 13px; 1195 line-height: 1.4; 1196 margin: 8px 0 1197 } 1198 1199 .paylater-promo-sm { 1200 padding: 6px 10px; 1201 font-size: 11px; 1202 gap: 6px 1203 } 1204 1205 .paylater-promo-md { 1206 padding: 8px 12px; 1207 font-size: 13px; 1208 gap: 8px 1209 } 1210 1211 .paylater-promo-lg { 1212 padding: 10px 16px; 1213 font-size: 14px; 1214 gap: 10px 1215 } 1216 1217 .paylater-icon { 1218 font-size: 1.2em; 1219 flex-shrink: 0 1220 } 1221 1222 .paylater-text { 1223 display: flex; 1224 flex-direction: column; 1225 gap: 2px 1226 } 1227 1228 .paylater-text strong { 1229 color: #000000; 1230 font-weight: 600 1231 } 1232 1233 .paylater-text small { 1234 color: #000000; 1235 font-size: .85em; 1236 opacity: .9 1237 } 1238 1239 .paylater-desktop-only { 1240 display: none 1241 } 1242 1243 .paylater-mobile-only { 1244 display: flex 1245 } 1246 1247 @media (min-width:641px) { 1248 .paylater-desktop-only { 1249 display: flex 1250 } 1251 1252 .paylater-mobile-only { 1253 display: none 1254 } 1255 } 1256 1257 @media (max-width:640px) { 1258 .paylater-promo { 1259 font-size: 12px; 1260 padding: 7px 10px 1261 } 1262 1263 .paylater-promo-lg { 1264 font-size: 13px; 1265 padding: 8px 12px 1266 } 1267 } 1268 1269 @media print { 1270 .paylater-promo { 1271 display: none !important 1272 } 1273 } 1274 1275 .paylater-compact { 1276 display: inline-block; 1277 font-size: 11px; 1278 font-weight: 600; 1279 color: #ffd700; 1280 background: #d1fae5; 1281 padding: 3px 8px; 1282 border-radius: 4px; 1283 margin: 6px 0 4px; 1284 line-height: 1.3 1285 } 1286 1287 @media (max-width:640px) { 1288 .paylater-compact { 1289 font-size: 10px; 1290 padding: 2px 6px; 1291 margin: 5px 0 3px 1292 } 1293 } 1294 1295 @media print { 1296 .paylater-compact { 1297 display: none !important 1298 } 1299 } 1300 </style> 1301 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1302 .pd-voucher-minimal { 1303 margin: 10px 0; 1304 display: flex; 1305 flex-direction: column; 1306 gap: 6px 1307 } 1308 1309 .pdv-min-item { 1310 display: flex; 1311 align-items: center; 1312 gap: 8px; 1313 padding: 0; 1314 height: 32px; 1315 transition: all .2s ease 1316 } 1317 1318 .pdv-min-hidden { 1319 display: none 1320 } 1321 1322 .pdv-min-disabled { 1323 opacity: .5 1324 } 1325 1326 .pdv-badge-btn { 1327 display: inline-flex; 1328 align-items: center; 1329 gap: 8px; 1330 background: linear-gradient(135deg, #0026fd 0, #0026fd 100%); 1331 border: none; 1332 border-radius: 8px; 1333 padding: 3px; 1334 cursor: pointer; 1335 transition: all .2s ease; 1336 width: auto 1337 } 1338 1339 .pdv-badge-btn:hover:not(:disabled) { 1340 transform: translateY(-1px); 1341 box-shadow: 0 4px 12px rgba(102, 126, 234, .3) 1342 } 1343 1344 .pdv-badge-btn:disabled { 1345 opacity: .6;
1346 cursor: not-allowed 1347 } 1348 1349 .pdv-badge-icon { 1350 color: #fff; 1351 flex-shrink: 0 1352 } 1353 1354 .pdv-badge-text { 1355 font-size: 14px; 1356 font-weight: 700; 1357 color: #fff; 1358 white-space: nowrap 1359 } 1360 1361 .pdv-badge-code { 1362 font-family: 'Courier New', monospace; 1363 font-size: 13px; 1364 font-weight: 700; 1365 color: #fff; 1366 background: rgba(255, 255, 255, .2); 1367 padding: 4px 8px; 1368 border-radius: 4px; 1369 border: none; 1370 white-space: nowrap 1371 } 1372 1373 .pdv-min-copy, 1374 .pdv-min-more { 1375 padding: 4px 12px; 1376 font-size: 12px; 1377 font-weight: 600; 1378 border-radius: 5px; 1379 border: 1px solid #e2e8f0; 1380 background: #fff; 1381 color: #0026fd; 1382 cursor: pointer; 1383 transition: all .2s ease; 1384 white-space: nowrap 1385 } 1386 1387 .pdv-min-copy:hover:not(:disabled), 1388 .pdv-min-more:hover { 1389 background: #0026fd; 1390 color: #fff; 1391 border-color: #0026fd 1392 } 1393 1394 .pdv-min-copy:disabled { 1395 opacity: .4; 1396 cursor: not-allowed 1397 } 1398 1399 .pdv-min-copy.copied { 1400 background: #c52222; 1401 color: #fff; 1402 border-color: #c52222 1403 } 1404 1405 .pdv-min-more { 1406 margin-left: auto 1407 } 1408 1409 .modal-close { 1410 position: absolute; 1411 top: 20px; 1412 right: 20px; 1413 background: none; 1414 border: none; 1415 cursor: pointer; 1416 color: #64748b; 1417 padding: 4px; 1418 transition: color .2s ease 1419 } 1420
1421 .modal-close:hover { 1422 color: #1e293b 1423 } 1424 1425 .modal-body { 1426 margin-bottom: 8px 1427 } 1428 1429 .voucher-modal-content { 1430 text-align: center 1431 } 1432 1433 .voucher-modal-badge { 1434 display: inline-flex; 1435 flex-direction: row; 1436 align-items: center; 1437 gap: 6px; 1438 background: linear-gradient(135deg, #0026fd 0, #0026fd 100%); 1439 border-radius: 10px; 1440 padding: 8px 16px; 1441 margin-bottom: 12px 1442 } 1443 1444 .vmb-value { 1445 font-size: 18px; 1446 font-weight: 700; 1447 color: #fff; 1448 line-height: 1 1449 } 1450 1451 .vmb-label { 1452 font-size: 18px; 1453 font-weight: 700; 1454 color: #fff; 1455 text-transform: uppercase; 1456 letter-spacing: .5px 1457 } 1458 1459 .voucher-modal-code { 1460 font-family: 'Courier New', monospace; 1461 font-size: 14px; 1462 font-weight: 700; 1463 color: #0026fd; 1464 background: rgba(102, 126, 234, .1); 1465 padding: 6px 12px; 1466 border-radius: 6px; 1467 border: 2px dashed rgba(102, 126, 234, .3); 1468 display: inline-block; 1469 margin-bottom: 10px 1470 } 1471 1472 .voucher-modal-name { 1473 font-size: 14px; 1474 font-weight: 600; 1475 color: #1e293b; 1476 margin-bottom: 16px 1477 } 1478 1479 .voucher-modal-details { 1480 text-align: left; 1481 background: #f8fafc; 1482 border-radius: 8px; 1483 padding: 12px; 1484 margin-bottom: 16px 1485 } 1486 1487 .vmd-item { 1488 display: flex; 1489 align-items: flex-start; 1490 gap: 8px; 1491 padding: 6px 0; 1492 font-size: 13px; 1493 color: #64748b; 1494 border-bottom: 1px solid #e2e8f0 1495 } 1496 1497 .vmd-item:last-child { 1498 border-bottom: none 1499 } 1500 1501 .vmd-item svg { 1502 color: #0026fd; 1503 flex-shrink: 0; 1504 margin-top: 2px 1505 } 1506 1507 .vmd-item strong { 1508 color: #1e293b 1509 } 1510 1511 .modal-actions { 1512 padding: 20px 1513 } 1514 1515 .modal-btn-primary { 1516 background: linear-gradient(135deg, #0026fd 0, #0026fd 100%); 1517 color: #fff 1518 } 1519 1520 .modal-btn-primary:hover { 1521 opacity: .9; 1522 transform: translateY(-1px) 1523 } 1524 1525 @media (max-width:640px) { 1526 .pdv-min-item { 1527 gap: 6px 1528 } 1529 1530 .pdv-badge-btn { 1531 padding: 3px; 1532 gap: 6px 1533 } 1534 1535 .pdv-badge-text { 1536 font-size: 13px 1537 } 1538 1539 .pdv-badge-code { 1540 font-size: 12px; 1541 padding: 3px 6px 1542 } 1543 1544 .pdv-min-copy, 1545 .pdv-min-more { 1546 padding: 3px 10px; 1547 font-size: 11px 1548 } 1549 1550 .modal-dialog { 1551 max-width: 95%; 1552 margin: 20px 1553 } 1554 1555 .vmb-value { 1556 font-size: 16px 1557 } 1558 1559 .vmb-label { 1560 font-size: 16px 1561 } 1562 1563 .voucher-modal-code { 1564 font-size: 13px; 1565 padding: 5px 10px 1566 } 1567 } 1568 </style> 1569 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1570 .promo-endyear-mini-banner { 1571 display: flex; 1572 align-items: center; 1573 gap: 12px; 1574 padding: 12px 16px; 1575 background: rgba(255, 255, 255, .8); 1576 backdrop-filter: blur(10px); 1577 -webkit-backdrop-filter: blur(10px); 1578 border: 2px solid rgba(242, 140, 26, .2); 1579 border-radius: 12px; 1580 margin: 16px 0; 1581 box-shadow: 0 4px 16px rgba(0, 0, 0, .08); 1582 transition: all .3s ease 1583 } 1584 1585 .promo-endyear-mini-banner:hover { 1586 transform: translateY(-2px); 1587 box-shadow: 0 6px 20px rgba(0, 0, 0, .12); 1588 border-color: rgba(242, 140, 26, .4) 1589 } 1590 1591 .pey-icon { 1592 font-size: 32px; 1593 line-height: 1; 1594 flex-shrink: 0 1595 } 1596 1597 .pey-content { 1598 flex: 1; 1599 min-width: 0 1600 } 1601 1602 .pey-content strong { 1603 display: block; 1604 font-size: 14px; 1605 font-weight: 700; 1606 color: #F28C1A; 1607 margin-bottom: 2px 1608 } 1609 1610 .pey-content span { 1611 display: block; 1612 font-size: 13px; 1613 color: #64748b; 1614 line-height: 1.4 1615 } 1616 1617 .pey-link { 1618 flex-shrink: 0; 1619 padding: 8px 16px; 1620 background: linear-gradient(135deg, #F28C1A, #FFB84D); 1621 color: #fff; 1622 text-decoration: none; 1623 font-size: 13px; 1624 font-weight: 700; 1625 border-radius: 8px; 1626 white-space: nowrap; 1627 transition: all .2s ease; 1628 box-shadow: 0 2px 8px rgba(242, 140, 26, .25) 1629 } 1630 1631 .pey-link:hover { 1632 transform: translateX(2px); 1633 box-shadow: 0 4px 12px rgba(242, 140, 26, .35) 1634 } 1635 1636 @media(max-width:640px) { 1637 .promo-endyear-mini-banner { 1638 flex-wrap: wrap; 1639 gap: 8px; 1640 padding: 10px 12px 1641 } 1642 1643 .pey-icon { 1644 font-size: 28px; 1645 align-self: flex-start 1646 } 1647 1648 .pey-content { 1649 flex: 1; 1650 min-width: 0 1651 } 1652 1653 .pey-content strong { 1654 font-size: 12px 1655 } 1656 1657 .pey-content span { 1658 font-size: 11px; 1659 line-height: 1.3 1660 } 1661 1662 .pey-link { 1663 width: 100%; 1664 flex-basis: 100%; 1665 font-size: 11px; 1666 padding: 6px 12px; 1667 text-align: center 1668 } 1669 } 1670 1671 @media print { 1672 .promo-endyear-mini-banner { 1673 display: none !important 1674 } 1675 } 1676 </style> 1677 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1678 .pd-title-row { 1679 position: relative; 1680 margin-bottom: 12px; 1681 padding-right: 52px 1682 } 1683 1684 .pd-title { 1685 margin: 0 !important 1686 } 1687 1688 .pd-share-btn { 1689 position: absolute; 1690 top: 0; 1691 right: 0; 1692 width: 40px; 1693 height: 40px; 1694 display: inline-flex; 1695 align-items: center; 1696 justify-content: center; 1697 border-radius: 10px; 1698 border: 1px solid #e2e8f0; 1699 background: #fff; 1700 color: #64748b; 1701 cursor: pointer; 1702 transition: all .2s ease; 1703 -webkit-tap-highlight-color: transparent 1704 } 1705 1706 .pd-share-btn:hover { 1707 background: #f8fafc; 1708 border-color: #cbd5e1; 1709 color: #0f172a; 1710 transform: translateY(-1px) 1711 } 1712 1713 .pd-share-btn:active { 1714 transform: translateY(0) 1715 } 1716 1717 .pd-share-btn svg { 1718 display: block 1719 } 1720 1721 .pd-share-modal-overlay { 1722 position: fixed; 1723 inset: 0; 1724 background: rgba(15, 23, 42, .75); 1725 backdrop-filter: blur(4px); 1726 z-index: 99999; 1727 display: none; 1728 align-items: center; 1729 justify-content: center; 1730 padding: 0; 1731 animation: fadeIn .2s ease 1732 } 1733 1734 .pd-share-modal-overlay.show { 1735 display: flex 1736 } 1737 1738 .pd-share-modal { 1739 background: #fff; 1740 border-radius: 20px; 1741 box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); 1742 max-width: 480px; 1743 width: 100%; 1744 max-height: 90vh; 1745 overflow: hidden; 1746 display: flex; 1747 flex-direction: column; 1748 animation: slideUp .3s cubic-bezier(.16, 1, .3, 1) 1749 } 1750 1751 @keyframes fadeIn { 1752 from { 1753 opacity: 0 1754 } 1755 1756 to { 1757 opacity: 1 1758 } 1759 } 1760 1761 @keyframes slideUp { 1762 from { 1763 opacity: 0; 1764 transform: translateY(20px) scale(.95) 1765 } 1766 1767 to { 1768 opacity: 1;
1769 transform: translateY(0) scale(1) 1770 } 1771 } 1772 1773 .pd-share-header { 1774 display: flex; 1775 align-items: center; 1776 justify-content: space-between; 1777 padding: 20px 24px; 1778 border-bottom: 1px solid #f1f5f9 1779 } 1780 1781 .pd-share-title { 1782 font-size: 18px; 1783 font-weight: 700; 1784 color: #0f172a; 1785 margin: 0 1786 } 1787 1788 .pd-share-close { 1789 width: 32px; 1790 height: 32px; 1791 border-radius: 8px; 1792 border: 0; 1793 background: transparent; 1794 color: #64748b; 1795 display: inline-flex; 1796 align-items: center; 1797 justify-content: center; 1798 cursor: pointer; 1799 transition: all .15s ease 1800 } 1801 1802 .pd-share-close:hover { 1803 background: #f1f5f9; 1804 color: #0f172a 1805 } 1806 1807 .pd-share-body { 1808 padding: 24px; 1809 overflow-y: auto 1810 } 1811 1812 .pd-share-preview { 1813 display: flex; 1814 gap: 12px; 1815 padding: 16px; 1816 background: #f8fafc; 1817 border-radius: 12px; 1818 margin-bottom: 24px 1819 } 1820 1821 .pd-share-preview-img { 1822 width: 64px; 1823 height: 64px; 1824 border-radius: 8px; 1825 object-fit: cover; 1826 flex-shrink: 0; 1827 border: 1px solid #e2e8f0 1828 } 1829 1830 .pd-share-preview-info { 1831 flex: 1; 1832 min-width: 0 1833 } 1834 1835 .pd-share-preview-name { 1836 font-size: 14px; 1837 font-weight: 600; 1838 color: #0f172a; 1839 margin: 0 0 4px 0; 1840 display: -webkit-box; 1841 -webkit-line-clamp: 2; 1842 -webkit-box-orient: vertical; 1843 overflow: hidden 1844 } 1845 1846 .pd-share-preview-price { 1847 font-size: 16px; 1848 font-weight: 700; 1849 color: #ffd700; 1850 margin: 0 1851 } 1852 1853 .pd-share-label { 1854 font-size: 13px; 1855 font-weight: 600; 1856 color: #475569; 1857 margin: 0 0 12px 0; 1858 text-transform: uppercase; 1859 letter-spacing: .5px 1860 } 1861 1862 .pd-share-grid { 1863 display: grid; 1864 grid-template-columns: repeat(4, 1fr); 1865 gap: 12px; 1866 margin-bottom: 24px 1867 } 1868 1869 .pd-share-option { 1870 display: flex; 1871 flex-direction: column; 1872 align-items: center; 1873 gap: 8px; 1874 padding: 16px 8px; 1875 border: 1.5px solid #e2e8f0; 1876 border-radius: 12px; 1877 background: #fff; 1878 cursor: pointer; 1879 transition: all .2s ease; 1880 text-decoration: none; 1881 color: inherit 1882 } 1883 1884 .pd-share-option:hover { 1885 border-color: #94a3b8; 1886 background: #f8fafc; 1887 transform: translateY(-2px) 1888 } 1889 1890 .pd-share-option:active { 1891 transform: translateY(0) 1892 } 1893 1894 .pd-share-icon { 1895 width: 40px; 1896 height: 40px; 1897 border-radius: 10px; 1898 display: inline-flex; 1899 align-items: center; 1900 justify-content: center; 1901 position: relative 1902 } 1903 1904 .pd-share-icon svg { 1905 width: 24px; 1906 height: 24px; 1907 display: block 1908 } 1909 1910 .pd-share-icon-whatsapp { 1911 background: linear-gradient(135deg, #ffd700 0%, #3c3300 100%); 1912 color: #fff 1913 } 1914 1915 .pd-share-icon-facebook { 1916 background: linear-gradient(135deg, #0026fd 0%, #0026fd 100%); 1917 color: #fff 1918 } 1919 1920 .pd-share-icon-twitter { 1921 background: linear-gradient(135deg, #0026fd 0%, #0d8bd9 100%); 1922 color: #fff 1923 } 1924 1925 .pd-share-icon-telegram { 1926 background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%); 1927 color: #fff 1928 } 1929 1930 .pd-share-icon-email { 1931 background: linear-gradient(135deg, #EA4335 0%, #c5331f 100%); 1932 color: #fff 1933 1934 } 1935 1936 .pd-share-icon-copy { 1937 background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%); 1938 color: #fff 1939 } 1940 1941 .pd-share-icon-pdf { 1942 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); 1943 color: #fff 1944 } 1945 1946 .pd-share-name { 1947 font-size: 12px; 1948 font-weight: 600; 1949 color: #475569; 1950 text-align: center 1951 } 1952 1953 .pd-share-copy-section { 1954 background: #f8fafc; 1955 padding: 16px; 1956 border-radius: 12px 1957 } 1958 1959 .pd-share-copy-input-wrap { 1960 display: flex; 1961 gap: 8px 1962 } 1963 1964 .pd-share-copy-input { 1965 flex: 1; 1966 padding: 12px 14px; 1967 border: 1px solid #e2e8f0; 1968 border-radius: 10px; 1969 font-size: 14px; 1970 color: #0f172a; 1971 background: #fff; 1972 font-family: 'Segoe UI', system-ui, sans-serif 1973 } 1974 1975 .pd-share-copy-input:focus { 1976 outline: 0; 1977 border-color: #ffd700; 1978 box-shadow: 0 0 0 3px rgba(14, 165, 233, .1) 1979 } 1980 1981 .pd-share-copy-btn { 1982 padding: 12px 20px; 1983 border: 0; 1984 border-radius: 10px; 1985 background: linear-gradient(135deg, #e90e0e 0%, #0026fd 100%); 1986 color: #fff; 1987 font-size: 14px; 1988 font-weight: 600; 1989 cursor: pointer; 1990 transition: all .2s ease; 1991 white-space: nowrap; 1992 display: inline-flex; 1993 align-items: center; 1994 gap: 6px 1995 } 1996 1997 .pd-share-copy-btn:hover { 1998 background: linear-gradient(135deg, #0026fd 0%, #0026fd 100%); 1999 transform: translateY(-1px); 2000 box-shadow: 0 4px 12px rgba(14, 165, 233, .3) 2001 } 2002 2003 .pd-share-copy-btn:active { 2004 transform: translateY(0) 2005 } 2006 2007 .pd-share-copy-btn svg { 2008 width: 16px; 2009 height: 16px 2010 } 2011 2012 .pd-share-copy-btn.copied { 2013 background: linear-gradient(135deg, #c52222 0%, #a31616 100%); 2014 pointer-events: none 2015 } 2016 2017 @media(max-width:640px) { 2018 .pd-share-modal { 2019 border-radius: 20px 20px 0 0; 2020 margin-top: auto; 2021 max-height: 85vh 2022 } 2023 2024 .pd-share-grid { 2025 grid-template-columns: repeat(3, 1fr) 2026 } 2027 2028 .pd-share-header { 2029 padding: 16px 20px 2030 } 2031 2032 .pd-share-body { 2033 padding: 20px 2034 } 2035 2036 .pd-share-btn { 2037 width: 36px; 2038 height: 36px 2039 } 2040 2041 .pd-share-btn svg { 2042 width: 18px;
2043 height: 18px 2044 } 2045 } 2046 2047 @media(max-width:480px) { 2048 .pd-share-grid { 2049 grid-template-columns: repeat(3, 1fr); 2050 gap: 10px 2051 } 2052 2053 .pd-share-option { 2054 padding: 12px 6px 2055 } 2056 2057 .pd-share-icon { 2058 width: 36px; 2059 height: 36px 2060 } 2061 2062 .pd-share-icon svg { 2063 width: 20px; 2064 height: 20px 2065 } 2066 2067 .pd-share-name { 2068 font-size: 11px 2069 } 2070 } 2071 2072 .mf-share { 2073 background: #fff; 2074 color: #fb923c; 2075 border: 2px solid #fb923c; 2076 display: inline-flex; 2077 align-items: center; 2078 justify-content: center 2079 } 2080 2081 .mf-share:active { 2082 transform: scale(.95) 2083 } 2084 2085 .mf-share svg { 2086 display: block 2087 } 2088 2089 @media(max-width:640px) { 2090 .pd-share-btn { 2091 display: none !important 2092 } 2093 } 2094 2095 .stock-badge.in { 2096 background: #e6f9ec; 2097 color: #801515; 2098 border-radius: 999px; 2099 padding: 4px 10px; 2100 font-weight: 700 2101 } 2102 2103 .stock-badge.out { 2104 background: #fee2e2; 2105 color: #b91c1c; 2106 border-radius: 999px; 2107 padding: 4px 10px; 2108 font-weight: 700 2109 } 2110 2111 .stock-info-btn { 2112 --c: #e90e0e; 2113 --b: #bae6fd; 2114 --bg: #f0f9ff; 2115 --bg-h: #e0f2fe; 2116 --b-h: #e90e0e; 2117 margin-left: 0; 2118 display: inline-flex; 2119 align-items: center; 2120 justify-content: center; 2121 gap: 0.5rem; 2122 padding: 4px 10px; 2123 border-radius: 999px; 2124 border: 1.5px solid var(--b); 2125 background: var(--bg); 2126 color: var(--c); 2127 cursor: pointer; 2128 font-size: 12px; 2129 font-weight: 600; 2130 transition: all .2s ease; 2131 -webkit-tap-highlight-color: transparent 2132 } 2133 2134 .stock-info-btn:hover { 2135 background: var(--bg-h); 2136 border-color: var(--b-h); 2137 color: #0026fd; 2138 transform: translateY(-1px); 2139 box-shadow: 0 2px 8px rgba(14, 165, 233, .15) 2140 } 2141 2142 .stock-info-btn:active { 2143 transform: translateY(0) 2144 } 2145 2146 .stock-info-btn:focus-visible { 2147 outline: 0; 2148 box-shadow: 0 0 0 3px rgba(14, 165, 233, .2) 2149 } 2150 2151 .stock-info-btn svg { 2152 width: 14px; 2153 height: 14px; 2154 flex-shrink: 0 2155 } 2156 2157 .stock-info-btn .btn-text { 2158 white-space: nowrap 2159 } 2160 2161 .stock-popover { 2162 position: absolute; 2163 z-index: 9999; 2164 min-width: 280px; 2165 max-width: 92vw; 2166 background: #0b1220; 2167 color: #eef3ff; 2168 border: 1px solid rgba(255, 255, 255, .08); 2169 border-radius: 14px; 2170 box-shadow: 0 20px 40px rgba(12, 12, 20, .45); 2171 padding: 12px 12px 8px; 2172 display: none 2173 } 2174 2175 .stock-popover.show { 2176 display: block 2177 } 2178 2179 .stock-popover::before { 2180 content: ""; 2181 position: absolute; 2182 top: -8px; 2183 left: 24px; 2184 width: 14px; 2185 height: 14px; 2186 background: #0b1220; 2187 border-left: 1px solid rgba(255, 255, 255, .08); 2188 border-top: 1px solid rgba(255, 255, 255, .08); 2189 transform: rotate(45deg) 2190 } 2191 2192 .sp-head { 2193 display: flex; 2194 align-items: center; 2195 justify-content: space-between; 2196 margin-bottom: 8px 2197 } 2198 2199 .sp-title { 2200 font-weight: 800; 2201 font-size: 14px 2202 } 2203 2204 .sp-close { 2205 background: transparent; 2206 border: 0; 2207 color: #98a2b3; 2208 cursor: pointer 2209 } 2210 2211 .sp-list { 2212 list-style: none; 2213 margin: 0; 2214 padding: 0; 2215 display: flex; 2216 flex-direction: column; 2217 gap: 8px 2218 } 2219 2220 .sp-item { 2221 display: grid; 2222 grid-template-columns: 1fr auto 32px; 2223 column-gap: 12px; 2224 align-items: center; 2225 padding: 10px 10px; 2226 min-height: 44px; 2227 border-radius: 10px; 2228 background: rgba(255, 255, 255, .03) 2229 } 2230 2231 .sp-left { 2232 display: flex; 2233 align-items: center; 2234 gap: 10px 2235 } 2236 2237 .sp-dot { 2238 width: 10px; 2239 height: 10px; 2240 border-radius: 999px; 2241 background: var(--dot, #60a5fa); 2242 display: inline-block 2243 } 2244 2245 .sp-label { 2246 font-weight: 600; 2247 font-size: 13px 2248 } 2249 2250 2251 .sp-qty { 2252 grid-column: 2; 2253 justify-self: end; 2254 min-width: 40px; 2255 text-align: right; 2256 font-weight: 800; 2257 font-size: 13px; 2258 color: #cfe4ff; 2259 font-variant-numeric: tabular-nums 2260 } 2261 2262 .sp-wa { 2263 grid-column: 3; 2264 justify-self: end; 2265 width: 32px; 2266 height: 32px; 2267 min-width: 32px; 2268 min-height: 32px; 2269 box-sizing: border-box; 2270 padding: 0; 2271 line-height: 0; 2272 text-decoration: none; 2273 outline: 0; 2274 display: inline-flex; 2275 align-items: center; 2276 justify-content: center; 2277 border-radius: 999px; 2278 border: 1px solid rgba(211, 37, 37, 0.6);
2279 /* 1px untuk hasil ââ¬Åcrispâ⬠*/ 2280 background: rgba(37, 211, 102, .08); 2281 color: #d32525; 2282 transition: background-color .15s ease, border-color .15s ease, transform .05s ease; 2283 -webkit-tap-highlight-color: transparent; 2284 } 2285 2286 .sp-wa:hover { 2287 background: rgba(37, 211, 102, .16); 2288 border-color: rgba(37, 211, 102, .75) 2289 } 2290 2291 .sp-wa:active { 2292 transform: translateY(.5px) scale(.98) 2293 } 2294 2295 .sp-wa svg { 2296 width: 18px; 2297 height: 18px; 2298 display: block; 2299 vertical-align: middle 2300 } 2301 2302 .stock-popover a { 2303 text-decoration: none 2304 } 2305 2306 #deskripsi img { 2307 max-width: 200px !important; 2308 height: unset !important 2309 } 2310 2311 2312 @media(max-width:640px) { 2313 .stock-popover { 2314 position: fixed; 2315 left: 0; 2316 right: 0; 2317 bottom: max(12px, env(safe-area-inset-bottom, 12px)); 2318 margin: 0 10px; 2319 padding: 14px 12px 10px; 2320 border-radius: 16px 2321 } 2322 2323 .stock-popover::before { 2324 display: none 2325 } 2326 2327 .stock-info-btn { 2328 padding: 4px 8px; 2329 gap: 4px; 2330 border: 0; 2331 background: transparent 2332 } 2333 2334 .stock-info-btn:hover { 2335 background: transparent; 2336 box-shadow: none; 2337 transform: none 2338 } 2339 2340 .stock-info-btn .btn-text { 2341 display: none 2342 } 2343 2344 .stock-info-btn svg { 2345 width: 16px; 2346 height: 16px 2347 } 2348 2349 .sp-item { 2350 grid-template-columns: 1fr auto 36px 2351 } 2352 2353 .sp-wa { 2354 width: 36px; 2355 height: 36px; 2356 min-width: 36px; 2357 min-height: 36px 2358 } 2359 2360 .sp-wa svg { 2361 width: 19px; 2362 height: 19px 2363 } 2364 } 2365 2366 .stock-dot { 2367 position: absolute; 2368 bottom: 8px; 2369 right: 8px; 2370 width: 8px; 2371 height: 8px; 2372 border-radius: 50%; 2373 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); 2374 z-index: 2; 2375 cursor: help 2376 } 2377 2378 .stock-dot.ready { 2379 background: #10b981 2380 } 2381 2382 .stock-dot.low { 2383 background: #f59e0b 2384 } 2385 2386 .stock-dot.out { 2387 background: #ef4444 2388 } 2389 2390 .stock-dot:hover { 2391 transform: scale(1.2); 2392 transition: transform 0.2s ease 2393 } 2394 2395 @media(max-width:640px) { 2396 .stock-dot { 2397 width: 7px; 2398 height: 7px; 2399 bottom: 6px; 2400 right: 6px 2401 } 2402 } 2403 2404 .pd-related-card .spec-chips { 2405 font-size: 11px; 2406 color: #64748b; 2407 margin: 4px 0 6px 0; 2408 line-height: 1.3; 2409 font-weight: 500 2410 } 2411 2412 .pd-related-card .spec-chips .spec-divider { 2413 margin: 0 4px; 2414 opacity: 0.6 2415 } 2416 2417 @media(max-width:640px) { 2418 .pd-related-card .spec-chips { 2419 font-size: 10px; 2420 margin: 3px 0 5px 0 2421 } 2422 2423 #deskripsi img { 2424 max-width: 300px !important; 2425 height: unset !important; 2426 justify-self: center !important 2427 } 2428 } 2429 2430 .pwp-trigger-badge { 2431 display: inline-flex; 2432 align-items: center; 2433 gap: 4px; 2434 padding: 3px 8px 4px; 2435 background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%); 2436 color: #78350f; 2437 border-radius: 6px; 2438 font-size: .65rem; 2439 font-weight: 600; 2440 border: 0 2441 } 2442 2443 .pwp-trigger-badge svg { 2444 flex-shrink: 0; 2445 width: 12px; 2446 height: 12px 2447 } 2448 2449 .pwp-deals-section { 2450 margin: 0; 2451 padding: 12px; 2452 background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); 2453 border-radius: 12px; 2454 border: 2px solid #fbbf24 2455 } 2456 2457 .pwp-deals-header { 2458 display: flex; 2459 gap: 10px; 2460 margin-bottom: 10px 2461 } 2462 2463 .pwp-icon { 2464 flex-shrink: 0; 2465 color: #f59e0b; 2466 width: 18px; 2467 height: 18px 2468 } 2469 2470 .pwp-text .pwp-title { 2471 margin: 0 0 2px 0; 2472 font-size: 14px; 2473 font-weight: 700; 2474 color: #78350f 2475 } 2476 2477 .pwp-text .pwp-subtitle { 2478 margin: 0; 2479 font-size: 11px; 2480 color: #92400e; 2481 opacity: 0.9 2482 } 2483 2484 .pwp-deals-loading { 2485 text-align: center; 2486 padding: 40px 0; 2487 color: #92400e 2488 } 2489 2490 .pwp-spinner { 2491 width: 40px; 2492 height: 40px; 2493 border: 3px solid #fbbf24; 2494 border-top-color: #f59e0b; 2495 border-radius: 50%; 2496 animation: spin 0.8s linear infinite; 2497 margin: 0 auto 12px 2498 } 2499 2500 @keyframes spin { 2501 to { 2502 transform: rotate(360deg) 2503 } 2504 } 2505 2506 .pwp-deals-grid { 2507 display: flex; 2508 flex-direction: column; 2509 gap: 6px 2510 } 2511 2512 .pwp-deal-card { 2513 background: #fff; 2514 border-radius: 6px; 2515 overflow: hidden; 2516 border: 1px solid #fbbf24; 2517 display: flex; 2518 align-items: center; 2519 padding: 8px; 2520 gap: 10px 2521 } 2522 2523 .pwp-deal-card:hover { 2524 background: #fef3c7 2525 } 2526 2527 .pwp-deal-thumb { 2528 flex-shrink: 0; 2529 width: 50px; 2530 height: 50px; 2531 background: #f8fafc; 2532 overflow: hidden; 2533 border-radius: 4px 2534 } 2535 2536 .pwp-deal-thumb img { 2537 width: 100%; 2538 height: 100%; 2539 object-fit: cover 2540 } 2541 2542 .pwp-deal-badge { 2543 background: #dc2626; 2544 color: #fff; 2545 padding: 2px 5px; 2546 border-radius: 3px; 2547 font-size: 9px; 2548 font-weight: 700; 2549 margin-left: auto 2550 } 2551 2552 .pwp-deal-info { 2553 flex: 1; 2554 display: flex; 2555 flex-direction: column; 2556 gap: 4px 2557 } 2558 2559 .pwp-deal-name { 2560 font-size: 12px; 2561 font-weight: 600; 2562 color: #0f172a; 2563 margin: 0; 2564 line-height: 1.2 2565 } 2566 2567 .pwp-deal-prices { 2568 display: flex; 2569 align-items: center; 2570 gap: 6px; 2571 flex-wrap: wrap 2572 } 2573 2574 .pwp-deal-price { 2575 font-size: 14px; 2576 font-weight: 800; 2577 color: #dc2626; 2578 white-space: nowrap 2579 } 2580 2581 .pwp-deal-original { 2582 font-size: 11px; 2583 color: #64748b; 2584 text-decoration: line-through; 2585 white-space: nowrap 2586 } 2587 2588 .pwp-cart-note { 2589 margin-top: 8px; 2590 padding: 6px 10px; 2591 background: #e0f2fe; 2592 border-left: 2px solid#e90e0e; 2593 font-size: 11px; 2594 color: #0c4a6e; 2595 border-radius: 4px 2596 } 2597 2598 @media(max-width:640px) { 2599 .pwp-deals-section { 2600 margin: 12px 0; 2601 padding: 10px; 2602 border-radius: 10px 2603 } 2604 2605 .pwp-deals-header { 2606 gap: 8px 2607 } 2608 2609 .pwp-text .pwp-title { 2610 font-size: 13px 2611 } 2612 2613 .pwp-text .pwp-subtitle { 2614 font-size: 10px 2615 } 2616 2617 .pwp-deal-card { 2618 padding: 6px; 2619 gap: 8px 2620 } 2621 2622 .pwp-deal-thumb { 2623 width: 45px; 2624 height: 45px 2625 } 2626 2627 .pwp-deal-name { 2628 font-size: 11px 2629 } 2630 2631 .pwp-deal-price { 2632 font-size: 13px 2633 } 2634 2635 .pwp-deal-original { 2636 font-size: 10px 2637 } 2638 } 2639 2640 .preorder-badge { 2641 display: inline-flex; 2642 align-items: center; 2643 gap: 5px; 2644 padding: 6px 12px; 2645 background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); 2646 color: #fff; 2647 border-radius: 8px; 2648 font-size: 13px; 2649 font-weight: 700; 2650 border: 0; 2651 box-shadow: 0 2px 8px rgba(139, 92, 246, .25) 2652 } 2653 2654 .preorder-badge svg { 2655 width: 16px; 2656 height: 16px; 2657 flex-shrink: 0 2658 } 2659 2660 .preorder-info { 2661 margin: 12px 0; 2662 padding: 14px; 2663 background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%); 2664 border: 1.5px solid #c4b5fd; 2665 border-radius: 12px 2666 } 2667 2668 .preorder-info-header { 2669 display: flex; 2670 align-items: center; 2671 gap: 8px; 2672 margin-bottom: 10px 2673 } 2674 2675 .preorder-info-icon {
2676 width: 20px; 2677 height: 20px; 2678 color: #7c3aed; 2679 flex-shrink: 0 2680 } 2681 2682 .preorder-info-title { 2683 font-size: 14px; 2684 font-weight: 700; 2685 color: #5b21b6; 2686 margin: 0 2687 } 2688 2689 .preorder-info-items { 2690 display: flex; 2691 flex-direction: column; 2692 gap: 8px 2693 } 2694 2695 .preorder-info-row { 2696 display: flex; 2697 align-items: center; 2698 justify-content: space-between; 2699 font-size: 13px 2700 } 2701 2702 .preorder-info-label { 2703 color: #6b21a8; 2704 font-weight: 600 2705 } 2706 2707 .preorder-info-value { 2708 color: #5b21b6; 2709 font-weight: 700 2710 } 2711 2712 .preorder-info-value.highlight { 2713 color: #dc2626; 2714 font-size: 14px 2715 } 2716 2717 .preorder-info-note { 2718 margin-top: 10px; 2719 padding: 8px 10px; 2720 background: #fef3c7; 2721 border-left: 2px solid #f59e0b; 2722 font-size: 12px; 2723 color: #78350f; 2724 border-radius: 6px; 2725 line-height: 1.4 2726 } 2727 2728 @media(max-width:640px) { 2729 .preorder-badge { 2730 font-size: 12px; 2731 padding: 5px 10px 2732 } 2733 2734 .preorder-info { 2735 margin: 10px 0; 2736 padding: 12px 2737 } 2738 2739 .preorder-info-title { 2740 font-size: 13px 2741 } 2742 2743 .preorder-info-row { 2744 font-size: 12px 2745 } 2746 2747 .preorder-info-note { 2748 font-size: 11px; 2749 padding: 6px 8px 2750 } 2751 } 2752 </style> 2753 2754 <div class="pd-sticky-header" id="pd-sticky-header"> 2755 <div class="pd-sticky-header-container"> 2756 <div class="pd-sticky-thumb"><img src="/image.png" alt="88MEGA" 2757 id="pd-sticky-thumb-img"></div> 2758 <div class="pd-sticky-info"> 2759 <h2 class="pd-sticky-title" id="pd-sticky-title">88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!</h2> 2760 <div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 10.000,-</span><span 2761 class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 1.000.000</span><span 2762 class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div> 2763 </div> 2764 <div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" 2765 aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16" 2766 aria-hidden="true"> 2767 <path fill="currentColor" 2768 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" /></path> 2769 </svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat" id="pd-sticky-chat"><svg
2770 viewBox="0 0 640 640" fill="currentColor" aria-hidden="true"> 2771 <path 2772 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" /></path> 2773 </svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart" id="pd-sticky-add-cart" 2774 disabled>+ Keranjang</button><button type="button" class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" 2775 disabled>Beli Sekarang</button></div> 2776 </div> 2777 </div> 2778 2779 <main class="product-single product-single--v3"> 2780 <nav class="pd-breadcrumb" aria-label="breadcrumb"><a 2781 href="https://88megagacor.com/">88MEGA</a><span>/</span><a href="https://88megagacor.com/">88MEGA 2782 ONLINE</a><span>/</span><a href="https://88megagacor.com/">88MEGA LOGIN</a><span>/</span><a 2783 href="https://88megagacor.com/">88MEGA GAME ONLINE</a><span>/</span><a href="https://88megagacor.com/">APLIKASI 2784 ONLINE </a><span>/</span><span class="current">88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa! 2785 2786 </span></nav> 2787 2788 <div class="pd-top-layout"> 2789 <section class="pd-media-card"> 2790 <figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img" src="/image.png" alt="88MEGA" data-slug="" loading="eager" style="cursor: zoom-in;" /> 2791 </figure> 2792 2793 <div class="pd-mobile-slider-wrapper"> 2794 <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)"> 2795 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="eager"> 2796 </div> 2797 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="lazy"> 2798 </div> 2799 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="lazy"> 2800 </div> 2801 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="lazy"> 2802 </div> 2803 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="lazy"> 2804 </div> 2805 <div class="pd-mslide"><img src="/image.png" alt="88MEGA" loading="lazy"> 2806 </div> 2807 </div> 2808 <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div> 2809 </div> 2810 <div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button type="button" 2811 class="pd-thumb-btn active" data-full="/image.png" data-alt="88MEGA" 2812 data-slug="" aria-label="Gambar 1"><img src="/image.png" alt="88MEGA" 2813 loading="lazy"></button><button type="button" class="pd-thumb-btn " 2814 data-full="/image.png" data-alt="88MEGA" 2815 data-slug="/image.png" aria-label="Gambar 2"><img 2816 src="/image.png" alt="88MEGA" loading="lazy"></button><button type="button" 2817 class="pd-thumb-btn " data-full="/image.png" data-alt="88MEGA" 2818 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" 2819 aria-label="Gambar 3"><img src="/image.png" alt="88MEGA" 2820 loading="lazy"></button><button type="button" class="pd-thumb-btn " 2821 data-full="/image.png" data-alt="88MEGA" 2822 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" 2823 aria-label="Gambar 4"><img src="/image.png" alt="88MEGA" 2824 loading="lazy"></button><button type="button" class="pd-thumb-btn "
2825 data-full="/image.png" data-alt="88MEGA" 2826 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" 2827 aria-label="Gambar 5"><img src="/image.png" alt="88MEGA" 2828 loading="lazy"></button><button type="button" class="pd-thumb-btn " 2829 data-full="/image.png" data-alt="88MEGA" 2830 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" 2831 aria-label="Gambar 6"><img src="/image.png" alt="88MEGA" 2832 loading="lazy"></button></div> 2833 <div class="pd-title-row"> 2834 <h1 class="pd-title" id="pd-title">88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!</h1> 2835 <button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg 2836 viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"> 2837 <path fill="currentColor" 2838 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" /></path> 2839 </svg></button> 2840 </div><div class="pd-price-block" id="pd-price-block"> 2841 <div class="pd-price-row"> 2842 <span class="pd-price-current" id="pd-price-current">Rp 10.000</span> 2843 <span class="pd-price-original" id="pd-price-original">Rp 50.000</span> 2844 <span class="pd-discount-badge" id="pd-discount-badge">-90%</span> 2845 </div> 2846 <div class="pd-meta-row"> 2847 <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual 2</span> 2848 <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden> 2849 <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"> 2850 <path 2851 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" /></path> 2852 </svg>Bisa PWP</span> 2853 </div> 2854 <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">88MEGA</span> 2855 <span class="sku">SKU: <span id="pd-sku">1S83N0880RID</span></span> 2856 </div> 2857 <div class="paylater-promo paylater-promo-sm paylater-mobile-only"> 2858 <span class="paylater-icon">ðŸâ³</span> 2859 <span class="paylater-text"> 2860 <strong>88MEGA</strong> 2861 <small>88MEGA TOGEL</small> 2862 </span> 2863 </div> 2864 2865 <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" 2866 aria-label="Informasi stok cabang"> 2867 <div class="sp-head"> 2868 <div class="sp-title">Stok Cabang</div><button type="button" class="sp-close" 2869 id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"> 2870 <path fill="currentColor" 2871 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" /></path> 2872 </svg></button> 2873 </div> 2874 <ul class="sp-list"> 2875 <li class="sp-item"> 2876 <div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span class="sp-label">Asia 2877 Mega Mas</span></div><span class="sp-qty" id="sp-qty-meg">0</span><a class="sp-wa" 2878 href="https://gogo.88megagacor.one/back/" 2879 target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas"><svg class="ico-wa"
2880 viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2881 <path fill="currentColor" 2882 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" /></path> 2883 </svg></a> 2884 </li> 2885 2886 <li class="sp-item"> 2887 <div class="sp-left"> 2888 <span class="sp-dot" style="--dot:#d33434;"></span> 2889 <span class="sp-label">Medan Fair</span> 2890 </div> 2891 <span class="sp-qty" id="sp-qty-mdf">0</span> 2892 <a class="sp-wa" 2893 href="https://gogo.88megagacor.one/back/" 2894 target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair"> 2895 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2896 <path fill="currentColor" 2897 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" /></path> 2898 </svg> 2899 </a> 2900 </li> 2901 2902 <li class="sp-item"> 2903 <div class="sp-left"> 2904 <span class="sp-dot" style="--dot:#f59e0b;"></span> 2905 <span class="sp-label">Banda Aceh</span> 2906 </div> 2907 <span class="sp-qty" id="sp-qty-bda">0</span> 2908 <a class="sp-wa" 2909 href="https://wa.me/6281355775564?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" 2910 target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh"> 2911 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2912 <path fill="currentColor" 2913 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" /></path> 2914 </svg> 2915 </a> 2916 </li> 2917 </ul> 2918 </div> 2919 2920 </div></section> 2921 <section class="pd-info-card"> 2922 <div id="pd-variant-combined" class="pd-variant-combined"></div> 2923 2924 <div id="pd-price-anchor"> 2925 </div> 2926 <div class="pd-price-qr-container"> 2927 2928 <div class="pd-qr-print" style="display:none;"> 2929 <div class="pd-qr-label">Scan untuk lihat produk:</div><img 2930 src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8as
2930p2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" 2931 alt="QR Code" class="pd-qr-image"> 2932 </div> 2933 </div> 2934 <div id="pd-variants-anchor"></div> 2935 2936 2937 2938 <div class="pd-compare-section"> 2939 <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325"> 2940 <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 2941 <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z" /></path> 2942 </svg> 2943 <span class="compare-text">Bandingkan Produk</span> 2944 <span class="compare-remove" hidden> 2945 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 2946 <path 2947 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" /></path> 2948 </svg> 2949 Hapus dari Perbandingan 2950 </span> 2951 </button> 2952 <div class="pd-compare-info"> 2953 <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan AI</small> 2954 </div> 2955 </div> 2956 2957 <div class="pd-short-desc"> 2958 <p><strong>Informasi 88MEGA :</strong></p> 2959 <ul> 2960 <li>Pilihan produk yang lengkap.</li> 2961 <li>Mudah mencari kebutuhan berdasarkan kategori.</li> 2962 <li>Cocok untuk game Online dan lainnya.</li> 2963 <li>
2963Proses top up lebih praktis dari rumah.</li>Kunjungi Sekarang: <a href="https://88megagacor.com/">Klik Disini</a> 2964 </ul> 2965 </div> 2966 <div id="golden-slot-standalone-v3"> 2967 2968 <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325" data-variant-id="0" 2969 data-category-path="Komputer & Laptop/Laptop/Gaming"> 2970 <div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" 2971 fill="currentColor"> 2972 <path 2973 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" /></path> 2974 </svg> 2975 <div class="pwp-text"> 2976 <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3> 2977 <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p> 2978 </div> 2979 </div> 2980 <div class="pwp-deals-loading"> 2981 <div class="pwp-spinner"></div> 2982 <p>Memuat penawaran...</p> 2983 </div> 2984 <div class="pwp-deals-grid" id="pwp-deals-grid"></div> 2985 <p class="pwp-cart-note">ðŸâ¡ Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini dimasukkan 2986 </p> 2987 </div> 2988 </div></section> 2989 2990 <aside class="pd-sidebar"> 2991 <div class="pd-side-card pd-buy-card"> 2992 <form class="pd-buy-form" id="pd-buy-form" data-pid="325"> 2993 <input type="hidden" name="variant_id" id="pd-variant-id" value="0"> 2994 <div> 2995 <label for="qty" class="qty-label">Qty</label> 2996 <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled> 2997 </div> 2998 <div class="pd-actions"> 2999 <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled data-product-id="325">+ Keranjang</button> 3000 <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled data-product-id="325">Beli</button> 3001 <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" 3002 title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"> 3003 <path 3004 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" /></path> 3005 </svg></button> 3006 </div> 3007 </form> 3008 <div class="paylater-promo paylater-promo-md paylater-desktop-only"> 3009 <span class="paylater-icon">ðŸâ³</span> 3010 <span class="paylater-text"> 3011 <strong>Authorized 88MEGA</strong> 3012 <small>Pelayanan Meditasi</small> 3013 </span> 3014 </div> 3015 </div> 3016 3017 3018 <div class="pd-side-card qoala-banner-card"> 3019 <div class="qoala-banner"> 3020 <div class="qoala-banner-content"> 3021 <div class="qoala-icon"> 3022 <center><img src="/88megaicon.webp" alt="88MEGA" class="qoala-shield-img"> 3023 </center> 3024 </div> 3025 <div class="qoala-text"> 3026 <div class="qoala-title">88MEGA</div> 3027 <div class="qoala-subtitle">Verified</div> 3028 </div> 3029 </div> 3030 <a href="https://88megagacor.com/" class="qoala-cta" data-ga-event="qoala_banner_click" 3031 data-product-id="325" data-product-name="88MEGA" 3032 data-category-path="Komputer & Laptop/Laptop/Gaming" target="_blank">Info</a> 3033 </div> 3034 <style> 3035 .qoala-banner-card { 3036 padding: 0; 3037 overflow: hidden 3038 } 3039 3040 .qoala-banner { 3041 background: linear-gradient(135deg, #ffffff 0%, #ffffff 100%); 3042 padding: 12px 16px; 3043 display: flex; 3044 align-items: center; 3045 justify-content: space-between; 3046 color: rgb(0, 0, 0); 3047 text-decoration: none; 3048 min-height: 60px 3049 } 3050 3051 .qoala-banner-content { 3052 display: flex; 3053 align-items: center; 3054 gap: 12px 3055 } 3056 3057 .qoala-icon { 3058 display: flex; 3059 align-items: center; 3060 justify-content: center 3061 } 3062 3063 .qoala-shield-img { 3064 width: 36px; 3065 height: 36px; 3066 object-fit: contain; 3067 opacity: 0.9 3068 } 3069 3070 .qoala-title { 3071 font-weight: 600; 3072 font-size: 14px; 3073 line-height: 1.2 3074 } 3075 3076 .qoala-subtitle { 3077 font-size: 12px; 3078 opacity: 0.9; 3079 line-height: 1.2 3080 } 3081 3082 .qoala-cta { 3083 background: rgba(255, 255, 255, 0.2); 3084 color: rgb(0, 0, 0); 3085 padding: 6px 12px; 3086 border-radius: 6px; 3087 font-size: 12px; 3088 font-weight: 600; 3089 text-decoration: none; 3090 transition: background 0.2s ease; 3091 border: 1px solid rgba(255, 255, 255, 0.3) 3092 } 3093 3094 .qoala-cta:hover { 3095 background: rgba(255, 255, 255, 0.3); 3096 color: rgb(0, 0, 0) 3097 } 3098 3099 @media(max-width:768px) { 3100 .qoala-banner { 3101 padding: 10px 12px 3102 } 3103 3104 .qoala-title { 3105 font-size: 17px 3106 } 3107 3108 .qoala-subtitle { 3109 font-size: 11px 3110 } 3111 } 3112 </style> 3113 </div> 3114 3115 <div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000" data-zero-smart="0"> 3116 <div class="inst-head"> 3117 <h3>Promo & Fitur 88MEGA</h3> 3118 </div> 3119 3120 <div class="inst-bank-tabs" role="tablist" aria-label="Bank"> 3121 <button type="button" class="bank-tab active" data-bank="Lucky Draw" aria-selected="true">Lucky 3122 Draw Pelangan</button> 3123 <button type="button" class="bank-tab" data-bank="LINK EXPRESS" aria-selected="false">Bonus PeLangan VIP</button> 3124 <button type="button" class="bank-tab" data-bank="Toto Macau" aria-selected="false">Bonus Chasback</button> 3125 </div> 3126 3127 <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"><li class="inst-month-item"><span class="tenor-badge">3x</span><span class="amount">Rp 6.929.700 / bln</span></li><li class="inst-month-item"><span class="tenor-badge">6x</span><span class="amount">Rp 3.464.900 / bln</span></li><li class="inst-month-item"><span class="tenor-badge">12x</span><span class="amount">Rp 1.732.500 / bln</span></li></ul> 3128 <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*</div> 3129 <div class="inst-disclaimer">Angka estimasi. Bisa ber https://88megagacor.com/ sesuai kebijakan bank / 3130 penyedia.</div> 3131 </div> 3132 </aside></div> 3133 <style> 3134 :root { 3135 --sd-black: #07040d; 3136 --sd-dark: #12071f; 3137 --sd-purple: #8b00ff; 3138 --sd-violet: #5d00d9; 3139 --sd-magenta: #ff1493; 3140 --sd-cyan: #00f5ff; 3141 --sd-white: #f7f2ff; 3142 --sd-muted: #d8cbea; 3143 } 3144 3145 /* CONTAINER STREET DEMONS */ 3146 .article-pro { 3147 width: calc(100% - 30px); 3148 max-width: 1000px; 3149 margin: 40px auto; 3150 padding: 32px 28px; 3151 box-sizing: border-box; 3152 3153 background: 3154 radial-gradient(circle at top right, 3155 rgba(255, 20, 147, 0.18), 3156 transparent 34%), 3157 radial-gradient(circle at bottom left, 3158 rgba(0, 245, 255, 0.14), 3159 transparent 38%), 3160 linear-gradient(145deg, 3161 #090510 0%, 3162 #160824 48%, 3163 #07040d 100%); 3164 3165 border: 2px solid var(--sd-purple); 3166 border-radius: 10px 24px 10px 24px; 3167 3168 box-shadow: 3169 0 18px 40px rgba(0, 0, 0, 0.6), 3170 0 0 18px rgba(139, 0, 255, 0.55), 3171 0 0 30px rgba(255, 20, 147, 0.22), 3172 inset 0 0 22px rgba(0, 245, 255, 0.08); 3173 3174 font-family: "Poppins", Arial, sans-serif; 3175 color: var(--sd-white); 3176 line-height: 1.8; 3177 3178 position: relative; 3179 isolation: isolate; 3180 overflow: hidden; 3181 3182 transition: 3183 transform 0.35s ease, 3184 border-color 0.35s ease, 3185 box-shadow 0.35s ease; 3186 } 3187 3188 /* HOVER CONTAINER */ 3189 .article-pro:hover { 3190 transform: translateY(-3px); 3191 border-color: var(--sd-cyan); 3192 3193 box-shadow: 3194 0 22px 48px rgba(0, 0, 0, 0.7), 3195 0 0 20px rgba(0, 245, 255, 0.55), 3196 0 0 38px rgba(255, 20, 147, 0.32), 3197 inset 0 0 24px rgba(139, 0, 255, 0.12); 3198 } 3199 3200 /* KILATAN NEON BERGERAK */ 3201 .article-pro::before { 3202 content: ""; 3203 position: absolute; 3204 top: -20%; 3205 left: -160%; 3206 width: 65%; 3207 height: 140%; 3208 z-index: 0; 3209 pointer-events: none; 3210 3211 background: linear-gradient(90deg, 3212 transparent, 3213 rgba(139, 0, 255, 0.12), 3214 rgba(255, 20, 147, 0.52), 3215 rgba(0, 245, 255, 0.58), 3216 transparent); 3217 3218 transform: skewX(-24deg); 3219 filter: blur(1px); 3220 animation: streetDemonShine 4.5s infinite ease-in-out; 3221 } 3222 3223 /* TEKSTUR GRAFFITI DAN GARIS DISTORSI */ 3224 .article-pro::after { 3225 content: ""; 3226 position: absolute; 3227 inset: 0; 3228 z-index: 0; 3229 pointer-events: none; 3230 border-radius: inherit; 3231 3232 background: 3233 repeating-linear-gradient(-35deg, 3234 transparent 0, 3235 transparent 12px, 3236 rgba(255, 255, 255, 0.025) 13px, 3237 rgba(255, 20, 147, 0.04) 15px, 3238 transparent 18px), 3239 repeating-linear-gradient(0deg, 3240 transparent 0, 3241 transparent 4px, 3242 rgba(0, 245, 255, 0.025) 5px, 3243 transparent 6px); 3244 3245 box-shadow: 3246 inset 0 0 0 1px rgba(255, 255, 255, 0.04), 3247 inset 0 0 20px rgba(139, 0, 255, 0.16); 3248 3249 opacity: 0.9; 3250 mix-blend-mode: screen;
3251 } 3252 3253 /* PASTIKAN KONTEN BERADA DI DEPAN EFEK */ 3254 .article-pro>* { 3255 position: relative; 3256 z-index: 2; 3257 } 3258 3259 /* PARAGRAF */ 3260 .article-pro p { 3261 margin: 0 0 18px; 3262 color: var(--sd-muted); 3263 font-size: 15px; 3264 line-height: 1.85; 3265 text-align: justify; 3266 3267 transition: 3268 color 0.3s ease, 3269 text-shadow 0.3s ease, 3270 transform 0.3s ease; 3271 } 3272 3273 .article-pro p:last-child { 3274 margin-bottom: 0; 3275 } 3276 3277 /* HOVER PARAGRAF */ 3278 .article-pro p:hover { 3279 color: #ffffff; 3280 transform: translateX(3px); 3281 3282 text-shadow: 3283 0 0 7px rgba(0, 245, 255, 0.34), 3284 0 0 12px rgba(255, 20, 147, 0.22); 3285 } 3286 3287 /* JUDUL DI DALAM ARTIKEL */ 3288 .article-pro h1, 3289 .article-pro h2, 3290 .article-pro h3 { 3291 color: #ffffff; 3292 font-weight: 900; 3293 font-style: italic; 3294 text-transform: uppercase; 3295 letter-spacing: 1.5px; 3296 3297 text-shadow: 3298 3px 3px 0 rgba(139, 0, 255, 0.75), 3299 -2px -2px 0 rgba(255, 20, 147, 0.42), 3300 0 0 12px rgba(0, 245, 255, 0.45); 3301 } 3302 3303 .article-pro h1::after, 3304 .article-pro h2::after, 3305 .article-pro h3::after { 3306 content: ""; 3307 display: block; 3308 width: 110px; 3309 height: 4px; 3310 margin-top: 10px; 3311 3312 background: linear-gradient(90deg, 3313 var(--sd-magenta), 3314 var(--sd-purple), 3315 var(--sd-cyan), 3316 transparent); 3317 3318 box-shadow: 3319 0 0 8px rgba(255, 20, 147, 0.7), 3320 0 0 14px rgba(0, 245, 255, 0.45); 3321 3322 transform: skewX(-25deg); 3323 } 3324 3325 /* LINK */ 3326 .article-pro a { 3327 color: #FFD700; 3328 font-weight: 700; 3329 text-decoration: none; 3330 position: relative; 3331 3332 text-shadow: 3333 0 0 7px rgba(0, 245, 255, 0.48); 3334 3335 transition: 3336 color 0.3s ease, 3337 text-shadow 0.3s ease; 3338 } 3339 3340 .article-pro a::after { 3341 content: ""; 3342 position: absolute; 3343 right: 0; 3344 bottom: -3px; 3345 left: 0; 3346 height: 2px; 3347 3348 background: linear-gradient(90deg, 3349 var(--sd-magenta), 3350 var(--sd-purple), 3351 var(--sd-cyan)); 3352 3353 transform: scaleX(0); 3354 transform-origin: right; 3355 transition: transform 0.3s ease; 3356 } 3357 3358 .article-pro a:hover { 3359 color: #ffffff; 3360 3361 text-shadow: 3362 0 0 8px var(--sd-cyan), 3363 0 0 15px rgba(255, 20, 147, 0.85); 3364 } 3365 3366 .article-pro a:hover::after { 3367 transform: scaleX(1); 3368 transform-origin: left; 3369 } 3370 3371 /* TEKS TEBAL */ 3372 .article-pro strong { 3373 color: #ff62bc; 3374 3375 text-shadow: 3376 0 0 8px rgba(255, 20, 147, 0.45); 3377 } 3378 3379 /* LIST */ 3380 .article-pro ul, 3381 .article-pro ol { 3382 margin: 18px 0; 3383 padding-left: 24px; 3384 color: var(--sd-muted); 3385 } 3386 3387 .article-pro li { 3388 margin-bottom: 9px; 3389 } 3390 3391 .article-pro li::marker { 3392 color: var(--sd-cyan); 3393 } 3394 3395 /* BLOCKQUOTE */ 3396 .article-pro blockquote { 3397 margin: 24px 0; 3398 padding: 18px 20px; 3399 3400 color: #f7ecff; 3401 3402 background: linear-gradient(90deg, 3403 rgba(139, 0, 255, 0.18), 3404 rgba(255, 20, 147, 0.08), 3405 transparent); 3406 3407 border-left: 4px solid var(--sd-magenta); 3408 border-radius: 4px 14px 14px 4px; 3409 3410 box-shadow: 3411 inset 8px 0 18px rgba(139, 0, 255, 0.1), 3412 0 0 15px rgba(255, 20, 147, 0.12); 3413 } 3414 3415 /* ANIMASI KILATAN */ 3416 @keyframes streetDemonShine { 3417 0% { 3418 left: -160%; 3419 opacity: 0; 3420 } 3421 3422 12% { 3423 opacity: 1; 3424 } 3425 3426 40% { 3427 left: 170%; 3428 opacity: 1; 3429 } 3430 3431 100% { 3432 left: 170%; 3433 opacity: 0; 3434 } 3435 } 3436 3437 /* RESPONSIVE TABLET */ 3438 @media (max-width: 768px) { 3439 .article-pro { 3440 margin: 28px auto; 3441 padding: 25px 20px; 3442 border-radius: 8px 18px 8px 18px; 3443 } 3444 3445 .article-pro p { 3446 font-size: 14.5px; 3447 text-align: left; 3448 } 3449 } 3450 3451 /* RESPONSIVE HP */ 3452 @media (max-width: 600px) { 3453 .article-pro { 3454 width: calc(100% - 20px); 3455 margin: 22px auto; 3456 padding: 21px 16px; 3457 } 3458 3459 .article-pro h1 { 3460 font-size: 24px; 3461 } 3462 3463 .article-pro h2 { 3464 font-size: 21px; 3465 } 3466 3467 .article-pro h3 { 3468 font-size: 18px; 3469 } 3470 3471 .article-pro p { 3472 font-size: 14px; 3473 line-height: 1.75; 3474 } 3475 } 3476 3477 /* AKSESIBILITAS */ 3478 @media (prefers-reduced-motion: reduce) { 3479 3480 .article-pro, 3481 .article-pro::before, 3482 .article-pro p, 3483 .article-pro a { 3484 animation: none; 3485 transition: none; 3486 } 3487 } 3488 </style> 3489 3490 <div class="article-pro"> 3491 3492 <p> 3493 Selamat datang di <a href="https://88megagacor.com/">88MEGA </a> platform game slot online terdepan yang dirancang khusus untuk menghadirkan pengalaman bermain tak terlupakan dan penuh kejutan setiap hari. Di sini, Anda akan menemu
3493kan ribuan pilihan permainan berkualitas tinggi dari provider ternama dunia, lengkap dengan visual memukau, efek suara spektakuler, dan tingkat pengembalian pemain atau RTP yang sangat kompetitif. 3494 </p> 3495 3496 <p> 3497 Tidak hanya menawarkan hiburan kelas atas, platform <a href="https://88megagacor.com/">88MEGA Login</a> juga dikenal royal dalam memberikan berbagai penawaran menarik. Mulai dari bonus selamat datang bagi anggota baru, cashback harian, hingga promo turnamen berhadiah fantastis menanti untuk Anda klaim. Setiap putaran memberikan peluang nyata untuk meraih kemenangan maksimal atau jackpot progresif yang bisa mengubah hidup dalam sekejap. 3498 </p> 3499 3500 </div> 3501 3502 <style> 3503 :root { 3504 --sd-bg: #0b0711; 3505 --sd-box: #140b1d; 3506 --sd-card: #1b1026; 3507 --sd-purple: #0026fd; 3508 --sd-pink: #0026fd; 3509 --sd-cyan: #0026fd; 3510 --sd-white: #ffffff; 3511 --sd-text: #ddd3e7; 3512 --sd-muted: #a99db5; 3513 } 3514 3515 * { 3516 box-sizing: border-box; 3517 } 3518 3519 .sgt-wrap { 3520 width: 100%; 3521 max-width: 1050px; 3522 margin: 40px auto; 3523 padding: 0 16px; 3524 font-family: Arial, Helvetica, sans-serif; 3525 } 3526 3527 .sgt-box { 3528 padding: 32px; 3529 overflow: hidden; 3530 position: relative; 3531 3532 background: 3533 linear-gradient(145deg, 3534 rgba(139, 44, 255, 0.08), 3535 transparent 45%), 3536 var(--sd-bg); 3537 3538 border: 1px solid rgba(139, 44, 255, 0.65); 3539 border-radius: 18px; 3540 3541 box-shadow: 3542 0 16px 36px rgba(0, 0, 0, 0.4), 3543 0 0 15px rgba(139, 44, 255, 0.18); 3544 } 3545 3546 .sgt-box::before { 3547 content: ""; 3548 position: absolute; 3549 top: 0; 3550 right: 0; 3551 3552 width: 180px; 3553 height: 180px; 3554 3555 background: radial-gradient(circle, 3556 rgba(255, 60, 166, 0.13), 3557 transparent 68%); 3558 3559 pointer-events: none; 3560 } 3561 3562 .sgt-title { 3563 position: relative; 3564 z-index: 1; 3565 3566 margin: 0 0 28px; 3567 color: var(--sd-white); 3568 3569 font-size: clamp(22px, 4vw, 30px); 3570 font-weight: 900; 3571 line-height: 1.35; 3572 letter-spacing: 1px; 3573 text-align: center; 3574 text-transform: uppercase; 3575 3576 text-shadow: 2px 2px 0 rgba(139, 44, 255, 0.65); 3577 } 3578 3579 .sgt-title::after { 3580 content: ""; 3581 display: block; 3582 3583 width: 110px; 3584 height: 3px; 3585 margin: 12px auto 0; 3586 3587 background: linear-gradient(90deg, 3588 var(--sd-pink), 3589 var(--sd-purple), 3590 var(--sd-cyan)); 3591 3592 border-radius: 20px; 3593 } 3594 3595 .sgt-section-title { 3596 margin-top: 42px; 3597 font-size: clamp(19px, 3vw, 24px); 3598 } 3599 3600 /* ===================== 3601 FAQ 3602 ====================== */ 3603 3604 .sgt-faq-list { 3605 display: grid; 3606 gap: 14px; 3607 position: relative; 3608 z-index: 1; 3609 } 3610 3611 .sgt-faq { 3612 overflow: hidden; 3613 cursor: pointer; 3614 3615 background: var(--sd-card); 3616 border: 1px solid rgba(40, 231, 242, 0.22); 3617 border-left: 4px solid var(--sd-cyan); 3618 border-radius: 12px; 3619 3620 transition: 3621 border-color 0.25s ease, 3622 transform 0.25s ease, 3623 box-shadow 0.25s ease; 3624 } 3625 3626 .sgt-faq:hover, 3627 .sgt-faq.active { 3628 transform: translateY(-2px); 3629 border-color: rgba(40, 231, 242, 0.7); 3630 3631 box-shadow: 3632 0 8px 20px rgba(0, 0, 0, 0.28), 3633 0 0 10px rgba(40, 231, 242, 0.1); 3634 } 3635 3636 .sgt-question { 3637 display: flex; 3638 align-items: center; 3639 justify-content: space-between; 3640 gap: 14px; 3641 3642 padding: 18px 20px; 3643 3644 color: var(--sd-white); 3645 font-size: 16px; 3646 font-weight: 700; 3647 line-height: 1.5; 3648 } 3649 3650 .sgt-icon { 3651 flex: 0 0 auto; 3652 color: var(--sd-cyan); 3653 font-size: 15px; 3654 3655 transition: transform 0.25s ease; 3656 } 3657 3658 .sgt-faq.active .sgt-icon { 3659 transform: rotate(180deg); 3660 } 3661 3662 .sgt-answer { 3663 max-height: 0; 3664 overflow: hidden; 3665 3666 padding: 0 20px; 3667 3668 color: var(--sd-text); 3669 font-size: 15px; 3670 line-height: 1.75; 3671 3672 opacity: 0; 3673 3674 transition: 3675 max-height 0.35s ease, 3676 padding 0.35s ease, 3677 opacity 0.25s ease; 3678 } 3679 3680 .sgt-faq.active .sgt-answer { 3681 max-height: 300px; 3682 padding: 0 20px 18px; 3683 opacity: 1;
3684 } 3685 3686 /* ===================== 3687 REVIEW 3688 ====================== */ 3689 3690 .sgt-review-note { 3691 margin: -10px 0 22px; 3692 color: var(--sd-muted); 3693 font-size: 13px; 3694 text-align: center; 3695 } 3696 3697 .sgt-review-list { 3698 display: grid; 3699 grid-template-columns: repeat(2, minmax(0, 1fr)); 3700 gap: 16px; 3701 3702 position: relative; 3703 z-index: 1; 3704 } 3705 3706 .sgt-review { 3707 padding: 20px; 3708 3709 background: 3710 linear-gradient(145deg, 3711 rgba(255, 60, 166, 0.07), 3712 transparent 55%), 3713 var(--sd-card); 3714 3715 border: 1px solid rgba(255, 60, 166, 0.25); 3716 border-bottom: 4px solid var(--sd-pink); 3717 border-radius: 14px; 3718 3719 color: var(--sd-text); 3720 font-size: 15px; 3721 line-height: 1.7; 3722 3723 transition: 3724 transform 0.25s ease, 3725 border-color 0.25s ease, 3726 box-shadow 0.25s ease; 3727 } 3728 3729 .sgt-review:hover { 3730 transform: translateY(-3px); 3731 border-color: rgba(255, 60, 166, 0.65); 3732 3733 box-shadow: 3734 0 10px 22px rgba(0, 0, 0, 0.3), 3735 0 0 10px rgba(255, 60, 166, 0.12); 3736 } 3737 3738 .sgt-review-top { 3739 display: flex; 3740 align-items: center; 3741 gap: 12px; 3742 margin-bottom: 14px; 3743 } 3744 3745 .sgt-avatar { 3746 display: grid; 3747 place-items: center; 3748 flex: 0 0 44px; 3749 3750 width: 44px; 3751 height: 44px; 3752 3753 color: var(--sd-white); 3754 background: linear-gradient(135deg, 3755 var(--sd-purple), 3756 var(--sd-pink)); 3757 3758 border-radius: 10px; 3759 font-weight: 900; 3760 } 3761 3762 .sgt-name { 3763 color: var(--sd-white); 3764 font-size: 15px; 3765 font-weight: 800; 3766 text-transform: uppercase; 3767 } 3768 3769 .sgt-stars { 3770 margin-top: 3px; 3771 color: var(--sd-cyan); 3772 font-size: 13px; 3773 letter-spacing: 1px; 3774 } 3775 3776 .sgt-review p { 3777 margin: 0; 3778 } 3779 3780 .sgt-footer { 3781 margin-top: 34px; 3782 padding-top: 18px; 3783 3784 color: var(--sd-muted); 3785 border-top: 1px solid rgba(139, 44, 255, 0.22); 3786 3787 font-size: 13px; 3788 text-align: center; 3789 } 3790 3791 @media (max-width: 768px) { 3792 .sgt-wrap { 3793 margin: 25px auto; 3794 padding: 0 10px; 3795 } 3796 3797 .sgt-box { 3798 padding: 24px 16px; 3799 } 3800 3801 .sgt-review-list { 3802 grid-template-columns: 1fr; 3803 } 3804 3805 .sgt-question { 3806 padding: 16px; 3807 font-size: 15px; 3808 } 3809 3810 .sgt-answer { 3811 padding-right: 16px; 3812 padding-left: 16px; 3813 font-size: 14px; 3814 } 3815 3816 .sgt-faq.active .sgt-answer { 3817 padding: 0 16px 16px; 3818 } 3819 } 3820 3821 @media (prefers-reduced-motion: reduce) { 3822 3823 .sgt-faq, 3824 .sgt-review, 3825 .sgt-answer, 3826 .sgt-icon { 3827 transition: none; 3828 } 3829 } 3830 </style> 3831 3832 <div class="sgt-wrap"> 3833 <section class="sgt-box"> 3834 3835 <h2 class="sgt-title"> 3836 88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa! 3837 </h2> 3838 3839 <!-- FAQ --> 3840 <h3 class="sgt-title sgt-section-title"> 3841 FAQ Seputar 88MEGA 3842 </h3> 3843 3844 <div class="sgt-faq-list"> 3845 3846 <div class="sgt-faq"> 3847 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3848 Apa itu 88MEGA dan apa saja layanan yang ditawarkan? 3849 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3850 </div> 3851 3852 <div class="sgt-answer"> 3853 88MEGA adalah sebuah portal game online yang menghubungkan pemain dengan berbagai permainan digital populer dan terviral saat ini. Platform ini menawarkan akses ke ratusan game dari penyedia terkemuka yang telah terverifikasi kualitasnya. Setiap permainan yang tersedia di 88MEGA telah melalui proses kurasi ketat untuk memastikan keadilan dan keamanan. Pemain dapat menikmati berbagai kategori game mulai dari yang klasik hingga paling modern. 88MEGA juga menyediakan informasi lengkap tentang setiap game termasuk tingkat kesulitan dan potensi jackpot. Dengan demikian pemain dapat memilih permainan yang paling sesuai dengan preferensi mereka. 3854 </div> 3855 </div> 3856 3857 <div class="sgt-faq"> 3858 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3859 Apakah 88MEGA aman digunakan untuk bermain game slot online?
3860 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3861 </div> 3862 3863 <div class="sgt-answer"> 3864 Portal ini menggunakan sistem enkripsi terkini untuk melindungi data pribadi dan riwayat transaksi pengguna. 88MEGA juga hanya bekerja sama dengan penyedia game yang memiliki lisensi resmi dan reputasi baik di industri. Proses verifikasi akun dilakukan secara ketat untuk mencegah penyalahgunaan oleh pihak tidak bertanggung jawab. Banyak pengguna yang telah menggunakan 88MEGA selama bertahun-tahun tanpa mengalami kendala berarti. Mereka menganggap portal ini cukup terpercaya untuk pengalaman bermain game online jangka panjang. 3865 </div> 3866 </div> 3867 3868 <div class="sgt-faq"> 3869 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3870 Berapa modal minimum yang diperlukan untuk bergabung di 88MEGA? 3871 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3872 </div> 3873 3874 <div class="sgt-answer"> 3875 88MEGA menawarkan fleksibilitas dalam hal biaya akses dan deposit awal untuk pemain baru. Anda bisa memulai dengan nominal yang sangat terjangkau untuk mencoba berbagai permainan yang tersedia. Hal ini bertujuan untuk memberikan akses seluas-luasnya bagi semua kalangan masyarakat. Namun perlu diingat bahwa potensi jackpot biasanya sebanding dengan tingkat komitmen dan strategi bermain yang diterapkan. Untuk pemula disarankan memulai dengan jumlah kecil terlebih dahulu sambil mempelajari pola permainan. Setelah memahami sistem dan aturan, Anda dapat meningkatkan nominal secara bertahap sesuai kemampuan. Panduan lengkap mengenai biaya tersedia di halaman bantuan 88MEGA. 3876 </div> 3877 </div> 3878 3879 <div class="sgt-faq"> 3880 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3881 Bagaimana cara menarik jackpot atau hasil kemenangan dari 88MEGA? 3882 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3883 </div> 3884 3885 <div class="sgt-answer"> 3886 Proses penarikan hasil kemenangan di 88MEGA tergolong cepat dan mudah untuk semua pengguna. Anda hanya perlu masuk ke akun pribadi dan memilih opsi penarikan dana yang tersedia. Kemudian tentukan jumlah yang ingin dicairkan sesuai dengan saldo yang dimiliki. Dana akan ditransfer ke rekening bank atau dompet digital yang telah terdaftar sebelumnya. Waktu pemrosesan biasanya berkisar antara beberapa jam hingga satu hari kerja maksimal. 88MEGA tidak memungut biaya tambahan untuk proses penarikan dana ini. Pastikan data rekening Anda sudah benar untuk menghindari keterlambatan atau kesalahan transfer. 3887 </div> 3888 </div> 3889 3890 <div class="sgt-faq"> 3891 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3892 Apakah ada strategi khusus untuk meraih jackpot di 88MEGA? 3893 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3894 </div> 3895 3896 <div class="sgt-answer"> 3897 Meskipun hasil permainan bersifat acak dan tidak dapat diprediksi, ada beberapa pendekatan yang bisa meningkatkan peluang Anda. 88MEGA menyediakan fitur analisis untuk memantau tren permainan yang sedang populer. Anda juga bisa mempelajari pola dari pemain lain melalui forum komunitas yang tersedia. Manajemen modal dan waktu yang baik sangat dianjurkan agar tidak kehilangan fokus. Disarankan untuk tidak mengejar kerugian dengan meningkatkan taruhan secara gegabah. Konsistensi dan kesabaran sering kali membawa hasil yang lebih baik dalam jangka panjang. Evaluasi rutin terhadap strategi yang digunakan juga sangat membantu meningkatkan peluang jackpot. 3898 </div> 3899 </div> 3900 3901 <div class="sgt-faq"> 3902 <div class="sgt-question" role="button" tabindex="0" aria-expanded="false"> 3903 Apa yang membedakan 88MEGA dengan portal game online lainnya? 3904 <span class="sgt-icon" aria-hidden="true">ââ¼</span> 3905 </div> 3906 3907 <div class="sgt-answer"> 3908 Keunggulan utama 88MEGA terletak pada pendekatannya yang terstruktur dan transparan dalam menyajikan game. Bukan sekadar menyediakan akses biasa, tetapi ada elemen edukasi dan panduan yang jelas untuk pemain. 88MEGA juga rutin memberikan bonus dan promosi menarik bagi pengguna setia setiap minggunya. Layanan pelanggannya responsif dan siap membantu 24 jam sehari penuh. Selain itu transparansi dalam hal aturan dan peluang kemenangan membuat pemain lebih percaya diri. Kombinasi faktor inilah yang membuat 88MEGA berbeda dan diminati banyak orang dari berbagai kalangan. 3909 </div> 3910 </div> 3911 3912 </div> 3913 3914 <!-- REVIEW --> 3915 <h3 class="sgt-title sgt-section-title"> 3916 Review 88MEGA 3917 </h3> 3918 3919 <p class="sgt-review-note"> 3920 Pengalaman Pengunjung Saat Mengakses Informasi 88MEGA 3921 </p> 3922 3923 <div class="sgt-review-list"> 3924 3925 <article class="sgt-review"> 3926 <div class="sgt-review-top"> 3927 <div class="sgt-avatar">H<Menu></Menu></div> 3928 3929 <div> 3930 <div class="sgt-name">Harun ââ¬â Medan</div> 3931 <div class="sgt-stars" aria-label="Rating 5 dari 5"> 3932 âËâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ë⦠3933 </div> 3934 </div> 3935 </div> 3936 3937 <p> 3938 Saya sudah bergabung dengan 88MEGA selama beberapa bulan dan hasilnya sangat memuaskan. Proses deposit dan withdraw cepat serta permainan yang adil membuat saya betah bermain. 3939 </p> 3940 </article> 3941 3942 <article class="sgt-review"> 3943 <div class="sgt-review-top"> 3944 <div class="sgt-avatar">S</div> 3945 3946 <div> 3947 <div class="sgt-name">Surya ââ¬â Bandung</div> 3948 <div class="sgt-stars" aria-label="Rating 5 dari 5"> 3949 âËâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ë⦠3950 </div> 3951 </div> 3952 </div> 3953 3954 <p> 3955 Awalnya ragu karena portal game slot online sering terdengar mencurigakan. Namun setelah mencoba 88MEGA saya melihat potensi jackpot yang nyata. Sangat direkomendasikan untuk pemula. 3956 </p> 3957 </article> 3958 3959 <article class="sgt-review"> 3960 <div class="sgt-review-top"> 3961 <div class="sgt-avatar">K</div> 3962 3963 <div> 3964 <div class="sgt-name">Kitang ââ¬â Surabaya</div> 3965 <div class="sgt-stars" aria-label="Rating 5 dari 5"> 3966 âËâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ë⦠3967 </div> 3968 </div> 3969 </div> 3970 3971 <p> 3972 Yang saya suka dari 88MEGA adalah adanya data statistik permainan yang lengkap. Saya bisa menganalisis sebelum bermain sehingga keputusan yang diambil lebih matang dan terencana. 3973 </p> 3974 </article> 3975 3976 <article class="sgt-review"> 3977 <div class="sgt-review-top"> 3978 <div class="sgt-avatar">A</div> 3979 3980 <div> 3981 <div class="sgt-name">Arya ââ¬â Yogyakarta</div> 3982 <div class="sgt-stars" aria-label="Rating 5 dari 5"> 3983 âËâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ëâ¦Ã¢Ë⦠3984 </div> 3985 </div> 3986 </div> 3987 3988 <p> 3989 Layanan pelanggan 88MEGA sangat membantu saat saya mengalami kendala teknis. Responnya cepat dan solusi yang diberikan tepat sasaran. Ini penting bagi pengguna yang serius. 3990 </p></article> 3991 </div> 3992 3993 <p> 3994 3995 </p> 3996 3997 3998 </section></div> 3999 4000 <footer class="sgt-footer"> 4001 é 2026 88MEGA 4002 </footer> 4003 4004 4005 4006 4007
4007<script> 4008 document.addEventListener("DOMContentLoaded", function () { 4009 const faqItems = document.querySelectorAll(".sgt-faq"); 4010 4011 faqItems.forEach(function (item) { 4012 const question = item.querySelector(".sgt-question"); 4013 4014 question.setAttribute("role", "button"); 4015 question.setAttribute("tabindex", "0"); 4016 question.setAttribute("aria-expanded", "false"); 4017 4018 function toggleFaq() { 4019 const isActive = item.classList.contains("active"); 4020 4021 faqItems.forEach(function (faq) { 4022 faq.classList.remove("active"); 4023 4024 const faqQuestion = faq.querySelector(".sgt-question"); 4025 4026 if (faqQuestion) { 4027 faqQuestion.setAttribute("aria-expanded", "false"); 4028 } 4029 }); 4030 4031 if (!isActive) { 4032 item.classList.add("active"); 4033 question.setAttribute("aria-expanded", "true"); 4034 } 4035 } 4036 4037 question.addEventListener("click", toggleFaq); 4038 4039 question.addEventListener("keydown", function (event) { 4040 if (event.key === "Enter" || event.key === " ") { 4041 event.preventDefault(); 4042 toggleFaq(); 4043 } 4044 }); 4045 }); 4046 }); 4047 </script>
4047 4048 4049 4050 4051 4052 <section class="pd-related-full"> 4053 <h2 class="pd-related-title">Produk Terkait</h2> 4054 <div class="pd-related-grid pd-related-grid--full"> 4055 <a class="pd-related-card" href="https://88megagacor.com/"> 4056 <div class="thumb"> 4057 <img src="/image.png" alt="88MEGA"> 4058 <span class="mini-disc">-2%</span> 4059 </div> 4060 <div class="info"> 4061 <h3>88MEGA</h3> 4062 <div class="spec-chips">I5 <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4063 512GB <span class="spec-divider">|</span> RTX3050</div> <span class="price"> 4064 <span class="final">Rp 10.548.331</span> 4065 <span class="ori">Rp 12.799.000</span> 4066 </span> 4067 <span class="sold">Terjual 200+</span> <span class="stock-dot low" title="Stok Terbatas"></span> 4068 </div> 4069 </a> 4070 <a class="pd-related-card" href="https://88megagacor.com/"> 4071 <div class="thumb"> 4072 <img src="/image.png" alt="ONLINE"> 4073 <span class="mini-disc">-1%</span> 4074 </div> 4075 <div class="info"> 4076 <h3>ONLINE</h3> 4077 <div class="spec-chips">PROMO <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4078 512GB <span class="spec-divider">|</span> TOP UP</div> <span class="price"> 4079 <span class="final">Rp 29.477.000</span> 4080 <span class="ori">Rp 21.999.000</span> 4081 </span> 4082 <span class="sold">Terjual 20+</span> <span class="stock-dot out" title="Habis"></span> 4083 </div> 4084 </a> 4085 <a class="pd-related-card" href="https://88megagacor.com/"> 4086 <div class="thumb"> 4087 <img src="/image.png" alt="88MEGA LOGIN"> 4088 <span class="mini-disc">-1%</span> 4089 </div> 4090 <div class="info"> 4091 <h3>88MEGA LOGIN</h3> 4092 <div class="spec-chips">PROMO <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4093 1TB <span class="spec-divider">|</span> DIAMOND</div> <span class="price"> 4094 <span class="final">Rp 29.699.000</span> 4095 <span class="ori">Rp 21.399.000</span> 4096 </span> 4097 <span class="sold">Terjual 6</span> <span class="stock-dot ready" title="Ready"></span> 4098 </div> 4099 </a> 4100 <a class="pd-related-card" href="https://88megagacor.com/"> 4101 <div class="thumb"> 4102 <img src="/image.png" alt="88MEGA GAME ONLINE"> 4103 <span class="mini-disc">-1%</span> 4104 </div> 4105 <div class="info"> 4106 <h3>88MEGA GAME ONLINE</h3> 4107 <div class="spec-chips">PROMO <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4108 1TB <span class="spec-divider">|</span> DIAMOND</div> <span class="price"> 4109 <span class="final">Rp 19.899.999</span> 4110 <span class="ori">Rp 19.799.000</span> 4111 </span> 4112 <span class="sold">Terjual 5</span> <span class="stock-dot ready" title="Ready"></span> 4113 </div> 4114 </a> 4115 <a class="pd-related-card" href="https://88megagacor.com/"> 4116 <div class="thumb"> 4117 <img src="/image.png" alt="88MEGA GAMPANG MAXWIN"> 4118 <span class="mini-disc">-1%</span> 4119 </div> 4120 <div class="info"> 4121 <h3>88MEGA GAMPANG MAXWIN</h3> 4122 <div class="spec-chips">PROMO <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4123 512GB <span class="spec-divider">|</span> TOP UP</div> <span class="price"> 4124 <span class="final">Rp 22.699.999</span> 4125 <span class="ori">Rp 27.999.000</span> 4126 </span> 4127 <span class="sold">Terjual 6</span> <span class="stock-dot low" title="Stok Terbatas"></span> 4128 </div> 4129 </a> 4130 <a class="pd-related-card" href="https://88megagacor.com/"> 4131 <div class="thumb"> 4132 <img src="/image.png" alt="88MEGA TERPERCAYA">
4133 <span class="mini-disc">-1%</span> 4134 </div> 4135 <div class="info"> 4136 <h3>88MEGA TERPERCAYA</h3> 4137 <div class="spec-chips">PROMO <span class="spec-divider">|</span> ORI <span class="spec-divider">|</span> 4138 512GB <span class="spec-divider">|</span> CHARACTER</div> <span class="price"> 4139 <span class="final">Rp 17.999.999</span> 4140 <span class="ori">Rp 18.499.000</span> 4141 </span> 4142 <span class="stock-dot low" title="Stok Terbatas"></span> 4143 </div> 4144 </a> 4145 4146 </div> 4147 </section> 4148 4149 <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" 4150 data-voucher-value="0"> 4151 <div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share" aria-label="Bagikan"><svg 4152 viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"> 4153 <path fill="currentColor" 4154 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" /></path> 4155 </svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat" aria-label="Tanya Produk"><svg
4156 viewBox="0 0 640 640" fill="currentColor"> 4157 <path 4158 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" /></path> 4159 </svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled aria-label="Tambah ke keranjang" data-product-id="325"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"> 4160 <path fill="currentColor" 4161 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" /></path> 4162 </svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled data-product-id="325"><span class="mf-buy-text">Beli 4163 Sekarang</span><span class="mf-buy-price">Rp 20.789.000</span></button></div> 4164 </div> 4165 4166 <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas" title="Kembali ke atas" aria-hidden="true" style="--scroll-top-bottom: calc(68px + 54px + env(safe-area-inset-bottom));"> 4167 <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"> 4168 <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z" /></path> 4169 </svg> 4170 </button> 4171
4171<script defer 4172 src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" 4173 integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 4174 data-cf-beacon='{"version":"2024.11.0","token":"0e3b36ed99ac47ee9ac3185ab30c2f2c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 4175 crossorigin="anonymous"></script>
4175 4176 </main> 4177 4178 <div class="pd-share-modal-overlay" id="pd-share-modal-overlay"> 4179 <div class="pd-share-modal"> 4180 <div class="pd-share-header"> 4181 <h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close" id="pd-share-close" 4182 aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24"> 4183 <path fill="currentColor" 4184 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" /></path> 4185 </svg></button> 4186 </div> 4187 <div class="pd-share-body"> 4188 <div class="pd-share-preview"><img src="/image.png" alt="88MEGA" 4189 class="pd-share-preview-img"> 4190 <div class="pd-share-preview-info"> 4191 <h3 class="pd-share-preview-name">88MEGA</h3> 4192 <p class="pd-share-preview-price">Rp 20.789.000</p> 4193 </div> 4194 </div> 4195 <p class="pd-share-label">Bagikan ke</p> 4196 <div class="pd-share-grid"><a href="#" class="pd-share-option" data-share="whatsapp" target="_blank" 4197 rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24"> 4198 <path fill="currentColor" 4199 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" /></path> 4200 </svg></span><span class="pd-share-name">WhatsApp</span></a><a href="#" class="pd-share-option" 4201 data-share="facebook" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-facebook"><svg
4202 viewBox="0 0 24 24"> 4203 <path fill="currentColor" 4204 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" /></path> 4205 </svg></span><span class="pd-share-name">Facebook</span></a><a href="#" class="pd-share-option" 4206 data-share="twitter" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-twitter"><svg 4207 viewBox="0 0 24 24"> 4208 <path fill="currentColor" 4209 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" /></path> 4210 </svg></span><span class="pd-share-name">Twitter</span></a><a href="#" class="pd-share-option" 4211 data-share="telegram" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-telegram"><svg
4212 viewBox="0 0 24 24"> 4213 <path fill="currentColor" 4214 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" /></path> 4215 </svg></span><span class="pd-share-name">Telegram</span></a><a href="#" class="pd-share-option" 4216 data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg viewBox="0 0 24 24"> 4217 <path fill="currentColor" 4218 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" /></path> 4219 </svg></span><span class="pd-share-name">Email</span></a><button type="button" class="pd-share-option" 4220 data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg viewBox="0 0 24 24"> 4221 <path fill="currentColor" 4222 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" /></path> 4223 </svg></span><span class="pd-share-name">Salin Link</span></button><button type="button" 4224 class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg
4225 viewBox="0 0 24 24"> 4226 <path fill="currentColor" 4227 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" /></path> 4228 </svg></span><span class="pd-share-name">Export PDF</span></button></div> 4229 <div class="pd-share-copy-section"> 4230 <div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input" id="pd-share-url-input" 4231 value="https://88megagacor.com/" readonly><button type="button" class="pd-share-copy-btn" 4232 id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16" height="16"> 4233 <path fill="currentColor" 4234 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" /></path> 4235 </svg><span class="pd-share-copy-text">Salin</span></button></div> 4236 </div> 4237 </div> 4238 </div> 4239 </div> 4240 4241 <style> 4242 .toast-root { 4243 position: fixed; 4244 left: 50%; 4245 bottom: 18px; 4246 transform: translateX(-50%); 4247 display: flex; 4248 flex-direction: column; 4249 gap: 10px; 4250 z-index: 99999; 4251 pointer-events: none; 4252 max-width: min(92vw, 540px) 4253 } 4254 4255 .toast { 4256 display: grid; 4257 grid-template-columns: 28px 1fr auto; 4258 gap: 12px; 4259 background: #0b1220; 4260 color: #eef3ff; 4261 border: 1px solid rgba(255, 255, 255, .08); 4262 padding: 12px 14px; 4263 border-radius: 12px; 4264 box-shadow: 0 10px 30px rgba(10, 10, 20, .35); 4265 pointer-events: auto; 4266 overflow: hidden 4267 } 4268 4269 .toast .ico { 4270 align-self: start; 4271 margin-top: 2px 4272 } 4273 4274 .toast .ttl { 4275 font-weight: 700; 4276 line-height: 1.25; 4277 font-size: 14px; 4278 margin-bottom: 4px 4279 } 4280 4281 .toast .msg { 4282 opacity: .95; 4283 line-height: 1.45; 4284 font-size: 13px 4285 } 4286 4287 .toast .actions { 4288 display: flex; 4289 gap: 8px; 4290 align-self: center 4291 } 4292 4293 .toast .btn { 4294 background: #e90e0e; 4295 color: #fff; 4296 border: 0; 4297 border-radius: 999px; 4298 padding: 8px 12px; 4299 font-size: 12px; 4300 font-weight: 700; 4301 cursor: pointer 4302 } 4303 4304 .toast .btn.alt { 4305 background: transparent; 4306 color: #8fb5ff; 4307 border: 1px solid rgba(143, 181, 255, .35) 4308 } 4309 4310 .toast .close { 4311 background: transparent; 4312 border: 0; 4313 color: #98a2b3; 4314 cursor: pointer; 4315 padding: 4px; 4316 margin-left: 6px 4317 } 4318 4319 .toast.success { 4320 border-left: 4px solid #c52222 4321 } 4322 4323 .toast.info { 4324 border-left: 4px solid #e90e0e 4325 } 4326 4327 .toast.warn { 4328 border-left: 4px solid #f59e0b 4329 } 4330 4331 .toast .progress { 4332 position: absolute; 4333 left: 0; 4334 bottom: 0; 4335 height: 3px; 4336 background: linear-gradient(90deg, #60a5fa, #c52222); 4337 width: 100%; 4338 transform-origin: left; 4339 animation: toastBar linear forwards 4340 } 4341 4342 @keyframes toastBar { 4343 from { 4344 transform: scaleX(1) 4345 } 4346 4347 to { 4348 transform: scaleX(0) 4349 } 4350 } 4351 4352 @media(max-width:640px) { 4353 .toast { 4354 grid-template-columns: 24px 1fr auto; 4355 padding: 12px 4356 } 4357 4358 .toast .btn { 4359 padding: 7px 10px 4360 } 4361 } 4362 </style> 4363 <style> 4364 .toast .msg { 4365 word-break: break-word; 4366 overflow-wrap: anywhere; 4367 } 4368 4369 .toast-root { 4370 bottom: max(12px, env(safe-area-inset-bottom, 12px)); 4371 } 4372 4373 @media (max-width: 540px) { 4374 .toast-root { 4375 left: 0; 4376 right: 0; 4377 transform: none; 4378 padding: 0 12px; 4379 bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px)); 4380 max-width: none; 4381 } 4382 4383 .toast { 4384 grid-template-columns: 1fr; 4385 /* 1 kolom */ 4386 position: relative; 4387 padding: 14px 14px 12px 14px; 4388 border-radius: 16px; 4389 } 4390 4391 .toast .ico { 4392 position: absolute; 4393 left: 14px; 4394 top: 14px; 4395 margin: 0; 4396 transform: translateY(1px); 4397 } 4398 4399 .toast .cnt { 4400 padding-left: 34px; 4401 } 4402 4403 .toast .ttl { 4404 font-size: 15px; 4405 margin-bottom: 6px; 4406 } 4407 4408 .toast .msg { 4409 font-size: 13px; 4410 opacity: .96; 4411 } 4412 4413 .toast .actions { 4414 margin-top: 12px; 4415 gap: 10px; 4416 width: 100%; 4417 display: grid; 4418 grid-template-columns: 1fr 1fr; 4419 } 4420 4421 .toast .btn { 4422 width: 100%; 4423 min-width: 0; 4424 padding: 10px 0; 4425 } 4426 4427 .toast .close { 4428 position: absolute; 4429 right: 6px; 4430 top: 6px; 4431 } 4432 } 4433 </style> 4434 4435
4435<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 4436 (function adjustToastFabOffset() { 4437 const root = document.getElementById('toastRoot'); 4438 if (!root) return; 4439 4440 function isVisible(el) { 4441 if (!el) return false; 4442 const cs = getComputedStyle(el); 4443 if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false; 4444 const r = el.getBoundingClientRect(); 4445 return r.width > 0 && r.height > 0; 4446 } 4447 4448 function update() { 4449 const fab = document.getElementById('pd-mobile-fab'); 4450 let extra = 16; 4451 if (isVisible(fab)) { 4452 const h = Math.round(fab.getBoundingClientRect().height) || 56; 4453 extra = h + 16; // FAB height + margin 4454 } 4455 root.style.setProperty('--fab-offset', extra + 'px'); 4456 } 4457 4458 window.addEventListener('resize', update, { passive: true }); 4459 const fab = document.getElementById('pd-mobile-fab'); 4460 if (window.ResizeObserver && fab) { 4461 const ro = new ResizeObserver(update); 4462 ro.observe(fab); 4463 } 4464 4465 update(); 4466 })(); 4467 </script>
4467 4468 <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div> 4469 4470
4470<script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function () { 4471 const root = document.getElementById('toastRoot'); function svgIcon(kind) { if (kind === 'success') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#c52222"><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="#e90e0e"><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="#e90e0e"/></svg>' } 4472 window.showToast = function (opts) { 4473 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>`; 4474 4475 const close = () => { 4476 if (!el.parentNode) return; 4477 el.style.transition = 'transform .2s ease, opacity .2s ease'; 4478 el.style.opacity = '0'; el.style.transform = 'translateY(10px)'; 4479 setTimeout(() => { if (el.parentNode) el.parentNode.removeChild(el); }, 220); 4480 }; 4481 4482 el.querySelector('.close').addEventListener('click', close); 4483 el.querySelectorAll('.actions .btn').forEach(btn => { 4484 btn.addEventListener('click', () => { 4485 const lab = btn.getAttribute('data-act'); 4486 try { 4487 (o.actions || []).forEach(a => { if (a.label === lab && typeof a.onClick === 'function') a.onClick(); }); 4488 } catch (_) { } 4489 close(); 4490 }); 4491 }); 4492 4493 root.appendChild(el); 4494 setTimeout(close, o.duration); 4495 return el; 4496 }; 4497 })(); 4498 4499 const _0x1a2b = [{ "url": "/image.png", "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": "/image.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "/image.png" }, { "url": "/image.png", "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": "/image.png", "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": "/image.png", "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": "/image.png", "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-8as
4499p2-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 = "1S83N0880RID"; function getVariantSummaryText() { const a = document.getElementById('pd-variant-summary'); if (!a) return ''; const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean); return b.length ? b.join(' / ') : '' } 4500 function encodeVariantHash(id) { if (!id || id <= 0) return ''; const xor = id ^ 0x4A5D; return xor.toString(36) } 4501 function decodeVariantHash(hash) { if (!hash) return 0; const xor = parseInt(hash, 36); return isNaN(xor) ? 0 : xor ^ 0x4A5D } 4502 4503 function 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: "1S83N0880RID", 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 }) } 4504 4505 function executeBuyNowLegacy(id, variantId) { 4506 const a = getVariantSummaryText(), b = (function () { const c = document.getElementById('pd-sku'); return c ? c.textContent.trim() : _0x5e6f })(); 4507 4508 let willRedirect = false; 4509 try { 4510 if (window.addToCart) { 4511 window.addToCart(id, 1, variantId); 4512 willRedirect = false; 4513 } 4514 } catch (_) { } 4515 4516 if (willRedirect) { 4517 showToast({ 4518 type: 'info', 4519 title: 'Menuju Keranjang', 4520 message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` ÷ <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} ÷ Qty: 1`, 4521 duration: 1800 4522 }); 4523 setTimeout(() => { window.location.href = '/keranjang'; }, 1200); 4524 } else { 4525 showToast({ 4526 type: 'warn', 4527 title: 'Fitur Beli Langsung Segera Hadir', 4528 message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` ÷ <em>${escapeHtml(variantText)}</em>` : ''}`, 4529 duration: 6000, 4530 actions: [ 4531 { label: '+ Keranjang', onClick: () => { try { if (window.addToCart) window.addToCart(id, 1, variantId); } catch (_) { } } }, 4532 { label: 'Hubungi CS', variant: 'alt', onClick: () => { window.open('https://wa.me/6281380009898', '_blank'); } } 4533 ] 4534 }); 4535 } 4536 } 4537 4538 document.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) }) } }); 4539 4540 function _0x2m3n(s) { return String(s || '').replace(/[&<>"']/g, m => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[m])) } 4541 4542 (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') } }) })(); 4543 4544 (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;
4544 slides.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 }) })(); 4545 4546 /* ================= Simulasi Cicilan ================= */ 4547 (function initInstallmentList() { 4548 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' } 4549 4550 function _0x4o5p(bank) { const a = getBasePrice(); listEl.innerHTML = '';
4550 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' } 4551 4552 card.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) }); 4553 4554 window.instSetBasePrice = function (newPrice) { setBasePrice(newPrice); _0x4o5p(activeBank()) }; _0x4o5p(activeBank()); 4555 })(); 4556 4557 /* ====== Fokus gambar varian ====== */ 4558 function _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 '' } } } 4559 function _0xau1v(url, altOpt) { 4560 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 } } 4561 if (c) { 4562 const targetName = _0x8s9t(url); 4563 const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName); 4564 if (slideImg) { 4565 4566 try { 4567 const container = c; 4568 const imgRect = slideImg.getBoundingClientRect(); 4569 const contRect = container.getBoundingClientRect(); 4570 const offsetLeft = slideImg.offsetLeft - container.offsetLeft; 4571 const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2; 4572 container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' }); 4573 } catch (_) { 4574 4575 slideImg.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' }); 4576 } 4577 } 4578 } 4579 } 4580 function findImageForVariant(variant) { 4581 if (!variant || !variant.attrs) return null; 4582 const tokens = []; 4583 try { 4584 Object.values(variant.attrs).forEach(v => { 4585 if (!v) return; 4586 const raw = String(v); 4587 tokens.push(raw); 4588 tokens.push(normalize(raw)); 4589 }); 4590 } catch (_) { } 4591 if (variant.sku) { 4592 tokens.push(String(variant.sku)); 4593 tokens.push(normalize(String(variant.sku))); 4594 } 4595 if (variant.image_url) { 4596 tokens.push(String(variant.image_url)); 4597 } 4598 let best = null; 4599 let bestScore = -1; 4600 4601 for (const g of (galleryData || [])) { 4602 const slugN = normalize(g.slug || ''); 4603 const altN = normalize(g.alt || ''); 4604 const file = _0x8s9t(g.url || ''); 4605 const fileN = normalize(file); 4606 const imgU = g.url; 4607 4608 for (const t of tokens) { 4609 const tN = normalize(t); 4610 if (!tN) continue; 4611 4612 let score = -1; 4613 if (imgU === tN) score = 300; 4614 if (slugN && slugN === tN) score = 300; 4615 else if (fileN && fileN.includes(tN)) score = 200; 4616 else if (altN && altN.includes(tN)) score = 120; 4617 4618 if (score > bestScore) { 4619 bestScore = score; 4620 best = g; 4621 } 4622 if (bestScore >= 300) break; 4623 } 4624 if (bestScore >= 300) break; 4625 } 4626 return bestScore >= 120 ? best : null; 4627 } 4628 function _0xey3z(variant) { const a = _0xcw2x(variant); if (a && a.url) { _0xau1v(a.url, a.alt || '') } } 4629 4630 /* ====== Layout mobile ====== */ 4631 (function _0xg04h() { 4632 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'), c
4632ompareSection = document.querySelector('.pd-compare-section'); if (!a || !b || !c || !d || !e) return; 4633 4634 let pricePlaced = false; 4635 let varPlaced = false; 4636 let titlePlaced = false; 4637 let promoPlaced = false; 4638 const mq = window.matchMedia('(max-width: 640px)'); 4639 4640 function apply() { 4641 if (mq.matches) { 4642 if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try { a.appendChild(titleRow); titlePlaced = true; } catch (_) { } } 4643 if (!pricePlaced && a && b) { try { a.appendChild(b); pricePlaced = true; } catch (_) { } } 4644 if (!varPlaced && f && d && e) { 4645 try { 4646 f.hidden = false; 4647 if (i && !f.contains(i)) f.appendChild(i); 4648 if (g && !f.contains(g)) f.appendChild(g); 4649 if (d.contains(e)) d.insertBefore(f, e); 4650 varPlaced = true; 4651 } catch (_) { } 4652 } 4653 if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) { 4654 try { 4655 compareSection.parentNode.insertBefore(promoBanner, compareSection); 4656 promoPlaced = true; 4657 } catch (_) { } 4658 } 4659 } else { 4660 if (titlePlaced && titleRow && d) { 4661 try { 4662 const vcombined = document.getElementById('pd-variant-combined'); 4663 if (vcombined && d.contains(vcombined)) { 4664 d.insertBefore(titleRow, vcombined); 4665 } else { 4666 d.insertBefore(titleRow, d.firstChild); 4667 } 4668 titlePlaced = false; 4669 } catch (_) { } 4670 } 4671 if (pricePlaced && b && c && c.parentNode) { 4672 try { c.parentNode.insertBefore(b, c.nextSibling); pricePlaced = false; } catch (_) { } 4673 } 4674 if (varPlaced) { 4675 try { 4676 if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling); 4677 if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling); 4678 if (f) { f.hidden = true; f.innerHTML = ''; } 4679 varPlaced = false; 4680 } catch (_) { } 4681 } 4682 if (promoPlaced && promoBanner && b) { 4683 try { 4684 b.appendChild(promoBanner); 4685 promoPlaced = false; 4686 } catch (_) { } 4687 } 4688 } 4689 } 4690 4691 mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply); 4692 apply(); 4693 4694 const fab = document.getElementById('pd-mobile-fab'); 4695 if (fab) { 4696 const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325; 4697 const btnCart = document.getElementById('mf-cart'); 4698 4699 if (btnCart) btnCart.addEventListener('click', function () { 4700 const varInput = document.getElementById('pd-variant-id'); 4701 const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0; 4702 try { if (window.addToCart) addToCart(pid, 1, variantId); } catch (_) { } 4703 const variantText = getVariantSummaryText(); 4704 const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU; })(); 4705 showToast({ 4706 type: 'success', 4707 title: 'Berhasil ditambahkan ke Keranjang', 4708 message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` ÷ <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} ÷ Qty: 1`, 4709 duration: 5000, 4710 actions: [ 4711 { label: 'Lihat Keranjang', onClick: () => { window.location.href = '/keranjang'; } }, 4712 { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } } 4713 ] 4714 }); 4715 }); 4716 } 4717 })(); 4718 4719 /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */ 4720 (function () { 4721 function adjustSidebarBanner() { 4722 if (window.innerWidth <= 768) return; 4723 const sidebar = document.querySelector('.pd-sidebar'); 4724 const infoCard = document.querySelector('.pd-info-card'); 4725 const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact'); 4726 if (!sidebar || !infoCard || !banner) return; 4727 const sidebarHeight = sidebar.offsetHeight; 4728 const infoCardHeight = infoCard.offsetHeight; 4729 if (sidebarHeight > infoCardHeight) { 4730 banner.style.display = 'none'; 4731 } else { 4732 banner.style.display = ''; 4733 } 4734 } 4735 if (document.readyState === 'loading') { 4736 document.addEventListener('DOMContentLoaded', adjustSidebarBanner); 4737 } else { 4738 adjustSidebarBanner(); 4739 } 4740 let resizeTimer; 4741 window.addEventListener('resize', function () { 4742 clearTimeout(resizeTimer); 4743 resizeTimer = setTimeout(adjustSidebarBanner, 250); 4744 }); 4745 const pwpSection = document.getElementById('pwp-deals-section'); 4746 if (pwpSection) { 4747 const observer = new MutationObserver(function (mutations) {
4748 let shouldRecheck = false; 4749 mutations.forEach(function (mutation) { 4750 if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') { 4751 shouldRecheck = true; 4752 } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { 4753 shouldRecheck = true; 4754 } 4755 }); 4756 if (shouldRecheck) { 4757 setTimeout(adjustSidebarBanner, 100); 4758 } 4759 }); 4760 observer.observe(pwpSection, { 4761 attributes: true, 4762 childList: true, 4763 subtree: true 4764 }); 4765 } 4766 window.adjustSidebarBanner = adjustSidebarBanner; 4767 })(); 4768 4769 /* ====== Global constants ====== */ 4770 const IS_DIGITAL = false; 4771 const IS_PREORDER = false; 4772 4773 /* ====== Variants state (REVISED) ====== */ 4774 (function initVariants() { 4775 const _0x7g8h = []; window.variants = _0x7g8h; 4776 window.isPreorderProduct = false; 4777 const attrOrder = []; 4778 4779 if (!variants.length || !attrOrder.length) return; 4780 4781 function comboKey(sel) { 4782 return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|'); 4783 } 4784 4785 const variantMap = {};
4786 variants.forEach(v => { 4787 const key = comboKey(v.attrs); 4788 variantMap[key] = v; 4789 }); 4790 4791 function readSelection() { 4792 const sel = {}; 4793 attrOrder.forEach(a => { 4794 const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`); 4795 sel[a] = r ? r.value : ''; 4796 }); 4797 return sel; 4798 } 4799 4800 function findVariant(sel) { 4801 return variantMap[comboKey(sel)] || null; 4802 } 4803 4804 function autoFillMissing(sel) { 4805 let changed = false; 4806 for (const a of attrOrder) { 4807 if (sel[a]) continue; 4808 const possible = []; 4809 const seen = new Set(); 4810 variants.forEach(v => { 4811 let ok = true; 4812 for (const a2 of attrOrder) { 4813 if (a2 === a) continue; 4814 if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; } 4815 } 4816 if (ok) { 4817 const val = v.attrs[a]; 4818 if (!seen.has(val)) { seen.add(val); possible.push(val); } 4819 } 4820 }); 4821 if (possible.length === 1) { 4822 const val = possible[0]; 4823 const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`); 4824 if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; } 4825 } 4826 } 4827 return changed; 4828 } 4829 4830 function rupiah(n) { 4831 n = parseInt(n || 0, 10) || 0; 4832 return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); 4833 } 4834 4835 function focusGalleryByUrl(imageUrl) { 4836 const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches; 4837 if (isMobile) { 4838 _0xau1v(imageUrl); 4839 return; 4840 } 4841 4842 const gallery = document.getElementById('pd-thumb-gallery'); 4843 const targetName = _0x8s9t(imageUrl); 4844 4845 if (gallery) { 4846 const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn')); 4847 const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName); 4848 if (btn) { btn.click(); return; } 4849 } 4850 4851 _0xau1v(imageUrl); 4852 } 4853 4854 4855 function formatStockLabel(n) { n = parseInt(n || 0, 10) || 0; return (n > 10) ? '10+' : String(n) } 4856 function 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 (_) { } } 4857 4858 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) } 4859 4860 function applyVariant(v, focusImage = true) { 4861 const elCur = document.getElementById('pd-price-current'); 4862 const elOri = document.getElementById('pd-price-original'); 4863 const elDisc = document.getElementById('pd-discount-badge'); 4864 const elSku = document.getElementById('pd-sku'); 4865 const elStock = document.getElementById('pd-stock-badge'); 4866 const elQty = document.getElementById('qty'); 4867 const btnAdd = document.getElementById('btn-add-cart'); 4868 const btnBuy = document.getElementById('btn-buy'); 4869 const hidVar = document.getElementById('pd-variant-id'); 4870 4871 const mfCart = document.getElementById('mf-cart'); 4872 const mfBuy = document.getElementById('mf-buy'); 4873 const fab = document.getElementById('pd-mobile-fab'); 4874 4875 if (hidVar) hidVar.value = v ? v.id : 0; 4876 if (elCur) elCur.textContent = rupiah(v ? v.final : 0); 4877 if (elSku && v && v.sku) elSku.textContent = v.sku; 4878 4879 if (v && v.ori > v.final) { 4880 if (elOri) { elOri.style.display = 'inline'; elOri.textContent = rupiah(v.ori); } 4881 if (elDisc) { elDisc.style.display = 'inline'; elDisc.textContent = '-' + (v.disc || 0) + '%'; } 4882 } else { 4883 if (elOri) elOri.style.display = 'none'; 4884 if (elDisc) elDisc.style.display = 'none'; 4885 } 4886 4887 const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0; 4888 let effectiveStock = stock; 4889 let isActivePreorder = false; 4890 if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) { 4891 effectiveStock = parseInt(v.preorder_remaining, 10); 4892 if (isNaN(effectiveStock)) effectiveStock = 0; 4893 isActivePreorder = true; 4894 } 4895 if (elStock) { 4896 elStock.classList.remove('in', 'out'); 4897 if (effectiveStock > 0) { 4898 elStock.classList.add('in'); 4899 elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock)); 4900 } else { 4901 elStock.classList.add('out'); 4902 elStock.textContent = 'Habis'; 4903 } 4904 } 4905 if (elQty) { 4906 elQty.max = String(effectiveStock > 0 ? effectiveStock : 0); 4907 if (effectiveStock <= 0) { elQty.value = '0'; elQty.disabled = true; } 4908 else { if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1'; elQty.disabled = false; } 4909 } 4910 4911 const shouldDisable = !(v && effectiveStock > 0); 4912 const updateButtons = () => { 4913 const btnAddCart = document.getElementById('btn-add-cart'); 4914 const btnBuyNow = document.getElementById('btn-buy'); 4915 const mobileCart = document.getElementById('mf-cart'); 4916 const mobileBuy = document.getElementById('mf-buy');
4917 [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => { 4918 if (!btn) return; 4919 if (shouldDisable) { 4920 btn.disabled = true; 4921 btn.setAttribute('disabled', 'disabled'); 4922 btn.classList.add('stock-disabled'); 4923 btn.setAttribute('data-stock-blocked', 'true'); 4924 btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis'); 4925 } else { 4926 btn.disabled = false; 4927 btn.removeAttribute('disabled'); 4928 btn.classList.remove('stock-disabled'); 4929 btn.removeAttribute('data-stock-blocked'); 4930 btn.removeAttribute('data-stock-reason'); 4931 } 4932 }); 4933 }; 4934 updateButtons(); 4935 setTimeout(updateButtons, 10); 4936 setTimeout(updateButtons, 50); 4937 setTimeout(updateButtons, 100); 4938 if (mfBuy && v) { 4939 const voucherBtn = document.getElementById('btn-buy-voucher'); 4940 const voucherCode = fab ? fab.dataset.voucherCode : ''; 4941 let voucherDiscount = 0; 4942 4943 if (voucherBtn && voucherCode) { 4944 const vType = voucherBtn.dataset.voucherType; 4945 const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0; 4946 const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0; 4947 const finalPrice = v.final || 0; 4948 if (vType && vValue > 0) { 4949 voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax); 4950 if (fab) fab.dataset.voucherValue = voucherDiscount.toString(); 4951 } 4952 } 4953 4954 const finalPrice = v.final || 0; 4955 const textEl = mfBuy.querySelector('.mf-buy-text'); 4956 const priceEl = mfBuy.querySelector('.mf-buy-price'); 4957 4958 if (effectiveStock > 0) { 4959 if (IS_PREORDER) { 4960 if (textEl) textEl.textContent = 'Pre Order Sekarang'; 4961 if (priceEl) priceEl.textContent = rupiah(finalPrice); 4962 } else if (voucherCode && voucherDiscount > 0) { 4963 if (textEl) textEl.textContent = 'Beli dengan Voucher'; 4964 if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount)); 4965 } else { 4966 if (textEl) textEl.textContent = 'Beli Sekarang'; 4967 if (priceEl) priceEl.textContent = rupiah(finalPrice); 4968 } 4969 } else { 4970 if (textEl) textEl.textContent = 'Stok Habis'; 4971 if (priceEl) priceEl.textContent = rupiah(finalPrice); 4972 } 4973 } 4974 4975 const isMobile = window.initMobile ?? 0; 4976 if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0); 4977 if (window.updateSoldBySku) window.updateSoldBySku(v.sku); 4978 updateBranchPopover(v); 4979 if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url); 4980 if (v) { 4981 window.dispatchEvent(new CustomEvent('pd-variant-changed', { 4982 detail: { 4983 price: v.final, 4984 originalPrice: v.ori, 4985 discount: v.disc, 4986 stock: effectiveStock, 4987 sku: v.sku, 4988 variant_id: v.id 4989 } 4990 })); 4991 4992 const encodedHash = encodeVariantHash(v.id); 4993 if (encodedHash && window.history && window.history.replaceState) { 4994 const newHash = '#v=' + encodedHash; 4995 const newUrl = window.location.pathname + window.location.search + newHash; 4996 window.history.replaceState(null, '', newUrl); 4997 } 4998 } 4999 } 5000 5001 let sel = readSelection(); 5002 if (autoFillMissing(sel)) sel = readSelection(); 5003 5004 let v = findVariant(sel); 5005 if (!v) { 5006 const candidates = variants.filter(variant => { 5007 return attrOrder.every(a => { 5008 if (!sel[a]) return true; 5009 return variant.attrs[a] === sel[a]; 5010 }); 5011 }); 5012 if (candidates.length >= 1) { 5013 v = candidates[0]; 5014 attrOrder.forEach(a => sel[a] = v.attrs[a]); 5015 attrOrder.forEach(a => { 5016 const val = sel[a]; 5017 const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`); 5018 if (input) input.checked = true; 5019 }); 5020 } 5021 } 5022 5023 const initSel = readSelection(); 5024 const initVar = findVariant(initSel) || variants[0] || null; 5025 if (document.readyState === 'loading') { 5026 document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false)); 5027 } else { 5028 applyVariant(initVar, false); 5029 } 5030 5031 function updateSummary(sel) { Object.entries(sel).forEach(([a, val]) => { const el = document.getElementById('vs-' + a); if (el) el.textContent = val || '-' }) } 5032 function refreshOptions(sel) { 5033 attrOrder.forEach(a => { 5034 const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`); 5035 if (!group) return; 5036 const chips = group.querySelectorAll('.v-chip'); 5037 chips.forEach(ch => { 5038 const val = ch.getAttribute('data-value'); 5039 const possible = variants.some(v => { 5040 if (v.attrs[a] !== val) return false; 5041 for (const a2 of attrOrder) { 5042 if (a2 === a) continue; 5043 if (sel[a2] && v.attrs[a2] !== sel[a2]) return false; 5044 } 5045 return true; 5046 }); 5047 const input = ch.querySelector('input[type=radio]'); 5048 const disabled = !possible; 5049 if (input) input.disabled = disabled; 5050 ch.classList.toggle('disabled', disabled); 5051 5052 let candidateVariant = null; 5053 if (possible) { 5054 candidateVariant = variants.find(v => { 5055 if (v.attrs[a] !== val) return false; 5056 for (const a2 of attrOrder) { 5057 if (a2 === a) continue; 5058 if (sel[a2] && v.attrs[a2] !== sel[a2]) return false; 5059 } 5060 return true; 5061 }); 5062 } 5063 const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false; 5064 ch.classList.toggle('out', !disabled && outOfStock); 5065 const badge = ch.querySelector('.chip-badge'); 5066 if (badge) badge.hidden = !(candidateVariant && outOfStock); 5067 }); 5068 group.querySelectorAll('.v-chip').forEach(ch => { 5069 const input = ch.querySelector('input[type=radio]'); 5070 ch.classList.toggle('selected', input && input.checked); 5071 }); 5072 }); 5073 } 5074 updateSummary(sel); 5075 refreshOptions(sel); 5076 document.querySelectorAll('.v-chip').forEach(chip => { const input = chip.querySelector('input[type=radio]'); if (input && input.checked) { chip.classList.add('selected'); } }); 5077 5078 const container = document.getElementById('pd-variants'); 5079 container && container.addEventListener('change', function (ev) { 5080 const radio = ev.target.closest('input[type=radio]'); 5081 if (!radio) return; 5082 sel = readSelection(); 5083 if (autoFillMissing(sel)) sel = readSelection(); 5084 const chosen = findVariant(sel); 5085 applyVariant(chosen || null, true); 5086 5087 updateSummary(sel); 5088 refreshOptions(sel); 5089 }); 5090 5091 window.applyVariant = applyVariant; 5092 })(); 5093 5094 (function cleanBrokenDescImages() { 5095 const containers = [ 5096 document.querySelector('.pd-full-desc-body'), 5097 document.querySelector('.pd-short-desc')
5098 ].filter(Boolean); 5099 5100 containers.forEach(root => { 5101 const imgs = root.querySelectorAll('img'); 5102 imgs.forEach(img => { 5103 if (img.complete && img.naturalWidth === 0) { 5104 img.remove(); 5105 return; 5106 } 5107 img.addEventListener('error', () => { 5108 img.remove(); 5109 }, { once: true }); 5110 }); 5111 }); 5112 })(); 5113 5114 /* ====== Scroll To Top ====== */ 5115 (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' }) }) })(); 5116 5117 /* Format stok 10+ */ 5118 function _0xk67l(n) { n = parseInt(n || 0, 10) || 0; return n > 10 ? '10+' : String(n) } 5119 5120 /* Toggle popover stok per cabang */ 5121 (function _0xm89n() { 5122 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 = '' } } 5123 function 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() } 5124 a.addEventListener('click', function (h) { h.preventDefault(); b.classList.contains('show') ? f() : e() }); if (c) c.addEventListener('click', f) 5125 })(); 5126 5127 /* ===== Share Product Modal ===== */ 5128 (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://88megagacor.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
5128= encodeURIComponent(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: "1S83N0880RID" }) } 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: "1S83N0880RID" }) } 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) } })(); 5129 5130 /* ===== Embedding variants (server ââ â client) ===== */ 5131 (function () { 5132 window.__PD_VARIANTS_WITH_BRANCH__ = []; 5133 })(); 5134 5135 /* ===== Helper: update angka popover ===== */ 5136 function updateStockPopoverForVariant(v) { 5137 try { 5138 const elMeg = document.getElementById('sp-qty-meg'); 5139 const elMdf = document.getElementById('sp-qty-mdf'); 5140 const elBda = document.getElementById('sp-qty-bda'); 5141 5142 if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0)); 5143 if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0)); 5144 if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0)); 5145 } catch (_) { } 5146 } 5147 5148 /* ===== applyVariant: 10+ dan update popover ===== */ 5149 (function patchApplyVariant() { 5150 if (typeof applyVariant !== 'function') return; 5151 const original = applyVariant; 5152 window.applyVariant = function (v) { 5153 original(v); 5154 5155 try { 5156 const elStock = document.getElementById('pd-stock-badge'); 5157 if (elStock) { 5158 let txt = elStock.textContent || ''; 5159 let m = txt.match(/\d+/); 5160 if (m) { 5161 const n = parseInt(m[0] || '0', 10) || 0; 5162 elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis'; 5163 } 5164 } 5165 } catch (_) { } 5166 if (window.__PD_VARIANTS_WITH_BRANCH__ && v) { const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v; updateStockPopoverForVariant(vv) } 5167 }; 5168 })(); 5169 5170 (function initCurrentVariantBranch() { 5171 const list = window.__PD_VARIANTS_WITH_BRANCH__ || []; 5172 if (!list.length) return; 5173 const hid = document.getElementById('pd-variant-id'); 5174 const vid = hid ? parseInt(hid.value || '0', 10) : 0; 5175 const current = list.find(x => x.id === vid) || list[0] || null; 5176 if (current) updateStockPopoverForVariant(current); 5177 })(); 5178 5179 (function () { 5180 if (!window.ga4Ecomm) return; 5181 const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"]; 5182 window.ga4Ecomm.viewItem({ 5183 currency: 'IDR', 5184 value: 20789000, 5185 item_id: "1S83N0880RID", 5186 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", 5187 item_brand: "Lenovo ",
5188 item_category: catSegs && catSegs.length ? catSegs.join(' / ') : '' 5189 }); 5190 })(); 5191 5192 (function patchApplyVariantFocus() { 5193 if (typeof applyVariant !== 'function') return; 5194 const original = applyVariant; 5195 window.applyVariant = function (v, focusImage = true) { 5196 5197 original(v, focusImage); 5198 5199 if (focusImage && v && v.image_url) { 5200 _0xau1v(v.image_url); 5201 } 5202 }; 5203 })(); 5204 5205 (function () { 5206 var soldMap = []; 5207 var soldTotalLabel = "Terjual 2"; 5208 5209 function formatSoldLabel(qty) { 5210 if (qty >= 1000000) { 5211 var v = Math.floor((qty / 100000)) / 10; 5212 return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+'; 5213 } 5214 if (qty >= 1000) { 5215 var v2 = Math.floor((qty / 100)) / 10; 5216 return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+'; 5217 } 5218 if (qty >= 100) { 5219 var v2 = Math.floor((qty / 100)) * 100; 5220 return 'Terjual ' + (String(v2).replace('.', ',')) + '+'; 5221 } 5222 if (qty >= 10) { 5223 var v2 = Math.floor((qty / 10)) * 10; 5224 return 'Terjual ' + (String(v2).replace('.', ',')) + '+'; 5225 } 5226 return 'Terjual ' + (qty.toLocaleString('id-ID')); 5227 } 5228 5229 function updateSoldLabel(labelText) { 5230 var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]'); 5231 if (el) el.textContent = labelText; 5232 } 5233 5234 window.updateSoldBySku = function (sku) { 5235 if (!sku || typeof sku !== 'string') { 5236 updateSoldLabel(soldTotalLabel); 5237 return; 5238 } 5239 var qty = soldMap[sku] || 0; 5240 updateSoldLabel(formatSoldLabel(qty)); 5241 }; 5242 5243 updateSoldLabel(soldTotalLabel); 5244 })(); 5245 5246 (function () { 5247 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) } }) } 5248 function 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-8as
5248p2-83n0000rid.webp", url: window.location.href }; if (variantId > 0) { pd.variant_id = variantId } if (variantSummary) { pd.variant_summary = variantSummary } return pd } 5249 const 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 } }); function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') } 5250 })(); 5251 5252 (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 = '#c52222'; setTimeout(function () { mcp.textContent = o; mcp.style.background = '' }, 2000) }
5252 function fr(a) { return 'Rp' + Math.floor(a).toLocaleString('id-ID') } })(); 5253 </script>
5253 5254
5254<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5255 window.PD_ID = 325; window.PD_NAME = _0x3c4d; window.PD_SKU = _0x5e6f; window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming"; window.PD_BEST_VOUCHER = null; 5256 window.IS_DIGITAL = IS_DIGITAL; 5257 window.isPreorderProduct = false; 5258 window.PD_PREORDER_DATA = null; 5259 </script>
5259 5260 5261 5262
5262<script src="https://plazaitdotid.pages.dev/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5262 5263
5263<script src="https://plazaitdotid.pages.dev/assets/js/pd-voucher-recalc.js" defer 5264 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5264 5265
5265<script 5266 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>
5266 5267 5268
5268<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5269 (function () { 5270 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' } }) } } 5271 5272 function _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() } 5273 })(); 5274 5275 (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 >
5275 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() } }) })(); 5276 </script>
5276 5277 <footer class="site-footer footer-compact variant-stripes" role="contentinfo"> 5278 <div class="ft-top ft-collapsible" id="ftTop"> 5279 <div class="container ft-grid"> 5280 5281 <div class="ft-col ft-help"> 5282 <h4 class="ft-title">Butuh Bantuan?</h4> 5283 <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p> 5284 <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener"> 5285 <span class="ico" aria-hidden="true"> 5286 <svg viewBox="0 0 24 24" width="18" height="18"> 5287 <path fill="#d32525" 5288 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" /></path> 5289 </svg> 5290 </span> 5291 Kirim Pesan 5292 </a> 5293 5294 <p class="ft-desc sm-gap">Ikuti kami:</p> 5295 <div class="ft-social"> 5296 <a aria-label="Facebook" href="https://facebook.com/PlazaIt/"><svg viewBox="0 0 24 24" width="18" 5297 height="18"> 5298 <path fill="currentColor" 5299 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" /></path> 5300 </svg></a> 5301 <a aria-label="Instagram" href="https://gogo.88megagacor.one/back/"><svg viewBox="0 0 24 24" width="18" 5302 height="18"> 5303 <path fill="currentColor" 5304 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
5304V7.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" /></path> 5305 </svg></a> 5306 <a aria-label="TikTok" href="https://www.tiktok.com/@plazait"><svg viewBox="0 0 24 24" width="18" 5307 height="18"> 5308 <path fill="currentColor" 5309 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" /></path> 5310 </svg></a> 5311 </div> 5312 </div> 5313 5314 <!-- Collapsible Content Wrapper (Non-Homepage Only) --> 5315 <div class="ft-collapsible-content" id="ftCollapsible"> 5316 5317 <div class="ft-col"> 5318 <h4 class="ft-title">Tentang 88MEGA</h4> 5319 <ul class="ft-links"> 5320 <li><a href="https://gogo.88megagacor.one/back/">Tentang Kami</a></li> 5321 <li><a href="https://gogo.88megagacor.one/back/">Kontak Kami</a></li> 5322 <li><a href="https://gogo.88megagacor.one/back/">Lokasi Toko</a></li> 5323 <li><a href="https://gogo.88megagacor.one/back/">FAQ</a></li> 5324 </ul> 5325 <div class="ft-address"> 5326 <p class="company">PT 88MEGA</p> 5327 <p>Jl. Boulevard Raya Barat Blok RSN 5 No. 50 5328 Grand Galaxy City</p> 5329 <p>Bekasi Barat 17145 5330 West Java ââ¬â INDONESIA</p> 5331 </div> 5332 </div> 5333 5334 <div class="ft-col"> 5335 <h4 class="ft-title">Informasi</h4> 5336 <ul class="ft-links"> 5337 <li><a href="https://gogo.88megagacor.one/back/">Syarat & Ketentuan</a></li> 5338 <li><a href="https://gogo.88megagacor.one/back/">Kebijakan Privasi</a></li> 5339 <li><a href="https://gogo.88megagacor.one/back/">Kebijakan Cookie</a></li> 5340 <li><a href="https://gogo.88megagacor.one/back/">Pengiriman & Pengembalian</a></li> 5341 <li><a href="https://gogo.88megagacor.one/back/">Pembayaran & Cicilan</a></li> 5342 <li><a href="https://gogo.88megagacor.one/back/">Garansi & Layanan</a></li> 5343 </ul> 5344 5345 <div class="ft-payments payments-small" aria-label="Metode Pembayaran"> 5346 <div class="pay-row"> 5347 <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy"> 5348 <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy"> 5349 <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy"> 5350 <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy"> 5351 <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg" alt="ShopeePay" 5352 loading="lazy"> 5353 </div> 5354 </div> 5355 </div> 5356 5357 </div> 5358 <!-- End Collapsible Content --> 5359 5360 <!-- Expand Button (Mobile Only) --> 5361 <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer"> 5362 <span class="expand-text">Selengkapnya</span> 5363 <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor"> 5364 <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" /></path> 5365 </svg> 5366 </button> 5367 5368 </div> 5369 </div> 5370 <div class="ft-bottom"> 5371 <div class="container ft-bottom-inner"> 5372 <div class="ft-copy"> 5373 <span>TISU-AJAIB © <span id="yearNow">2026</span></span> 5374 <span>PT TISU-AJAIB. All rights reserved.</span> 5375 </div> 5376 </div> 5377 </div> 5378 <style> 5379 :root { 5380 --sd-black: #07040c; 5381 --sd-dark: #12071b; 5382 --sd-panel: #1b0d28; 5383 --sd-purple: #0026fd; 5384 --sd-violet: #0026fd; 5385 --sd-pink: #0026fd; 5386 --sd-cyan: #0026fd; 5387 --sd-white: #ffffff; 5388 --sd-text: #dcd2e6; 5389 --blade-cut: 10px; 5390 } 5391 5392 * { 5393 box-sizing: border-box; 5394 } 5395 5396 body { 5397 margin: 0; 5398 padding: 0; 5399 font-family: "Segoe UI", Arial, sans-serif; 5400 background: transparent; 5401 color: var(--sd-text); 5402 } 5403 5404 /* ========================= 5405 POPUP OVERLAY 5406 ========================= */ 5407 .popup-overlay { 5408 position: fixed; 5409 inset: 0; 5410 width: 100vw; 5411 height: 100vh; 5412 5413 display: flex; 5414 justify-content: center; 5415 align-items: center; 5416 5417 padding: 18px; 5418 background: rgba(3, 1, 7, 0.76); 5419 backdrop-filter: blur(3px); 5420 -webkit-backdrop-filter: blur(3px); 5421 5422 z-index: 9999; 5423 } 5424 5425 /* ========================= 5426 POPUP CONTAINER 5427 ========================= */ 5428 .popup-container { 5429 position: relative; 5430 width: 100%; 5431 max-width: 420px; 5432 overflow: hidden; 5433 5434 padding-bottom: 18px; 5435 5436 color: var(--sd-text); 5437 text-align: center; 5438 5439 background: 5440 radial-gradient(circle at top right, 5441 rgba(255, 60, 166, 0.16), 5442 transparent 34%), 5443 radial-gradient(circle at bottom left, 5444 rgba(32, 231, 242, 0.11), 5445 transparent 38%), 5446 linear-gradient(145deg, 5447 #08030d 0%, 5448 #170923 52%, 5449 #09040f 100%); 5450 5451 border: 1px solid rgba(139, 44, 255, 0.58); 5452 border-radius: 10px 26px 10px 26px; 5453 5454 box-shadow: 5455 0 22px 55px rgba(0, 0, 0, 0.72), 5456 0 0 18px rgba(139, 44, 255, 0.34), 5457 0 0 32px rgba(255, 60, 166, 0.14); 5458 5459 animation: streetPopupIn 0.45s ease-out; 5460 } 5461 5462 /* Tekstur graffiti ringan */ 5463 .popup-container::before { 5464 content: ""; 5465 position: absolute; 5466 inset: 0; 5467 pointer-events: none; 5468 z-index: 1; 5469 5470 background: 5471 repeating-linear-gradient(-35deg, 5472 transparent 0, 5473 transparent 14px, 5474 rgba(255, 255, 255, 0.025) 15px, 5475 rgba(32, 231, 242, 0.035) 17px, 5476 transparent 19px); 5477 5478 opacity: 0.8; 5479 } 5480 5481 /* Aksen neon di sisi kiri */ 5482 .popup-container::after { 5483 content: ""; 5484 position: absolute; 5485 top: 0; 5486 left: 0; 5487 5488 width: 5px; 5489 height: 100%; 5490 z-index: 3; 5491 5492 background: linear-gradient(to bottom, 5493 var(--sd-pink), 5494 var(--sd-purple), 5495 var(--sd-cyan)); 5496 5497 box-shadow: 5498 0 0 10px rgba(255, 60, 166, 0.65), 5499 0 0 16px rgba(32, 231, 242, 0.35); 5500 } 5501 5502 @keyframes streetPopupIn { 5503 from { 5504 opacity: 0; 5505 transform: translateY(18px) scale(0.96); 5506 } 5507 5508 to { 5509 opacity: 1;
5510 transform: translateY(0) scale(1); 5511 } 5512 } 5513 5514 /* ========================= 5515 IMAGE 5516 ========================= */ 5517 .popup-image { 5518 position: relative; 5519 z-index: 2; 5520 5521 display: block; 5522 width: 100%; 5523 height: auto; 5524 5525 border-bottom: 1px solid rgba(32, 231, 242, 0.2); 5526 } 5527 5528 /* ========================= 5529 BUTTON WRAPPER 5530 ========================= */ 5531 .clk-btn-sgp { 5532 position: relative; 5533 z-index: 3; 5534 5535 width: 100%; 5536 display: grid; 5537 grid-template-columns: repeat(2, minmax(0, 1fr)); 5538 gap: 12px; 5539 5540 padding: 18px; 5541 font-family: "Segoe UI", Arial, sans-serif; 5542 } 5543 5544 .clk-btn-sgp a { 5545 position: relative; 5546 overflow: hidden; 5547 5548 display: flex; 5549 align-items: center; 5550 justify-content: center; 5551 5552 min-height: 50px; 5553 padding: 13px 12px; 5554 5555 color: var(--sd-white); 5556 text-align: center; 5557 text-decoration: none; 5558 text-transform: uppercase; 5559 5560 font-size: 13px; 5561 font-weight: 900; 5562 letter-spacing: 1.2px; 5563 5564 border-radius: 7px 15px 7px 15px; 5565 clip-path: polygon(var(--blade-cut) 0, 5566 100% 0, 5567 100% calc(100% - var(--blade-cut)), 5568 calc(100% - var(--blade-cut)) 100%, 5569 0 100%, 5570 0 var(--blade-cut)); 5571 5572 transition: 5573 transform 0.22s ease, 5574 border-color 0.22s ease, 5575 box-shadow 0.22s ease, 5576 filter 0.22s ease; 5577 } 5578 5579 .clk-btn-sgp a::after { 5580 content: ""; 5581 position: absolute; 5582 inset: 0; 5583 pointer-events: none; 5584 5585 background: linear-gradient(110deg, 5586 transparent 25%, 5587 rgba(255, 255, 255, 0.16) 48%, 5588 transparent 70%); 5589 5590 transform: translateX(-140%); 5591 transition: transform 0.45s ease; 5592 } 5593 5594 .clk-btn-sgp a:hover::after { 5595 transform: translateX(140%); 5596 } 5597 5598 .clk-btn-sgp a:hover { 5599 transform: translateY(-3px); 5600 filter: brightness(1.12); 5601 } 5602 5603 /* ========================= 5604 LOGIN BUTTON 5605 ========================= */ 5606 .login { 5607 color: var(--sd-cyan) !important; 5608 5609 background: 5610 linear-gradient(145deg, 5611 rgba(32, 231, 242, 0.08), 5612 rgba(139, 44, 255, 0.14)), 5613 #0a0710; 5614 5615 border: 1px solid rgba(32, 231, 242, 0.65); 5616 5617 box-shadow: 5618 0 7px 16px rgba(0, 0, 0, 0.42), 5619 inset 0 0 10px rgba(32, 231, 242, 0.05); 5620 } 5621 5622 .login:hover { 5623 color: #ffffff !important; 5624 border-color: var(--sd-cyan); 5625 5626 box-shadow: 5627 0 10px 22px rgba(0, 0, 0, 0.5), 5628 0 0 13px rgba(32, 231, 242, 0.26); 5629 } 5630 5631 /* ========================= 5632 REGISTER BUTTON 5633 ========================= */ 5634 .register { 5635 color: #ffffff !important; 5636 5637 background: linear-gradient(135deg, 5638 var(--sd-purple), 5639 var(--sd-pink)); 5640 5641 border: 1px solid rgba(255, 255, 255, 0.38); 5642 5643 box-shadow: 5644 0 7px 16px rgba(0, 0, 0, 0.42), 5645 0 0 10px rgba(255, 60, 166, 0.18); 5646 } 5647 5648 .register:hover { 5649 color: #ffffff !important; 5650 5651 background: linear-gradient(135deg, 5652 var(--sd-pink), 5653 var(--sd-violet)); 5654 5655 border-color: #ffffff; 5656 5657 box-shadow: 5658 0 10px 22px rgba(0, 0, 0, 0.5), 5659 0 0 14px rgba(255, 60, 166, 0.32); 5660 } 5661 5662 .clk-btn-sgp a span { 5663 position: relative; 5664 z-index: 2; 5665 } 5666 5667 /* ========================= 5668 INFO TABLE 5669 ========================= */ 5670 .info-table { 5671 position: relative; 5672 z-index: 3; 5673 5674 width: calc(100% - 36px); 5675 margin: 2px auto 18px; 5676 5677 color: var(--sd-text); 5678 background: rgba(13, 7, 20, 0.9); 5679 5680 border-collapse: separate; 5681 border-spacing: 0; 5682 overflow: hidden; 5683 5684 border: 1px solid rgba(139, 44, 255, 0.25); 5685 border-radius: 12px; 5686 5687 font-size: 13px; 5688 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32); 5689 } 5690 5691 .info-table th { 5692 padding: 13px 10px; 5693 5694 color: #ffffff; 5695 background: linear-gradient(135deg, 5696 var(--sd-purple), 5697 var(--sd-pink)); 5698 5699 border: 0; 5700 5701 font-size: 13px; 5702 font-weight: 900; 5703 letter-spacing: 0.8px; 5704 text-transform: uppercase; 5705 5706 text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.35); 5707 } 5708 5709 .info-table td { 5710 padding: 11px 12px; 5711 5712 color: var(--sd-text); 5713 text-align: left; 5714 5715 border-bottom: 1px solid rgba(32, 231, 242, 0.1); 5716 } 5717 5718 .info-table tr:last-child td { 5719 border-bottom: none; 5720 } 5721 5722 .info-table tr:hover td { 5723 background: rgba(139, 44, 255, 0.07); 5724 } 5725 5726 /* ========================= 5727 FOOTER 5728 ========================= */ 5729 .popup-footer { 5730 position: relative; 5731 z-index: 3; 5732 5733 padding: 4px 20px 8px; 5734 5735 color: #bfb3ca; 5736 font-size: 12px; 5737 line-height: 1.6; 5738 text-align: center; 5739 } 5740 5741 /* ========================= 5742 DECORATIVE BORDER 5743 ========================= */ 5744 .luxury-border { 5745 position: absolute; 5746 inset: 9px; 5747 z-index: 4; 5748 pointer-events: none; 5749 5750 border: 1px solid rgba(32, 231, 242, 0.08); 5751 border-radius: 7px 20px 7px 20px; 5752 } 5753 5754 /* ========================= 5755 PARTICLE 5756 ========================= */ 5757 .gold-particle { 5758 display: none; 5759 } 5760 5761 /* ========================= 5762 CLOSE BUTTON 5763 ========================= */ 5764 .close-btn { 5765 position: absolute; 5766 top: 12px; 5767 right: 12px; 5768 z-index: 10; 5769 5770 width: 34px; 5771 height: 34px; 5772 5773 display: flex; 5774 align-items: center; 5775 justify-content: center; 5776 5777 cursor: pointer; 5778 5779 background: rgba(8, 4, 13, 0.82); 5780 border: 1px solid rgba(255, 60, 166, 0.58); 5781 border-radius: 9px 4px 9px 4px; 5782 5783 box-shadow: 5784 0 0 10px rgba(255, 60, 166, 0.18); 5785 5786 transition: 5787 transform 0.22s ease, 5788 background 0.22s ease, 5789 border-color 0.22s ease; 5790 } 5791 5792 .close-btn:hover { 5793 transform: rotate(90deg); 5794 background: var(--sd-pink); 5795 border-color: #ffffff; 5796 } 5797 5798 .close-btn::before, 5799 .close-btn::after { 5800 content: ""; 5801 position: absolute; 5802 5803 width: 16px; 5804 height: 2px; 5805 5806 background: #ffffff; 5807 border-radius: 3px; 5808 } 5809 5810 .close-btn::before { 5811 transform: rotate(45deg); 5812 } 5813 5814 .close-btn::after { 5815 transform: rotate(-45deg); 5816 } 5817 5818 /* ========================= 5819 RESPONSIVE 5820 ========================= */ 5821 @media (max-width: 480px) { 5822 .popup-overlay { 5823 padding: 12px; 5824 } 5825 5826 .popup-container { 5827 max-width: 355px; 5828 border-radius: 8px 20px 8px 20px; 5829 } 5830 5831 .clk-btn-sgp { 5832 grid-template-columns: 1fr; 5833 gap: 10px; 5834 padding: 14px; 5835 } 5836 5837 .clk-btn-sgp a { 5838 min-height: 47px; 5839 padding: 12px; 5840 font-size: 12px; 5841 } 5842 5843 .info-table { 5844 width: calc(100% - 28px); 5845 font-size: 12px; 5846 } 5847 5848 .info-table th, 5849 .info-table td { 5850 padding: 10px; 5851 } 5852 5853 .popup-footer { 5854 padding-right: 16px; 5855 padding-left: 16px; 5856 font-size: 11px; 5857 } 5858 5859 .close-btn { 5860 width: 30px; 5861 height: 30px; 5862 } 5863 } 5864 5865 @media (prefers-reduced-motion: reduce) { 5866 5867 .popup-container, 5868 .clk-btn-sgp a, 5869 .close-btn { 5870 animation: none; 5871 transition: none; 5872 } 5873 } 5874 </style> 5875 <div class="popup-overlay" id="popupOverlay"> 5876 <div class="popup-container"> 5877 <!-- Tombol Close --> 5878 <div class="close-btn" onclick="closePopup()"></div> 5879 <!-- Partikel emas untuk efek elegan --> 5880 <div class="gold-particle" style="width: 10px; height: 10px; top: 15%; left: 12%; animation-delay: 0s;"></div> 5881 <div class="gold-particle" style="width: 8px; height: 8px; top: 35%; left: 88%; animation-delay: 1.5s;"></div> 5882 <div class="gold-particle" style="width: 12px; height: 12px; top: 65%; left: 18%; animation-delay: 3s;"></div> 5883 <div class="gold-particle" style="width: 6px; height: 6px; top: 25%; left: 75%; animation-delay: 4.5s;"></div> 5884 <div class="gold-particle" style="width: 9px; height: 9px; top: 80%; left: 60%; animation-delay: 6s;"></div> 5885 <!-- Border mewah --> 5886 <div class="luxury-border"></div> 5887 <div class="Popup Banner"> 5888 <img src="/image.png" alt="Popup Banner" class="popup-image" /> 5889 <div class="clk-btn-sgp" style="font-size: 20px;"> 5890 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noreferrer" class="login">LOGIN</a> 5891 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noreferrer" 5892 class="register">DAFTAR</a> 5893 </div> 5894 <div class="popup-footer"> 5895 88MEGA Gacor : Platform Game Slot Online Siap Kasih Kejutan Luar Biasa!<br />
5896 <span style="color: #ffd900; font-weight: 600; text-shadow: 0 0 5px rgba(212, 175, 55, 0.5);">© 5897 COPYRIGHT 2026 88MEGA</span> 5898 </div> 5899 </div> 5900 </div> 5901 </div> 5902
5902<script> 5903 function closePopup() { 5904 const popupOverlay = document.getElementById('popupOverlay'); 5905 popupOverlay.style.opacity = '0'; 5906 popupOverlay.style.transition = 'opacity 0.3s ease'; 5907 5908 setTimeout(() => { 5909 popupOverlay.style.display = 'none'; 5910 }, 300); 5911 } 5912 5913 // Menutup popup ketika mengklik area di luar popup 5914 document.getElementById('popupOverlay').addEventListener('click', function (event) { 5915 if (event.target === this) { 5916 closePopup(); 5917 } 5918 }); 5919 </script>
5919 5920 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5921 /* Chat Widget Styles - Lightweight & Minimal */ 5922 .chat-widget { 5923 position: fixed; 5924 bottom: 20px; 5925 right: 20px; 5926 z-index: 9999; 5927 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 5928 } 5929 5930 /* Hide floating button on mobile - use bottom nav instead */ 5931 @media (max-width: 640px) { 5932 .chat-toggle-btn { 5933 display: none !important; 5934 } 5935 5936 /* Ensure popup is still visible on mobile even when button is hidden */ 5937 .chat-widget { 5938 display: block !important; 5939 } 5940 5941 .chat-popup { 5942 display: none; 5943 /* Hidden by default, shown via JS */ 5944 } 5945 5946 .chat-popup[style*="display: block"], 5947 .chat-popup[style*="display:block"] { 5948 display: block !important; 5949 } 5950 } 5951 5952 .chat-toggle-btn { 5953 width: 60px; 5954 height: 60px; 5955 border-radius: 50%; 5956 background: linear-gradient(135deg, #0233f7 0%, #ffffff 100%); 5957 border: none; 5958 color: rgb(0, 0, 0); 5959 cursor: pointer; 5960 box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3); 5961 position: relative; 5962 transition: transform 0.2s, box-shadow 0.2s; 5963 } 5964 5965 .chat-toggle-btn:hover { 5966 transform: scale(1.05); 5967 box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4); 5968 } 5969 5970 #chat-toggle-btn .chat-icon { 5971 position: absolute; 5972 top: 50%; 5973 left: 50%; 5974 transform: translate(-50%, -50%); 5975 width: 28px !important; 5976 height: 28px !important; 5977 } 5978 5979 .chat-unread-badge { 5980 position: absolute; 5981 top: -5px; 5982 right: -5px; 5983 background: #ef4444; 5984 color: white; 5985 border-radius: 12px; 5986 padding: 2px 6px; 5987 font-size: 11px; 5988 font-weight: 600; 5989 min-width: 20px; 5990 text-align: center; 5991 } 5992 5993 .chat-popup { 5994 position: absolute; 5995 bottom: 80px; 5996 right: 0; 5997 width: 380px; 5998 max-width: calc(100vw - 40px); 5999 height: 500px; 6000 max-height: calc(100vh - 120px); 6001 background: white; 6002 border-radius: 12px; 6003 box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); 6004 display: flex; 6005 flex-direction: column; 6006 overflow: hidden; 6007 } 6008 6009 .chat-popup-header { 6010 background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%); 6011 color: white; 6012 padding: 16px 20px; 6013 display: flex; 6014 justify-content: space-between; 6015 align-items: center; 6016 flex-shrink: 0; 6017 } 6018 6019 .chat-header-title { 6020 display: flex; 6021 flex-direction: column; 6022 gap: 2px; 6023 min-height: 0; 6024 } 6025 6026 .chat-popup-header h3 { 6027 margin: 0; 6028 font-size: 18px; 6029 font-weight: 600; 6030 line-height: 1.2; 6031 } 6032 6033 .chat-operating-hours { 6034 font-size: 11px; 6035 opacity: 0.9; 6036 font-weight: 400; 6037 display: flex; 6038 align-items: center; 6039 gap: 4px; 6040 line-height: 1.2; 6041 } 6042 6043 .chat-operating-hours svg { 6044 width: 12px; 6045 height: 12px; 6046 opacity: 0.8; 6047 flex-shrink: 0; 6048 } 6049 6050 .chat-header-actions { 6051 display: flex; 6052 align-items: center; 6053 gap: 8px; 6054 } 6055 6056 /* Notification Toggle Button */ 6057 .btn-notif-toggle { 6058 background: none; 6059 border: none; 6060 color: white; 6061 font-size: 18px; 6062 cursor: pointer; 6063 padding: 4px 8px; 6064 transition: all 0.2s; 6065 opacity: 0.8; 6066 } 6067 6068 .btn-notif-toggle:hover { 6069 opacity: 1; 6070 transform: scale(1.1); 6071 } 6072 6073 /* Icon states */ 6074 .btn-notif-toggle[data-status="not-subscribed"] svg { 6075 opacity: 0.7; 6076 } 6077 6078 .btn-notif-toggle[data-status="not-subscribed"]:hover svg { 6079 opacity: 1; 6080 } 6081 6082 .btn-notif-toggle[data-status="subscribed"] svg { 6083 opacity: 1;
6084 animation: bellRing 2s ease-in-out; 6085 } 6086 6087 .btn-notif-toggle[data-status="blocked"] svg { 6088 color: #ff6b6b; 6089 } 6090 6091 .btn-notif-toggle[data-status="not-supported"] { 6092 display: none !important; 6093 } 6094 6095 @keyframes bellRing { 6096 6097 0%, 6098 100% { 6099 transform: rotate(0deg); 6100 } 6101 6102 10%, 6103 30% { 6104 transform: rotate(-10deg); 6105 } 6106 6107 20%, 6108 40% { 6109 transform: rotate(10deg); 6110 } 6111 } 6112 6113 /* Notification Info Bar */ 6114 .chat-notif-info-bar { 6115 position: absolute; 6116 top: 64px; 6117 left: 0; 6118 right: 0; 6119 background: linear-gradient(to right, #e3f2fd, #f5f5f5); 6120 border-bottom: 1px solid #bbdefb; 6121 padding: 8px 12px; 6122 display: flex; 6123 align-items: center; 6124 gap: 8px; 6125 font-size: 12px; 6126 color: #616161; 6127 z-index: 10; 6128 animation: slideDown 0.3s ease; 6129 } 6130 6131 .chat-notif-info-bar svg { 6132 flex-shrink: 0; 6133 } 6134 6135 .chat-notif-info-bar .small { 6136 flex: 1; 6137 line-height: 1.4; 6138 } 6139 6140 .chat-notif-info-bar .btn-dismiss { 6141 background: none; 6142 border: none; 6143 color: #9e9e9e; 6144 cursor: pointer; 6145 padding: 0 4px; 6146 font-size: 16px; 6147 transition: color 0.2s; 6148 } 6149 6150 .chat-notif-info-bar .btn-dismiss:hover { 6151 color: #616161; 6152 } 6153 6154 @keyframes slideDown { 6155 from { 6156 max-height: 0; 6157 opacity: 0; 6158 } 6159 6160 to { 6161 max-height: 50px; 6162 opacity: 1; 6163 } 6164 } 6165 6166 .chat-close-btn { 6167 background: none; 6168 border: none; 6169 color: white; 6170 font-size: 28px; 6171 line-height: 1; 6172 cursor: pointer; 6173 padding: 0; 6174 width: 30px; 6175 height: 30px; 6176 } 6177 6178 .chat-popup-body { 6179 flex: 1 1 auto; 6180 display: flex; 6181 flex-direction: column; 6182 min-height: 0; 6183 overflow: hidden; 6184 height: calc(100% - 64px); 6185 position: relative; 6186 transition: padding-top 0.3s ease; 6187 } 6188 6189 /* Add padding when info bar is visible */ 6190 .chat-popup-body.has-info-bar { 6191 padding-top: 40px; 6192 } 6193 6194 .chat-view { 6195 flex: 1 1 auto; 6196 display: none; 6197 flex-direction: column; 6198 min-height: 0; 6199 overflow: hidden; 6200 } 6201 6202 #chat-list-view { 6203 display: flex; 6204 } 6205 6206 #chat-messages-view { 6207 display: none; 6208 } 6209 6210 #chat-messages-view.active { 6211 display: flex; 6212 flex-direction: column; 6213 } 6214 6215 #chat-new-view { 6216 display: none; 6217 } 6218 6219 #chat-new-view.active { 6220 display: flex; 6221 } 6222 6223 .chat-conversations-list { 6224 flex: 1; 6225 overflow-y: auto; 6226 padding: 0; 6227 background: white; 6228 } 6229 6230 /* Custom Scrollbar for Conversations List */ 6231 .chat-conversations-list::-webkit-scrollbar { 6232 width: 6px; 6233 } 6234 6235 .chat-conversations-list::-webkit-scrollbar-track { 6236 background: #f1f1f1; 6237 } 6238 6239 .chat-conversations-list::-webkit-scrollbar-thumb { 6240 background: #F28C1A; 6241 border-radius: 3px; 6242 } 6243 6244 .chat-conversations-list::-webkit-scrollbar-thumb:hover { 6245 background: #D97809; 6246 } 6247 6248 /* Firefox */ 6249 .chat-conversations-list { 6250 scrollbar-width: thin; 6251 scrollbar-color: #F28C1A #f1f1f1; 6252 } 6253 6254 .chat-conversation-item { 6255 padding: 12px 16px; 6256 cursor: pointer; 6257 display: flex; 6258 gap: 12px; 6259 align-items: flex-start; 6260 transition: background 0.15s ease; 6261 color: #33371f; 6262 border-bottom: 1px solid #f0f0f0; 6263 } 6264 6265 .chat-conversation-item:hover { 6266 background: #f5f5f5; 6267 } 6268 6269 .chat-conversation-item.active { 6270 background: #FFF5EB; 6271 } 6272 6273 /* WhatsApp-like Avatar */ 6274 .conversation-avatar { 6275 width: 48px; 6276 height: 48px; 6277 border-radius: 50%; 6278 background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%); 6279 flex-shrink: 0; 6280 display: flex; 6281 align-items: center; 6282 justify-content: center; 6283 color: white; 6284 font-weight: 600; 6285 font-size: 18px; 6286 } 6287 6288 .conversation-avatar svg { 6289 width: 24px; 6290 height: 24px; 6291 } 6292 6293 /* WhatsApp-like Content */ 6294 .conversation-content { 6295 flex: 1; 6296 min-width: 0; 6297 display: flex; 6298 flex-direction: column; 6299 gap: 4px; 6300 } 6301 6302 .conversation-header { 6303 display: flex; 6304 justify-content: space-between; 6305 align-items: center; 6306 gap: 8px; 6307 } 6308 6309 .conversation-name { 6310 font-weight: 600; 6311 font-size: 15px; 6312 color: #111; 6313 white-space: nowrap; 6314 overflow: hidden; 6315 text-overflow: ellipsis; 6316 } 6317 6318 .conversation-time { 6319 font-size: 12px; 6320 color: #7d8166; 6321 flex-shrink: 0; 6322 } 6323 6324 .conversation-preview { 6325 display: flex; 6326 justify-content: space-between; 6327 align-items: center; 6328 gap: 8px; 6329 } 6330 6331 .conversation-message { 6332 font-size: 14px; 6333 color: #667781; 6334 white-space: nowrap; 6335 overflow: hidden; 6336 text-overflow: ellipsis; 6337 margin: 0; 6338 flex: 1; 6339 } 6340 6341 .conversation-unread { 6342 background: #d32525; 6343 color: white; 6344 border-radius: 12px; 6345 padding: 2px 8px; 6346 font-size: 12px; 6347 font-weight: 600;
6348 min-width: 20px; 6349 text-align: center; 6350 flex-shrink: 0; 6351 } 6352 6353 /* Active item styling */ 6354 .chat-conversation-item.active .conversation-name { 6355 color: #F28C1A; 6356 } 6357 6358 .chat-conversation-item.active .conversation-time { 6359 color: #F28C1A; 6360 } 6361 6362 .chat-new-btn { 6363 margin: 12px; 6364 padding: 12px; 6365 background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%); 6366 color: white; 6367 border: none; 6368 border-radius: 8px; 6369 cursor: pointer; 6370 font-weight: 500; 6371 font-size: 14px; 6372 display: flex; 6373 align-items: center; 6374 justify-content: center; 6375 gap: 8px; 6376 transition: all 0.2s; 6377 flex-shrink: 0; 6378 } 6379 6380 .chat-new-btn:hover { 6381 transform: translateY(-1px); 6382 box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3); 6383 } 6384 6385 .chat-conversation-title { 6386 flex: 1; 6387 font-weight: 600; 6388 font-size: 16px; 6389 color: #1f2937; 6390 } 6391 6392 .chat-messages-container { 6393 flex: 1; 6394 overflow-y: auto; 6395 padding: 16px; 6396 display: flex; 6397 flex-direction: column; 6398 gap: 8px; 6399 min-height: 0; 6400 background: #E5DDD5; 6401 } 6402 6403 /* Custom Scrollbar for Messages Container */ 6404 .chat-messages-container::-webkit-scrollbar { 6405 width: 6px; 6406 } 6407 6408 .chat-messages-container::-webkit-scrollbar-track { 6409 background: rgba(0, 0, 0, 0.05); 6410 } 6411 6412 .chat-messages-container::-webkit-scrollbar-thumb { 6413 background: rgba(242, 140, 26, 0.6); 6414 border-radius: 3px; 6415 } 6416 6417 .chat-messages-container::-webkit-scrollbar-thumb:hover { 6418 background: #F28C1A; 6419 } 6420 6421 /* Firefox */ 6422 .chat-messages-container { 6423 scrollbar-width: thin; 6424 scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05); 6425 } 6426 6427 /* WhatsApp Group-like Messages */ 6428 .chat-message { 6429 display: flex; 6430 margin-bottom: 4px; 6431 animation: fadeIn 0.2s ease; 6432 } 6433 6434 @keyframes fadeIn { 6435 from { 6436 opacity: 0; 6437 transform: translateY(10px); 6438 } 6439 6440 to { 6441 opacity: 1; 6442 transform: translateY(0); 6443 } 6444 } 6445 6446 .chat-message.mine { 6447 justify-content: flex-end; 6448 } 6449 6450 .chat-message-bubble { 6451 max-width: 80%; 6452 padding: 6px 8px 8px 10px; 6453 border-radius: 8px; 6454 position: relative; 6455 box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13); 6456 } 6457 6458 /* Bubble from others (Admin/CS) */ 6459 .chat-message:not(.mine) .chat-message-bubble { 6460 background: #FFFFFF; 6461 border-radius: 0 8px 8px 8px; 6462 } 6463 6464 /* Bubble tail for others */ 6465 .chat-message:not(.mine) .chat-message-bubble::before { 6466 content: ''; 6467 position: absolute; 6468 top: 0; 6469 left: -8px; 6470 width: 0; 6471 height: 0; 6472 border-style: solid; 6473 border-width: 0 8px 13px 0; 6474 border-color: transparent #FFFFFF transparent transparent; 6475 } 6476 6477 /* Bubble from user (mine) */ 6478 .chat-message.mine .chat-message-bubble { 6479 background: #e4f5d0; 6480 /* Light blue for user messages */ 6481 border-radius: 8px 0 8px 8px; 6482 } 6483 6484 /* Bubble tail for mine */ 6485 .chat-message.mine .chat-message-bubble::before { 6486 content: ''; 6487 position: absolute; 6488 top: 0; 6489 right: -8px; 6490 width: 0; 6491 height: 0; 6492 border-style: solid; 6493 border-width: 0 0 13px 8px; 6494 border-color: transparent transparent transparent #eaf5d0; 6495 } 6496 6497 .message-sender { 6498 font-size: 12.5px; 6499 font-weight: 600; 6500 color: #F28C1A !important; 6501 margin-bottom: 4px; 6502 } 6503 6504 .chat-message.mine .message-sender { 6505 display: none; 6506 } 6507 6508 /* Message text */ 6509 .message-text { 6510 font-size: 14px; 6511 line-height: 19px; 6512 color: #000000 !important; 6513 word-wrap: break-word; 6514 white-space: pre-wrap; 6515 margin-bottom: 4px;
6516 } 6517 6518 /* Message metadata (time + status) */ 6519 .message-meta { 6520 display: flex; 6521 align-items: center; 6522 justify-content: flex-end; 6523 gap: 4px; 6524 margin-top: 2px; 6525 } 6526 6527 .message-time { 6528 font-size: 11px; 6529 color: #728166 !important; 6530 line-height: 15px; 6531 } 6532 6533 /* Use multiple selectors to override global styles */ 6534 .chat-message-bubble .message-status, 6535 .message-meta .message-status, 6536 .chat-message .message-status { 6537 width: 16px !important; 6538 height: 16px !important; 6539 min-width: 16px !important; 6540 min-height: 16px !important; 6541 max-width: 16px !important; 6542 max-height: 16px !important; 6543 flex-shrink: 0; 6544 color: #728166 !important; 6545 fill: currentColor !important; 6546 } 6547 6548 .chat-message:not(.mine) .message-status { 6549 display: none; 6550 } 6551 6552 /* Loading dots animation */ 6553 @keyframes loadingDots { 6554 6555 0%, 6556 20% { 6557 content: '.'; 6558 } 6559 6560 40% { 6561 content: '..'; 6562 } 6563 6564 60%, 6565 100% { 6566 content: '...'; 6567 } 6568 } 6569 6570 .message-status.loading::after { 6571 content: '...'; 6572 animation: loadingDots 1.5s infinite; 6573 font-size: 16px; 6574 line-height: 16px; 6575 } 6576 6577 .message-status.loading path { 6578 display: none; 6579 } 6580 6581 .message-status.failed { 6582 color: #ef4444 !important; 6583 cursor: pointer; 6584 } 6585 6586 .message-status.sent { 6587 color: #667781 !important; 6588 } 6589 6590 .chat-new-form { 6591 flex: 1; 6592 overflow-y: auto; 6593 padding: 16px; 6594 display: flex; 6595 flex-direction: column; 6596 } 6597 6598 .chat-new-form form { 6599 display: flex; 6600 flex-direction: column; 6601 gap: 16px; 6602 flex: 1; 6603 } 6604 6605 .chat-new-form .form-group { 6606 display: flex; 6607 flex-direction: column; 6608 gap: 6px; 6609 } 6610 6611 .chat-new-form label { 6612 font-size: 14px; 6613 font-weight: 500; 6614 color: #374151; 6615 } 6616 6617 .chat-new-form .form-control { 6618 width: 100%; 6619 padding: 10px 12px; 6620 border: 1px solid #d1d5db; 6621 border-radius: 8px; 6622 font-size: 14px; 6623 font-family: inherit; 6624 transition: border-color 0.2s; 6625 box-sizing: border-box; 6626 } 6627 6628 .chat-new-form .form-control:focus { 6629 outline: none; 6630 border-color: #F28C1A; 6631 box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1); 6632 } 6633 6634 .chat-new-form textarea.form-control { 6635 resize: vertical; 6636 min-height: 100px; 6637 } 6638 6639 .chat-new-form .btn { 6640 padding: 12px 20px; 6641 border: none; 6642 border-radius: 8px; 6643 font-size: 15px; 6644 font-weight: 500; 6645 cursor: pointer; 6646 transition: all 0.2s; 6647 text-align: center; 6648 } 6649 6650 .chat-new-form .btn-primary { 6651 background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%); 6652 color: white; 6653 } 6654 6655 .chat-new-form .btn-primary:hover { 6656 transform: translateY(-1px); 6657 box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3); 6658 } 6659 6660 .chat-new-form .btn-primary:active { 6661 transform: scale(0.98); 6662 } 6663 6664 .chat-new-form .btn-block { 6665 width: 100%; 6666 margin-top: auto; 6667 } 6668 6669 .chat-message-form { 6670 padding: 12px; 6671 border-top: 1px solid #e5e7eb; 6672 display: flex; 6673 flex-wrap: wrap; 6674 gap: 8px; 6675 align-items: flex-end; 6676 flex-shrink: 0; 6677 background: white; 6678 } 6679 6680 .chat-product-card { 6681 flex: 1 1 100%; 6682 max-width: 100%; 6683 display: flex; 6684 gap: 12px; 6685 padding: 12px; 6686 background: #f3f4f6; 6687 border-radius: 8px; 6688 margin-bottom: 4px; 6689 border: 1px solid #e5e7eb; 6690 } 6691 6692 .chat-product-card img { 6693 width: 60px; 6694 height: 60px; 6695 object-fit: cover; 6696 border-radius: 6px; 6697 flex-shrink: 0; 6698 } 6699 6700 .chat-product-card-content { 6701 flex: 1; 6702 min-width: 0; 6703 } 6704 6705 .chat-product-card-name { 6706 font-weight: 500; 6707 font-size: 14px; 6708 color: #1f2937; 6709 margin-bottom: 4px;
6710 white-space: nowrap; 6711 overflow: hidden; 6712 text-overflow: ellipsis; 6713 } 6714 6715 .chat-product-card-variant { 6716 font-size: 12px; 6717 color: #74806b; 6718 margin-bottom: 4px; 6719 } 6720 6721 .chat-product-card-price { 6722 font-size: 13px; 6723 color: #8bea66; 6724 font-weight: 600; 6725 } 6726 6727 .chat-product-card-remove { 6728 align-self: flex-start; 6729 background: none; 6730 border: none; 6731 color: #9ca3af; 6732 cursor: pointer; 6733 padding: 4px; 6734 font-size: 18px; 6735 line-height: 1; 6736 transition: color 0.2s; 6737 } 6738 6739 .chat-product-card-remove:hover { 6740 color: #ef4444; 6741 } 6742 6743 /* Product card in messages (read-only display) */ 6744 .message-product-card { 6745 display: flex; 6746 gap: 10px; 6747 padding: 10px; 6748 background: rgba(255, 255, 255, 0.5); 6749 border-radius: 8px; 6750 margin-bottom: 6px; 6751 border: 1px solid rgba(0, 0, 0, 0.08); 6752 align-items: center; 6753 } 6754 6755 .chat-message.mine .message-product-card { 6756 background: rgba(255, 255, 255, 0.7); 6757 } 6758 6759 .message-product-card img { 6760 width: 50px; 6761 height: 50px; 6762 object-fit: cover; 6763 border-radius: 6px; 6764 flex-shrink: 0; 6765 } 6766 6767 .message-product-info { 6768 flex: 1; 6769 min-width: 0; 6770 } 6771 6772 .message-product-name { 6773 font-weight: 500; 6774 font-size: 13px; 6775 color: #33371f; 6776 margin-bottom: 2px; 6777 overflow: hidden; 6778 text-overflow: ellipsis; 6779 display: -webkit-box; 6780 -webkit-line-clamp: 2; 6781 -webkit-box-orient: vertical; 6782 line-height: 1.3; 6783 } 6784 6785 .message-product-variant { 6786 font-size: 11px; 6787 color: #78806b; 6788 margin-bottom: 2px; 6789 } 6790 6791 .message-product-price { 6792 font-size: 12px; 6793 color: #c7ea66; 6794 font-weight: 600; 6795 } 6796 6797 .message-product-link { 6798 flex-shrink: 0; 6799 width: 32px; 6800 height: 32px; 6801 display: flex; 6802 align-items: center; 6803 justify-content: center; 6804 background: rgba(102, 126, 234, 0.1); 6805 border-radius: 6px; 6806 color: #c7ea66; 6807 text-decoration: none; 6808 transition: all 0.2s; 6809 } 6810 6811 .message-product-link:hover { 6812 background: #b7ea66; 6813 color: white; 6814 } 6815 6816 .message-product-link svg { 6817 width: 16px; 6818 height: 16px; 6819 } 6820 6821 .chat-message-input { 6822 flex: 1; 6823 border: 1px solid #d1d5db; 6824 border-radius: 20px; 6825 padding: 10px 16px; 6826 resize: none; 6827 max-height: 100px; 6828 font-family: inherit; 6829 font-size: 14px; 6830 line-height: 1.5; 6831 box-sizing: border-box; 6832 overflow-y: hidden; 6833 } 6834 6835 .chat-message-input:focus { 6836 outline: none; 6837 border-color: #F28C1A; 6838 box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1); 6839 } 6840 6841 .chat-send-btn { 6842 width: 40px; 6843 height: 40px; 6844 border-radius: 50%; 6845 background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%); 6846 border: none; 6847 color: white; 6848 cursor: pointer; 6849 flex-shrink: 0; 6850 display: flex; 6851 align-items: center; 6852 justify-content: center; 6853 transition: all 0.2s; 6854 } 6855 6856 .chat-send-btn:hover { 6857 transform: scale(1.05); 6858 box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3); 6859 } 6860 6861 .chat-send-btn:active { 6862 transform: scale(0.95); 6863 } 6864 6865 .chat-loading { 6866 text-align: center; 6867 padding: 20px; 6868 color: #6b7280; 6869 } 6870 6871 /* Date Separator (WhatsApp-style) */ 6872 .date-separator { 6873 display: flex; 6874 align-items: center; 6875 gap: 12px; 6876 margin: 24px 0 16px; 6877 opacity: 0; 6878 animation: fadeInSeparator 0.3s ease forwards; 6879 } 6880 6881 @keyframes fadeInSeparator { 6882 from { 6883 opacity: 0; 6884 transform: translateY(-10px); 6885 } 6886 6887 to { 6888 opacity: 1;
6889 transform: translateY(0); 6890 } 6891 } 6892 6893 .date-separator-line { 6894 flex: 1; 6895 height: 1px; 6896 background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent); 6897 } 6898 6899 .date-separator-text { 6900 flex-shrink: 0; 6901 padding: 4px 12px; 6902 background: #e9ecef; 6903 color: #6c757d; 6904 font-size: 11px; 6905 font-weight: 600; 6906 text-transform: uppercase; 6907 letter-spacing: 0.5px; 6908 border-radius: 12px; 6909 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 6910 } 6911 6912 /* Mobile responsive */ 6913 @media (max-width: 640px) { 6914 .chat-popup { 6915 position: fixed !important; 6916 /* Override absolute positioning */ 6917 bottom: 45px !important; 6918 /* Above bottom nav */ 6919 right: 0 !important; 6920 left: 0 !important; 6921 width: 100% !important; 6922 max-width: 100% !important; 6923 /* Use dvh (dynamic viewport height) for browser UI awareness */ 6924 height: calc(100dvh - 45px) !important; 6925 max-height: calc(100dvh - 45px) !important; 6926 /* Fallback for browsers that don't support dvh */ 6927 height: calc(var(--viewport-height, 100vh) - 45px) !important; 6928 max-height: calc(var(--viewport-height, 100vh) - 45px) !important; 6929 border-radius: 0 !important; 6930 z-index: 9999 !important; 6931 } 6932 6933 .chat-popup-header { 6934 border-radius: 0; 6935 } 6936 6937 .chat-messages-container, 6938 .chat-conversations-list { 6939 /* Adjust for mobile keyboard using dynamic viewport */ 6940 max-height: calc(100dvh - 190px); 6941 /* Fallback for browsers that don't support dvh */ 6942 max-height: calc(var(--viewport-height, 100vh) - 190px); 6943 } 6944 } 6945 </style> 6946 6947 <!-- Chat Widget Button --> 6948 <div id="chat-widget" class="chat-widget" data-user-id="" data-is-logged-in="false" 6949 data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a"> 6950 <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat"> 6951 <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor"> 6952 <path 6953 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" /></path> 6954 </svg> 6955 <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span> 6956 </button> 6957 6958 <div id="chat-popup" class="chat-popup" style="display: none;"> 6959 <div class="chat-popup-header"> 6960 <div class="chat-header-title"> 6961 <h3>Bantuan</h3> 6962 <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span> 6963 </div> 6964 <div class="chat-header-actions"> 6965 <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" 6966 style="display: none;"> 6967 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 6968 <path 6969 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" /></path> 6970 </svg> 6971 </button> 6972 <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">Ãâ</button> 6973 </div> 6974 </div> 6975 6976 <!-- Notification Info Bar (conditional) --> 6977 <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;"> 6978 <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107"> 6979 <path 6980 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" /></path> 6981 </svg>
6982 <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span> 6983 <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">âÅâ¢</button> 6984 </div> 6985 6986 <div class="chat-popup-body"> 6987 <!-- Conversations List View --> 6988 <div id="chat-list-view" class="chat-view"> 6989 <div id="chat-conversations-list" class="chat-conversations-list"> 6990 <div class="chat-loading">Memuat...</div> 6991 <!-- Conversation Item Structure (rendered by JS): 6992 <div class="chat-conversation-item"> 6993 <div class="conversation-avatar"> 6994 <svg>...</svg> 6995 </div> 6996 <div class="conversation-content"> 6997 <div class="conversation-header"> 6998 <span class="conversation-name">Admin Support</span> 6999 <span class="conversation-time">10:30</span> 7000 </div> 7001 <div class="conversation-preview"> 7002 <p class="conversation-message">Terima kasih telah menghubungi kami...</p> 7003 <span class="conversation-unread">2</span> 7004 </div> 7005 </div> 7006 </div> 7007 --> 7008 </div> 7009 <button id="chat-new-btn" class="chat-new-btn"> 7010 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 7011 <line x1="12" y1="5" x2="12" y2="19"></line> 7012 <line x1="5" y1="12" x2="19" y2="12"></line> 7013 </svg> 7014 Percakapan Baru 7015 </button> 7016 </div> 7017 7018 <!-- Chat Messages View --> 7019 <div id="chat-messages-view" class="chat-view" style="display: none;"> 7020 <div id="chat-messages-container" class="chat-messages-container"> 7021 <div class="chat-loading">Memuat pesan...</div> 7022 <!-- Message Structure (rendered by JS): 7023 <div class="chat-message"> (or .chat-message.mine) 7024 <div class="chat-message-bubble"> 7025 <div class="message-sender">Admin Support</div> (only for non-mine) 7026 <div class="message-text">Halo, ada yang bisa dibantu?</div> 7027 <div class="message-meta"> 7028 <span class="message-time">10:30</span> 7029 <svg class="message-status">...</svg> (only for mine) 7030 </div> 7031 </div> 7032 </div> 7033 --> 7034 </div> 7035 7036 <form id="chat-message-form" class="chat-message-form"> 7037 <input type="hidden" id="chat-current-conversation-id" value=""> 7038 <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..." rows="1" 7039 maxlength="5000"></textarea> 7040 <button type="submit" class="chat-send-btn" aria-label="Send message"> 7041 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 7042 <line x1="22" y1="2" x2="11" y2="13"></line> 7043 <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon> 7044 </svg> 7045 </button> 7046 </form> 7047 </div> 7048 7049 <!-- New Chat View --> 7050 <div id="chat-new-view" class="chat-view" style="display: none;"> 7051 <div class="chat-messages-header"> 7052 <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
7053 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 7054 <path d="M19 12H5M12 19l-7-7 7-7" /></path> 7055 </svg> 7056 </button> 7057 <div class="chat-conversation-title">Percakapan Baru</div> 7058 </div> 7059 7060 <div class="chat-new-form"> 7061 <form id="chat-start-form"> 7062 <div class="form-group"> 7063 <label for="chat-new-subject">Subjek</label> 7064 <input type="text" id="chat-new-subject" class="form-control" placeholder="Bantuan Pelanggan" 7065 maxlength="255"> 7066 </div> 7067 <div class="form-group"> 7068 <label for="chat-new-message">Pesan</label> 7069 <textarea id="chat-new-message" class="form-control" rows="4" placeholder="Tulis pertanyaan Anda..." 7070 required maxlength="5000"></textarea> 7071 </div> 7072 <button type="submit" class="btn btn-primary btn-block">Kirim</button> 7073 </form> 7074 </div> 7075 </div> 7076 </div> 7077 </div> 7078 </div> 7079 7080 <!-- Login Required Modal --> 7081 <div class="modal-overlay" id="chatLoginModal"> 7082 <div class="modal-dialog"> 7083 <div class="modal-header"> 7084 <h3 class="modal-title"> 7085 <div class="modal-icon info"> 7086 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7087 <path 7088 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" /></path> 7089 </svg> 7090 </div> 7091 Login Diperlukan 7092 </h3> 7093 </div> 7094 <div class="modal-body"> 7095 <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p> 7096 <div class="modal-actions"> 7097 <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button> 7098 <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button> 7099 </div> 7100 </div> 7101 </div> 7102 </div> 7103 7104 </footer> 7105 7106 <!-- Compare Sidebar Overlay --> 7107 <div class="compare-overlay" id="compareOverlay"></div> 7108 7109 <!-- Floating Compare Badge (Sticky) --> 7110 <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" 7111 style="display:none;"> 7112 <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> 7113 <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z" /></path> 7114 </svg> 7115 <span class="cfb-text">Bandingkan</span> 7116 <span class="cfb-count" id="cfbCount">0</span> 7117 </button> 7118 7119 <!-- AI Comparison Modal --> 7120 <div class="ai-compare-modal" id="aiCompareModal"> 7121 <div class="modal-backdrop"></div> 7122 <div class="modal-container"> 7123 <div class="modal-header"> 7124 <h3 class="modal-title"> 7125 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> 7126 <path 7127 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" /></path> 7128 </svg> 7129 Analisis AI: Perbandingan Produk 7130 </h3> 7131 <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup"> 7132 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7133 <path 7134 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" /></path> 7135 </svg> 7136 </button> 7137 </div> 7138 7139 <div class="modal-content"> 7140 <!-- Loading State --> 7141 <div class="ai-loading" id="aiLoading"> 7142 <div class="loading-animation"> 7143 <div class="typing-indicator">
7144 <span></span> 7145 <span></span> 7146 <span></span> 7147 </div> 7148 <p>AI sedang menganalisis produk...</p> 7149 <small>Proses ini membutuhkan waktu 10-30 detik</small> 7150 </div> 7151 </div> 7152 7153 <!-- Error State --> 7154 <div class="ai-error" id="aiError" hidden> 7155 <div class="error-icon"> 7156 <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444"> 7157 <path 7158 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" /></path> 7159 </svg> 7160 </div> 7161 <h4>Analisis AI Gagal</h4> 7162 <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p> 7163 <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button> 7164 </div> 7165 7166 <!-- Analysis Results --> 7167 <div class="ai-results" id="aiResults" hidden> 7168 <!-- Summary Section --> 7169 <div class="ai-summary-card"> 7170 <h4> 7171 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7172 <path 7173 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" /></path> 7174 </svg> 7175 Ringkasan Analisis 7176 </h4> 7177 <p id="aiSummary" class="summary-text"></p> 7178 <div class="winner-badge" id="winnerBadge"> 7179 <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span> 7180 <small id="winnerReason"></small> 7181 </div> 7182 </div> 7183 7184 <!-- Comparison Table --> 7185 <div class="ai-comparison-table"> 7186 <h4> 7187 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7188 <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z" /></path> 7189 </svg> 7190 Perbandingan Detail 7191 </h4> 7192 <div id="comparisonTable" class="comparison-grid"></div> 7193 </div> 7194 7195 <!-- Detailed Analysis --> 7196 <div class="ai-detailed-analysis"> 7197 <h4> 7198 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7199 <path 7200 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" /></path> 7201 </svg> 7202 Analisis Mendalam 7203 </h4> 7204 <div id="detailedAnalysis" class="products-analysis"></div> 7205 </div> 7206 7207 <!-- Recommendations --> 7208 <div class="ai-recommendations"> 7209 <h4> 7210 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7211 <path 7212 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" /></path> 7213 </svg> 7214 Rekomendasi Berdasarkan Kebutuhan 7215 </h4> 7216 <div class="recommendations-grid"> 7217 <div class="recommendation-card"> 7218 <h5>ðŸâ° Budget Conscious</h5> 7219 <p id="budgetRecommendation"></p> 7220 </div> 7221 <div class="recommendation-card"> 7222 <h5>âš¡ Performance Focused</h5> 7223 <p id="performanceRecommendation"></p> 7224 </div> 7225 <div class="recommendation-card"> 7226 <h5>âšâï¸ Balanced Choice</h5> 7227 <p id="balancedRecommendation"></p> 7228 </div> 7229 </div> 7230 </div> 7231 7232 <!-- Buying Tips --> 7233 <div class="ai-tips"> 7234 <h4> 7235 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7236 <path 7237 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
7237M5,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" /></path> 7238 </svg> 7239 Tips Pembelian 7240 </h4> 7241 <ul id="buyingTips" class="tips-list"></ul> 7242 </div> 7243 </div> 7244 </div> 7245 </div> 7246 </div> 7247 7248 <!-- Cart Login Modal --> 7249 <div class="modal-overlay" id="cartLoginModal"> 7250 <div class="modal-dialog"> 7251 <div class="modal-header"> 7252 <h3 class="modal-title"> 7253 <div class="modal-icon info"> 7254 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7255 <path 7256 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" /></path> 7257 </svg> 7258 </div> 7259 Login untuk Melanjutkan 7260 </h3> 7261 </div> 7262 <div class="modal-body"> 7263 <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang 7264 belanja dan menyelesaikan pesanan Anda.</p> 7265 <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;"> 7266 <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;"> 7267 <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br> 7268 âÅâ Simpan keranjang belanja Anda<br> 7269 âÅâ Lacak status pesanan secara real-time<br> 7270 âÅâ Checkout lebih cepat dengan data tersimpan<br> 7271 âÅâ Dapatkan notifikasi promo & diskon eksklusif 7272 </p> 7273 </div> 7274 <div class="modal-actions"> 7275 <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button> 7276 <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" 7277 style="background: #ff6b35; border-color: #ff6b35;">Login</button> 7278 <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" 7279 style="background: #f7931e; border-color: #f7931e;">Daftar</button> 7280 </div> 7281 </div> 7282 </div> 7283 </div> 7284 7285 7286 7287 <style> 7288 :root { 7289 --mawar-black: #07040c; 7290 --mawar-dark: #12071b; 7291 --mawar-purple: #0026fd; 7292 --mawar-pink: #0026fd; 7293 --mawar-cyan: #0026fd; 7294 --mawar-white: #ffffff; 7295 } 7296 7297 /* ========================================================= 7298 FIXED FOOTER ââ¬â STREET DEMONS MODE 7299 ========================================================= */ 7300 7301 .mawar-fixed-footer { 7302 position: fixed; 7303 left: 0; 7304 right: 0; 7305 bottom: 0; 7306 z-index: 999; 7307 7308 display: flex; 7309 align-items: center; 7310 justify-content: space-around; 7311 gap: 8px; 7312 7313 padding: 11px 12px calc(11px + env(safe-area-inset-bottom)); 7314 overflow: hidden; 7315 7316 background: 7317 radial-gradient(circle at 50% 0%, 7318 rgba(139, 44, 255, 0.24), 7319 rgba(20, 8, 30, 0.96) 58%, 7320 rgba(5, 2, 9, 1)), 7321 linear-gradient(180deg, 7322 rgba(34, 13, 48, 0.95), 7323 rgba(5, 2, 9, 1)); 7324 7325 border-top: 2px solid rgba(0, 21, 255, 0.6); 7326 border-radius: 18px 18px 0 0; 7327 7328 box-shadow: 7329 0 -12px 35px rgba(139, 44, 255, 0.22), 7330 0 -4px 18px rgba(255, 60, 166, 0.12), 7331 inset 0 1px 0 rgba(255, 255, 255, 0.08); 7332 7333 font-family: "Orbitron", "Poppins", Arial, sans-serif; 7334 } 7335 7336 /* Scanline ringan */ 7337 .mawar-fixed-footer::before { 7338 content: ""; 7339 position: absolute; 7340 inset: 0; 7341 pointer-events: none; 7342 7343 background: repeating-linear-gradient(0deg, 7344 rgba(32, 231, 242, 0.025), 7345 rgba(32, 231, 242, 0.025) 1px, 7346 transparent 1px, 7347 transparent 4px); 7348 7349 opacity: 0.75; 7350 mix-blend-mode: screen;
7351 } 7352 7353 /* Sweep neon */ 7354 .mawar-fixed-footer::after { 7355 content: ""; 7356 position: absolute; 7357 top: 0; 7358 left: -160%; 7359 7360 width: 60%; 7361 height: 100%; 7362 7363 background: linear-gradient(120deg, 7364 transparent, 7365 rgba(255, 0, 0, 0.22), 7366 rgba(0, 38, 210, 0.527), 7367 transparent); 7368 7369 transform: skewX(-25deg); 7370 animation: mawarShine 4.5s infinite ease-in-out; 7371 pointer-events: none; 7372 } 7373 7374 @keyframes mawarShine { 7375 0% { 7376 left: -160%; 7377 opacity: 0; 7378 } 7379 7380 15% { 7381 opacity: 1; 7382 } 7383 7384 55% { 7385 left: 160%; 7386 opacity: 1; 7387 } 7388 7389 100% { 7390 left: 160%; 7391 opacity: 0; 7392 } 7393 } 7394 7395 /* ========================================================= 7396 ITEM STYLE 7397 ========================================================= */ 7398 7399 .mawar-fixed-footer a { 7400 flex: 1; 7401 max-width: 110px; 7402 7403 display: flex; 7404 flex-direction: column; 7405 align-items: center; 7406 justify-content: center; 7407 gap: 5px; 7408 7409 padding: 8px 4px; 7410 7411 color: rgba(255, 255, 255, 0.9); 7412 text-decoration: none; 7413 text-align: center; 7414 text-transform: uppercase; 7415 7416 font-size: 11px; 7417 font-weight: 800; 7418 letter-spacing: 0.4px; 7419 7420 position: relative; 7421 z-index: 2; 7422 7423 transition: 7424 color 0.2s ease, 7425 transform 0.2s ease, 7426 filter 0.2s ease; 7427 } 7428 7429 .mawar-fixed-footer a:hover { 7430 color: var(--mawar-white); 7431 transform: translateY(-2px); 7432 7433 filter: 7434 drop-shadow(0 0 6px rgba(250, 0, 0, 0.65)) drop-shadow(0 0 8px rgba(255, 60, 166, 0.35)); 7435 } 7436 7437 .mawar-fixed-footer img { 7438 width: 24px; 7439 height: 24px; 7440 object-fit: contain; 7441 7442 filter: 7443 drop-shadow(0 0 5px rgba(32, 231, 242, 0.55)) drop-shadow(0 0 7px rgba(139, 44, 255, 0.35)); 7444 7445 transition: transform 0.2s ease; 7446 } 7447 7448 .mawar-fixed-footer a:hover img { 7449 transform: scale(1.08); 7450 } 7451 7452 /* ========================================================= 7453 CENTER CTA ââ¬â STREET CORE 7454 ========================================================= */ 7455 7456 .mawar-fixed-footer .core-cta { 7457 background: 7458 linear-gradient(145deg, 7459 rgba(139, 44, 255, 0.2), 7460 rgba(255, 60, 166, 0.12)); 7461 7462 border: 1px solid rgba(245, 0, 0, 0.65); 7463 border-radius: 10px 18px 10px 18px; 7464 7465 box-shadow: 7466 0 0 14px rgba(139, 44, 255, 0.28), 7467 0 0 18px rgba(32, 231, 242, 0.1), 7468 inset 0 0 10px rgba(255, 60, 166, 0.1); 7469 7470 transform: scale(1.05); 7471 } 7472 7473 .mawar-fixed-footer .core-cta img { 7474 width: 28px; 7475 height: 28px; 7476 7477 filter: 7478 drop-shadow(0 0 8px rgba(247, 0, 0, 0.8)) drop-shadow(0 0 11px rgba(255, 60, 166, 0.55)); 7479 } 7480 7481 .mawar-fixed-footer .core-cta::before { 7482 content: ""; 7483 position: absolute; 7484 inset: -5px; 7485 z-index: -1; 7486 7487 border-radius: 13px 21px 13px 21px; 7488 7489 background: radial-gradient(circle, 7490 rgba(139, 44, 255, 0.28), 7491 rgba(255, 60, 166, 0.1), 7492 transparent 72%); 7493 7494 animation: mawarPulse 2.2s ease-in-out infinite; 7495 } 7496 7497 @keyframes mawarPulse { 7498 7499 0%, 7500 100% { 7501 opacity: 0.35; 7502 transform: scale(1); 7503 } 7504 7505 50% { 7506 opacity: 0.8; 7507 transform: scale(1.08); 7508 } 7509 } 7510 7511 /* ========================================================= 7512 RESPONSIVE 7513 ========================================================= */ 7514 7515 @media (max-width: 400px) { 7516 .mawar-fixed-footer { 7517 gap: 4px; 7518 padding-right: 8px; 7519 padding-left: 8px; 7520 } 7521 7522 .mawar-fixed-footer a { 7523 font-size: 10px; 7524 letter-spacing: 0.2px; 7525 } 7526 7527 .mawar-fixed-footer img { 7528 width: 20px; 7529 height: 20px; 7530 } 7531 7532 .mawar-fixed-footer .core-cta img { 7533 width: 24px; 7534 height: 24px; 7535 } 7536 } 7537 7538 @media (prefers-reduced-motion: reduce) { 7539 7540 .mawar-fixed-footer::after, 7541 .mawar-fixed-footer .core-cta::before { 7542 animation: none; 7543 } 7544 7545 .mawar-fixed-footer a, 7546 .mawar-fixed-footer img { 7547 transition: none; 7548 } 7549 } 7550 </style> 7551 7552 <div class="mawar-fixed-footer"> 7553 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noopener"> 7554 <img src="/88megaicon.webp" alt="BONUS 88MEGA"> 7555 PROMO 7556 </a> 7557 7558 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noopener"> 7559 <img src="/88megaicon.webp" alt="TELEGRAM 88MEGA"> 7560 TELEGRAM 7561 </a> 7562 7563 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noopener" class="core-cta"> 7564 <img src="/88megaicon.webp" alt="DAFTAR 88MEGA"> 7565 DAFTAR 7566 </a> 7567 7568 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noopener"> 7569 <img src="/88megaicon.webp" alt="RTP 88MEGA"> 7570 RTP 7571 </a> 7572 7573 <a href="https://gogo.88megagacor.one/back/" target="_blank" rel="nofollow noopener"> 7574 <img src="/88megaicon.webp" alt="LIVECHAT 88MEGA"> 7575 LIVECHAT 7576 </a> 7577 </div> 7578
7578<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" 7579 integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 7580 data-cf-beacon='{"version":"2024.11.0","token":"3e9b3809d54c4fd180442ae60f330b2a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 7581 crossorigin="anonymous"></script>
vendor: 2 bytes, line 7581
7581
7582<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":"e445cbb1ccf84c4ab2e7a43ea1753268","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 7582
7582
7583<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":"e445cbb1ccf84c4ab2e7a43ea1753268","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 7583
7583
7584<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"984e4dfe691c4cdcba8df4f616d4806c","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 7584
7584
7585<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"58aa850b84ac45028540b2ee07e0fe53","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 7585
7585
7586<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"44211135f4774dcab490b645ca749dec","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 7586
7586
7587<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"e4c060edeb5142e087620059a96236b4","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 7587
7587
7588<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"41b76a523a684080bdc0c6e2db195718","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 7588
7588
7589<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"153e8c38edc34dedaf9afbc0e68d0842","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 7589
7589
7590<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"60c5f270103e4642b573dcc391b72d23","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7590
7590
7591<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"df3003d49b434ae8819031a488f69265","r":1}' crossorigin="anonymous"></script>
7591 7592 7593 7594<div class="pd-lb" id="pd-lightbox" role="dialog" aria-modal="true" aria-hidden="true" tabindex="-1"> 7595 <div class="pd-lb-canvas"><img class="pd-lb-img" id="pd-lb-img" alt="" /></div> 7596 <button class="pd-lb-close" aria-label="Tutup" title="Tutup">Ãâ</button> 7597 <button class="pd-lb-prev" aria-label="Sebelumnya" title="Sebelumnya">â ®</button> 7598 <button class="pd-lb-next" aria-label="Berikutnya" title="Berikutnya">â ¯</button> 7599 <div class="pd-lb-counter" id="pd-lb-counter">1 / 1</div> 7600 </div> 7601<div class="pd-lb" id="pd-lightbox" role="dialog" aria-modal="true" aria-hidden="true" tabindex="-1"> 7602 <div class="pd-lb-canvas"><img class="pd-lb-img" id="pd-lb-img" alt="" /></div> 7603 <button class="pd-lb-close" aria-label="Tutup" title="Tutup">Ã</button> 7604 <button class="pd-lb-prev" aria-label="Sebelumnya" title="Sebelumnya">â®</button> 7605 <button class="pd-lb-next" aria-label="Berikutnya" title="Berikutnya">â¯</button> 7606 <div class="pd-lb-counter" id="pd-lb-counter">1 / 1</div> 7607 </div>
7607<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":"698c619f2e2f448084905abba06d718c","r":1,"spa":2}' crossorigin="anonymous"></script>
7607 7608</body></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.