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