1<!doctype html> 2<html lang="id"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 6 <title>BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026</title> 7 <link rel="icon" type="image/png" href="/favicon.png"> 8 9 <meta name="description" content="BBNi4D menyediakan link alternatif resmi untuk permainan slot online yang mudah diakses kapapun dan dimanapun kamu berada."> 10<meta name="robots" content="index, follow"> 11<meta name="language" content="id"> 12<meta name="geo.region" content="ID"> 13<meta name="geo.country" content="Indonesia"> 14 15<meta name="author" content="BBNI4D Official"> 16<meta name="publisher" content="BBNI4D"> 17 18<link rel="canonical" href="https://bbni4dabsen.com/"> 19<link rel="amphtml" href="https://bbni4dyoung.com/"> 20<link rel="alternate" hreflang="id-id" href="https://bbni4dyoung.com/"/> 21<link rel="alternate" href="https://bbni4dyoung.com/"/> 22<link rel="alternate" hreflang="id" href="https://bbni4dyoung.com"/> 23<link rel="alternate" hreflang="en" href="https://bbni4dyoung.com/"/> 24<link rel="alternate" hreflang="x-default" href="https://bbni4dyoung.com/"/> 25 26<link rel="icon" type="image/png" href="/favicon.png"> 27<link rel="apple-touch-icon" href="/favicon.png"> 28<!-- Open Graph --> 29<meta property="og:type" content="website"> 30<meta property="og:locale" content="id_ID"> 31<meta property="og:site_name" content="BBNI4D"> 32<meta property="og:title" content="BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026 "> 33<meta property="og:description" content="BBNi4D menyediakan link alternatif resmi untuk permainan slot online yang mudah diakses kapapun dan dimanapun kamu berada."> 34<meta property="og:url" content="https://bbni4dabsen.com/"> 35<meta property="og:image" content="https://bbni4dabsen.com/favicon.png"> 36<meta property="og:image:width" content="512"> 37<meta property="og:image:height" content="512"> 38 39<!-- Twitter Card --> 40<meta name="twitter:card" content="summary_large_image"> 41<meta name="twitter:title" content="BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026 "> 42<meta name="twitter:description" content="BBNi4D menyediakan link alternatif resmi untuk permainan slot online yang mudah diakses kapapun dan dimanapun kamu berada."> 43<meta name="twitter:image" content="https://bbni4dabsen.com/favicon.png"> 44 45<!-- Theme --> 46<meta name="theme-color" content="#ED6530"> 47<meta name="msapplication-TileColor" content="#286A78">
vendor: 69 bytes, lines 47-50
47 48 49 50<script async src="https://www.googletagmanager.com/gtag/js?id=
50G-BN2CTLQ453
vendor: 13 bytes, line 50
50"></script>
51<script> 52
vendor: 136 bytes, lines 52-55
52window.dataLayer = window.dataLayer || []; 53 function gtag(){dataLayer.push(arguments);} 54 gtag('js', new Date()); 55 gtag('config', '
55G-BN2CTLQ453
vendor: 5 bytes, line 55
55');
56</script>
56 57 58<meta name="google-site-verification" content="bdUa3qjvGexrYypQ_oL0Kxd6Qiz924CEm93y4EaLMVo"> 59<meta name="google-site-verification" content="khh4z5LeuCvRZzjnhVh4bOz_XXioNBnZJmotbRxsB5A"> 60<meta name="google-site-verification" content="aweSHAarAF6QYxkEFC7_se5k8OvP1oeZE_GrDIrPfhw"> 61<meta name="google-site-verification" content="aQ2Q7QqHw11_7p4cJ4HK3c2XquuQFW2xnIA3o3p6mz8" /> 62<meta name="google-site-verification" content="whrUD2vihU674aLGfF8f3EalseUcL8YttMsDJXO13Kk" /> 63 64<meta name="dmca-site-verification" content="R3lnbFRNWWZWK0F2anZwUktRZVJOdz090"> 65<meta name="dmca-site-verification" content="Rm04T0U4RlUxNXhHM0FDZUprQUNqZz090">
vendor: 80 bytes, lines 65-69
65 66 67<noscript> 68 <iframe 69 src="https://www.googletagmanager.com/ns.html?id=
69GTM-M5WJX4DN
vendor: 107 bytes, lines 69-75
69" 70 height="0" 71 width="0" 72 style="display:none;visibility:hidden"> 73 </iframe> 74</noscript> 75
76<script type="application/ld+json"> 77{ 78 "@context": "https://schema.org", 79 "@graph": [ 80 { 81 "@type": "Organization", 82 "@id": "https://bbni4dabsen.com/#organization", 83 "name": "BBNI4D", 84 "alternateName": "BBNI4D Official", 85 "url": "https://bbni4dabsen.com/", 86 "logo": { 87 "@type": "ImageObject", 88 "@id": "https://bbni4dabsen.com/#logo", 89 "url": "https://bbni4dabsen.com/images/logoweb.png", 90 "contentUrl": "https://bbni4dabsen.com/images/logoweb.png", 91 "caption": "BBNI4D Official Logo" 92 }, 93 "image": { 94 "@id": "https://bbni4dabsen.com/#logo" 95 }, 96 "sameAs": [ 97 "https://www.youtube.com/@BBNI4D-Slot", 98 "https://www.instagram.com/bbni4d.slot/", 99 "https://x.com/BBNI4Dslot" 100 ], 101 "contactPoint": [ 102 { 103 "@type": "ContactPoint", 104 "contactType": "customer service", 105 "telephone": "+62-822-1128-1147", 106 "areaServed": "ID", 107 "availableLanguage": [ 108 "Indonesian", 109 "id" 110 ] 111 } 112 ], 113 "address": { 114 "@type": "PostalAddress", 115 "addressCountry": "ID" 116 } 117 }, 118 { 119 "@type": "WebSite", 120 "@id": "https://bbni4dabsen.com/#website", 121 "url": "https://bbni4dabsen.com/", 122 "name": "BBNI4D", 123 "alternateName": "BBNI4D Link Alternatif", 124 "publisher": { 125 "@id": "https://bbni4dabsen.com/#organization" 126 }, 127 "inLanguage": "id-ID", 128 "potentialAction": { 129 "@type": "SearchAction", 130 "target": "https://bbni4dabsen.com/?s={search_term_string}", 131 "query-input": "required name=search_term_string" 132 } 133 }, 134 { 135 "@type": "WebPage", 136 "@id": "https://bbni4dabsen.com/#webpage", 137 "url": "https://bbni4dabsen.com/", 138 "name": "BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026", 139 "description": "BBNi4D menyediakan link alternatif resmi untuk permainan slot online yang mudah diakses kapapun dan dimanapun kamu berada.", 140 "isPartOf": { 141 "@id": "https://bbni4dabsen.com/#website" 142 }, 143 "about": { 144 "@id": "https://bbni4dabsen.com/#organization" 145 }, 146 "primaryImageOfPage": { 147 "@id": "https://bbni4dabsen.com/#primaryimage" 148 }, 149 "breadcrumb": { 150 "@id": "https://bbni4dabsen.com/#breadcrumb" 151 }, 152 "inLanguage": "id-ID", 153 "datePublished": "2025-11-13T11:00:00+07:00", 154 "dateModified": "2025-11-13T11:00:00+07:00" 155 }, 156 { 157 "@type": "ImageObject", 158 "@id": "https://bbni4dabsen.com/#primaryimage", 159 "url": "https://bbni4dabsen.com/favicon.png", 160 "contentUrl": "https://bbni4dabsen.com/favicon.png", 161 "width": 512, 162 "height": 512, 163 "caption": "BBNI4D - Link Alternatif Resmi" 164 }, 165 { 166 "@type": "BreadcrumbList", 167 "@id": "https://bbni4dabsen.com/#breadcrumb", 168 "itemListElement": [ 169 { 170 "@type": "ListItem", 171 "position": 1, 172 "name": "Home", 173 "item": "https://bbni4dabsen.com/" 174 }, 175 { 176 "@type": "ListItem", 177 "position": 2, 178 "name": "BBNI4D Link Alternatif Resmi", 179 "item": "https://bbni4dabsen.com/" 180 } 181 ] 182 }, 183 { 184 "@type": "Article", 185 "@id": "https://bbni4dabsen.com/#article", 186 "mainEntityOfPage": { 187 "@id": "https://bbni4dabsen.com/#webpage" 188 }, 189 "headline": "BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026", 190 "alternativeHeadline": "BBNI4D Link Alternatif Resmi Mudah Masuk dan Depo Cepat", 191 "description": "BBNi4D menyediakan link alternatif resmi untuk permainan slot online yang mudah diakses kapapun dan dimanapun kamu berada.", 192 "image": [ 193 "https://bbni4dabsen.com/images/upload-MobileSlides-20251008093015.jpg", 194 "https://bbni4dabsen.com/images/upload-MobileSlides-20251008093039.jpg", 195 "https://bbni4dabsen.com/images/upload-MobileSlides-20251008093101.jpg",
196 "https://bbni4dabsen.com/favicon.png" 197 ], 198 "author": { 199 "@type": "Organization", 200 "name": "BBNI4D Official", 201 "url": "https://bbni4dabsen.com/" 202 }, 203 "publisher": { 204 "@id": "https://bbni4dabsen.com/#organization" 205 }, 206 "datePublished": "2025-11-13T11:00:00+07:00", 207 "dateModified": "2025-11-13T11:00:00+07:00", 208 "inLanguage": "id-ID", 209 "keywords": [ 210 "BBNI4D", 211 "BBNI4D login", 212 "BBNI4D link alternatif", 213 "BBNI4D resmi", 214 "link alternatif BBNI4D", 215 "slot online", 216 "depo cepat", 217 "situs mudah masuk 2026" 218 ], 219 "articleSection": [ 220 "Link Alternatif", 221 "Login", 222 "Deposit Cepat", 223 "Customer Service", 224 "Keamanan" 225 ], 226 "about": [ 227 { 228 "@type": "Thing", 229 "name": "BBNI4D" 230 }, 231 { 232 "@type": "Thing", 233 "name": "Link Alternatif" 234 }, 235 { 236 "@type": "Thing", 237 "name": "Slot Online" 238 }, 239 { 240 "@type": "Thing", 241 "name": "Deposit Cepat" 242 } 243 ], 244 "mentions": [ 245 { 246 "@type": "Thing", 247 "name": "Login Mudah" 248 }, 249 { 250 "@type": "Thing", 251 "name": "Server Stabil" 252 }, 253 { 254 "@type": "Thing", 255 "name": "Customer Service 24 Jam" 256 }, 257 { 258 "@type": "Thing", 259 "name": "Transaksi Praktis" 260 } 261 ] 262 }, 263 { 264 "@type": "FAQPage", 265 "@id": "https://bbni4dabsen.com/#faq", 266 "mainEntity": [ 267 { 268 "@type": "Question", 269 "name": "Apa itu BBNI4D?", 270 "acceptedAnswer": { 271 "@type": "Answer", 272 "text": "BBNI4D adalah platform yang menyediakan link alternatif resmi dengan akses cepat, sistem stabil, tampilan modern, dan layanan pelanggan 24 jam." 273 } 274 }, 275 { 276 "@type": "Question", 277 "name": "Apa keunggulan link alternatif BBNI4D?", 278 "acceptedAnswer": { 279 "@type": "Answer", 280 "text": "Link alternatif BBNI4D membantu pengguna tetap dapat mengakses website dengan mudah ketika domain utama mengalami kendala teknis." 281 } 282 }, 283 { 284 "@type": "Question", 285 "name": "Apakah BBNI4D bisa diakses lewat HP?", 286 "acceptedAnswer": { 287 "@type": "Answer", 288 "text": "Ya, BBNI4D dapat diakses melalui Android, iPhone, tablet, laptop, dan komputer dengan tampilan yang responsif." 289 } 290 }, 291 { 292 "@type": "Question", 293 "name": "Apakah layanan pelanggan BBNI4D tersedia 24 jam?",
294 "acceptedAnswer": { 295 "@type": "Answer", 296 "text": "Ya, layanan pelanggan BBNI4D tersedia 24 jam untuk membantu informasi login, link alternatif, transaksi, dan kendala teknis." 297 } 298 }, 299 { 300 "@type": "Question", 301 "name": "Bagaimana cara menggunakan link alternatif BBNI4D dengan aman?", 302 "acceptedAnswer": { 303 "@type": "Answer", 304 "text": "Gunakan link resmi, jangan membagikan data akun, gunakan password kuat, dan pastikan perangkat aman dari virus atau malware." 305 } 306 } 307 ] 308 }, 309 { 310 "@type": "OfferCatalog", 311 "@id": "https://bbni4dabsen.com/#services", 312 "name": "Layanan BBNI4D", 313 "itemListElement": [ 314 { 315 "@type": "Offer", 316 "name": "Link Alternatif Resmi", 317 "description": "Akses resmi BBNI4D yang mudah digunakan dan diperbarui secara berkala." 318 }, 319 { 320 "@type": "Offer", 321 "name": "Login Mudah", 322 "description": "Sistem login praktis dengan tampilan yang responsif di berbagai perangkat." 323 }, 324 { 325 "@type": "Offer", 326 "name": "Deposit Cepat", 327 "description": "Proses transaksi yang praktis dengan konfirmasi lebih cepat." 328 }, 329 { 330 "@type": "Offer", 331 "name": "Customer Service 24 Jam", 332 "description": "Layanan bantuan pengguna tersedia setiap hari selama 24 jam." 333 } 334 ] 335 }, 336 { 337 "@type": "SiteNavigationElement", 338 "@id": "https://bbni4dabsen.com/#navigation", 339 "name": [ 340 "INFO", 341 "POINT", 342 "GROUP", 343 "REPORT", 344 "MESSENGER", 345 "WHATSAPP", 346 "TELEGRAM" 347 ], 348 "url": [ 349 "https://t.ly/rtpbbni4d", 350 "https://bkbmindah.com/bkbmpoint", 351 "https://t.me/bkbmgroupjp/", 352 "https://docs.google.com/forms/d/e/1FAIpQLSdoGqUDrZ88dc7JtyltalKbt-iE4lehMTTwsBJSuMm7PQ5oEA/viewform?usp=sf_link", 353 "https://www.messenger.com/t/789991120859719", 354 "http://wa.me/6287768122325", 355 "https://t.me/vivirealbkb" 356 ] 357 } 358 ] 359} 360<!-- Meta Pixel Code -->
361<script>
vendor: 408 bytes, lines 361-370
361 362!function(f,b,e,v,n,t,s) 363{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 364n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 365if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 366n.queue=[];t=b.createElement(e);t.async=!0; 367t.src=v;s=b.getElementsByTagName(e)[0]; 368s.parentNode.insertBefore(t,s)}(window, document,'script', 369'https://connect.facebook.net/en_US/fbevents.js'); 370fbq('init', '
3701627643512416962
vendor: 32 bytes, lines 370-371
370'); 371fbq('track', 'PageView');
372</script>
372 373<noscript><img height="1" width="1" style="display:none" 374src="https://www.facebook.com/tr?id=1627643512416962&ev=PageView&noscript=1" 375/></noscript> 376<!-- End Meta Pixel Code --> 377 378<!-- Meta Pixel Code -->
379<script>
vendor: 408 bytes, lines 379-388
379 380!function(f,b,e,v,n,t,s) 381{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 382n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 383if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 384n.queue=[];t=b.createElement(e);t.async=!0; 385t.src=v;s=b.getElementsByTagName(e)[0]; 386s.parentNode.insertBefore(t,s)}(window, document,'script', 387'https://connect.facebook.net/en_US/fbevents.js'); 388fbq('init', '
3881098126932587541
vendor: 32 bytes, lines 388-389
388'); 389fbq('track', 'PageView');
390</script>
390 391<noscript><img height="1" width="1" style="display:none" 392src="https://www.facebook.com/tr?id=1098126932587541&ev=PageView&noscript=1" 393/></noscript> 394<!-- End Meta Pixel Code --> 395 396<!-- Meta Pixel Code -->
397<script>
vendor: 408 bytes, lines 397-406
397 398!function(f,b,e,v,n,t,s) 399{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 400n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 401if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 402n.queue=[];t=b.createElement(e);t.async=!0; 403t.src=v;s=b.getElementsByTagName(e)[0]; 404s.parentNode.insertBefore(t,s)}(window, document,'script', 405'https://connect.facebook.net/en_US/fbevents.js'); 406fbq('init', '
4061704980757388455
vendor: 32 bytes, lines 406-407
406'); 407fbq('track', 'PageView');
408</script>
408 409<noscript><img height="1" width="1" style="display:none" 410src="https://www.facebook.com/tr?id=1704980757388455&ev=PageView&noscript=1" 411/></noscript> 412<!-- End Meta Pixel Code --> 413 414<!-- Meta Pixel Code -->
415<script>
vendor: 408 bytes, lines 415-424
415 416!function(f,b,e,v,n,t,s) 417{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 418n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 419if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 420n.queue=[];t=b.createElement(e);t.async=!0; 421t.src=v;s=b.getElementsByTagName(e)[0]; 422s.parentNode.insertBefore(t,s)}(window, document,'script', 423'https://connect.facebook.net/en_US/fbevents.js'); 424fbq('init', '
4241064370259783264
vendor: 32 bytes, lines 424-425
424'); 425fbq('track', 'PageView');
426</script>
426 427<noscript><img height="1" width="1" style="display:none" 428src="https://www.facebook.com/tr?id=1064370259783264&ev=PageView&noscript=1" 429/></noscript> 430<!-- End Meta Pixel Code --> 431 432<!-- Meta Pixel Code -->
433<script>
vendor: 408 bytes, lines 433-442
433 434!function(f,b,e,v,n,t,s) 435{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 436n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 437if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 438n.queue=[];t=b.createElement(e);t.async=!0; 439t.src=v;s=b.getElementsByTagName(e)[0]; 440s.parentNode.insertBefore(t,s)}(window, document,'script', 441'https://connect.facebook.net/en_US/fbevents.js'); 442fbq('init', '
4421429186538682157
vendor: 32 bytes, lines 442-443
442'); 443fbq('track', 'PageView');
444</script>
444 445<noscript><img height="1" width="1" style="display:none" 446src="https://www.facebook.com/tr?id=1429186538682157&ev=PageView&noscript=1" 447/></noscript> 448<!-- End Meta Pixel Code --> 449 450<!-- Meta Pixel Code -->
451<script>
vendor: 408 bytes, lines 451-460
451 452!function(f,b,e,v,n,t,s) 453{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 454n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 455if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 456n.queue=[];t=b.createElement(e);t.async=!0; 457t.src=v;s=b.getElementsByTagName(e)[0]; 458s.parentNode.insertBefore(t,s)}(window, document,'script', 459'https://connect.facebook.net/en_US/fbevents.js'); 460fbq('init', '
4601112048771321103
vendor: 32 bytes, lines 460-461
460'); 461fbq('track', 'PageView');
462</script>
462 463<noscript><img height="1" width="1" style="display:none" 464src="https://www.facebook.com/tr?id=1112048771321103&ev=PageView&noscript=1" 465/></noscript> 466<!-- End Meta Pixel Code --> 467 468<!-- Meta Pixel Code -->
469<script>
vendor: 408 bytes, lines 469-478
469 470!function(f,b,e,v,n,t,s) 471{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 472n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 473if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 474n.queue=[];t=b.createElement(e);t.async=!0; 475t.src=v;s=b.getElementsByTagName(e)[0]; 476s.parentNode.insertBefore(t,s)}(window, document,'script', 477'https://connect.facebook.net/en_US/fbevents.js'); 478fbq('init', '
4781414675310108106
vendor: 32 bytes, lines 478-479
478'); 479fbq('track', 'PageView');
480</script>
480 481<noscript><img height="1" width="1" style="display:none" 482src="https://www.facebook.com/tr?id=1414675310108106&ev=PageView&noscript=1" 483/></noscript> 484<!-- End Meta Pixel Code --> 485 486<!-- Meta Pixel Code -->
487<script>
vendor: 408 bytes, lines 487-496
487 488!function(f,b,e,v,n,t,s) 489{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 490n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 491if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 492n.queue=[];t=b.createElement(e);t.async=!0; 493t.src=v;s=b.getElementsByTagName(e)[0]; 494s.parentNode.insertBefore(t,s)}(window, document,'script', 495'https://connect.facebook.net/en_US/fbevents.js'); 496fbq('init', '
4961803629964302049
vendor: 32 bytes, lines 496-497
496'); 497fbq('track', 'PageView');
498</script>
498 499<noscript><img height="1" width="1" style="display:none" 500src="https://www.facebook.com/tr?id=1803629964302049&ev=PageView&noscript=1" 501/></noscript> 502<!-- End Meta Pixel Code --> 503 504<!-- Meta Pixel Code -->
505<script>
vendor: 408 bytes, lines 505-514
505 506!function(f,b,e,v,n,t,s) 507{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 508n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 509if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 510n.queue=[];t=b.createElement(e);t.async=!0; 511t.src=v;s=b.getElementsByTagName(e)[0]; 512s.parentNode.insertBefore(t,s)}(window, document,'script', 513'https://connect.facebook.net/en_US/fbevents.js'); 514fbq('init', '
5142947375302278881
vendor: 32 bytes, lines 514-515
514'); 515fbq('track', 'PageView');
516</script>
516 517<noscript><img height="1" width="1" style="display:none" 518src="https://www.facebook.com/tr?id=2947375302278881&ev=PageView&noscript=1" 519/></noscript> 520<!-- End Meta Pixel Code --> 521 <link rel="preconnect" href="https://img.viva88athenae.com"> 522 <link rel="preload" href="/fonts/new/ubuntu-normal-400-latin.woff2" as="font" type="font/woff2" crossorigin> 523 <link rel="preload" href="/fonts/new/ubuntu-normal-700-latin.woff2" as="font" type="font/woff2" crossorigin> 524 <link rel="preload" href="/fonts/new/oswald-normal-400-latin.woff2" as="font" type="font/woff2" crossorigin> 525 <link href="/css/new/vendor/bootstrap.min.css?v=1790436337" rel="stylesheet"> 526 <style id="jt-fonts">/* Self-hosted Ubuntu + Oswald (latin / latin-ext), font-display: swap */ 527/* latin-ext */ 528@font-face { 529 font-family: 'Oswald'; 530 font-style: normal; 531 font-weight: 400; 532 font-display: swap; 533 src: url(/fonts/new/oswald-normal-400-latinext.woff2) format('woff2'); 534 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 535} 536/* latin */ 537@font-face { 538 font-family: 'Oswald'; 539 font-style: normal; 540 font-weight: 400; 541 font-display: swap; 542 src: url(/fonts/new/oswald-normal-400-latin.woff2) format('woff2'); 543 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 544} 545/* latin-ext */ 546@font-face { 547 font-family: 'Oswald'; 548 font-style: normal; 549 font-weight: 500; 550 font-display: swap; 551 src: url(/fonts/new/oswald-normal-500-latinext.woff2) format('woff2'); 552 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 553} 554/* latin */ 555@font-face { 556 font-family: 'Oswald'; 557 font-style: normal; 558 font-weight: 500; 559 font-display: swap; 560 src: url(/fonts/new/oswald-normal-500-latin.woff2) format('woff2'); 561 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 562} 563/* latin-ext */ 564@font-face { 565 font-family: 'Oswald'; 566 font-style: normal; 567 font-weight: 600; 568 font-display: swap; 569 src: url(/fonts/new/oswald-normal-600-latinext.woff2) format('woff2'); 570 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 571} 572/* latin */ 573@font-face { 574 font-family: 'Oswald'; 575 font-style: normal; 576 font-weight: 600; 577 font-display: swap; 578 src: url(/fonts/new/oswald-normal-600-latin.woff2) format('woff2'); 579 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 580} 581/* latin-ext */ 582@font-face { 583 font-family: 'Oswald'; 584 font-style: normal; 585 font-weight: 700; 586 font-display: swap; 587 src: url(/fonts/new/oswald-normal-700-latinext.woff2) format('woff2'); 588 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 589} 590/* latin */ 591@font-face { 592 font-family: 'Oswald'; 593 font-style: normal; 594 font-weight: 700; 595 font-display: swap; 596 src: url(/fonts/new/oswald-normal-700-latin.woff2) format('woff2'); 597 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 598} 599/* latin-ext */ 600@font-face { 601 font-family: 'Ubuntu'; 602 font-style: italic; 603 font-weight: 300; 604 font-display: swap; 605 src: url(/fonts/new/ubuntu-italic-300-latinext.woff2) format('woff2'); 606 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
606BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 607} 608/* latin */ 609@font-face { 610 font-family: 'Ubuntu'; 611 font-style: italic; 612 font-weight: 300; 613 font-display: swap; 614 src: url(/fonts/new/ubuntu-italic-300-latin.woff2) format('woff2'); 615 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 616} 617/* latin-ext */ 618@font-face { 619 font-family: 'Ubuntu'; 620 font-style: italic; 621 font-weight: 400; 622 font-display: swap; 623 src: url(/fonts/new/ubuntu-italic-400-latinext.woff2) format('woff2'); 624 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 625} 626/* latin */ 627@font-face { 628 font-family: 'Ubuntu'; 629 font-style: italic; 630 font-weight: 400; 631 font-display: swap; 632 src: url(/fonts/new/ubuntu-italic-400-latin.woff2) format('woff2'); 633 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 634} 635/* latin-ext */ 636@font-face { 637 font-family: 'Ubuntu'; 638 font-style: italic; 639 font-weight: 500; 640 font-display: swap; 641 src: url(/fonts/new/ubuntu-italic-500-latinext.woff2) format('woff2'); 642 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 643} 644/* latin */ 645@font-face { 646 font-family: 'Ubuntu'; 647 font-style: italic; 648 font-weight: 500; 649 font-display: swap; 650 src: url(/fonts/new/ubuntu-italic-500-latin.woff2) format('woff2'); 651 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 652} 653/* latin-ext */ 654@font-face { 655 font-family: 'Ubuntu'; 656 font-style: italic; 657 font-weight: 700; 658 font-display: swap; 659 src: url(/fonts/new/ubuntu-italic-700-latinext.woff2) format('woff2'); 660 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 661} 662/* latin */ 663@font-face { 664 font-family: 'Ubuntu'; 665 font-style: italic; 666 font-weight: 700; 667 font-display: swap; 668 src: url(/fonts/new/ubuntu-italic-700-latin.woff2) format('woff2'); 669 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 670} 671/* latin-ext */ 672@font-face { 673 font-family: 'Ubuntu'; 674 font-style: normal; 675 font-weight: 300; 676 font-display: swap; 677 src: url(/fonts/new/ubuntu-normal-300-latinext.woff2) format('woff2'); 678 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 679} 680/* latin */ 681@font-face { 682 font-family: 'Ubuntu'; 683 font-style: normal; 684 font-weight: 300; 685 font-display: swap; 686 src: url(/fonts/new/ubuntu-normal-300-latin.woff2) format('woff2'); 687 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 688} 689/* latin-ext */ 690@font-face { 691 font-family: 'Ubuntu'; 692 font-style: normal; 693 font-weight: 400; 694 font-display: swap; 695 src: url(/fonts/new/ubuntu-normal-400-latinext.woff2) format('woff2'); 696 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 697} 698/* latin */ 699@font-face { 700 font-family: 'Ubuntu'; 701 font-style: normal; 702 font-weight: 400; 703 font-display: swap; 704 src: url(/fonts/new/ubuntu-normal-400-latin.woff2) format('woff2'); 705 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 706} 707/* latin-ext */ 708@font-face { 709 font-family: 'Ubuntu'; 710 font-style: normal; 711 font-weight: 500; 712 font-display: swap; 713 src: url(/fonts/new/ubuntu-normal-500-latinext.woff2) format('woff2'); 714 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
714BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 715} 716/* latin */ 717@font-face { 718 font-family: 'Ubuntu'; 719 font-style: normal; 720 font-weight: 500; 721 font-display: swap; 722 src: url(/fonts/new/ubuntu-normal-500-latin.woff2) format('woff2'); 723 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 724} 725/* latin-ext */ 726@font-face { 727 font-family: 'Ubuntu'; 728 font-style: normal; 729 font-weight: 700; 730 font-display: swap; 731 src: url(/fonts/new/ubuntu-normal-700-latinext.woff2) format('woff2'); 732 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 733} 734/* latin */ 735@font-face { 736 font-family: 'Ubuntu'; 737 font-style: normal; 738 font-weight: 700; 739 font-display: swap; 740 src: url(/fonts/new/ubuntu-normal-700-latin.woff2) format('woff2'); 741 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 742} 743</style> <style id="jt-theme">/* Theme: ES — ES */ 744:root { 745 /* --- Light theme overrides (auto-generated dari base gelap) --- */ 746 /* --- Accent --- */ 747 --accent-color: #f35925; 748 749 /* --- Text --- */ 750 --primary-text-color: #141414; 751 --secondary-text-color: #2b2b2b; 752 --accent-text-color: #f35925; 753 754 /* --- Teks tambahan --- */ 755 --muted-text-color: #595959; 756 --muted-text-color-secondary: #5c5656; 757 --muted-text-color-tertiary: #6c5147; 758 759 /* --- Background utama --- */ 760 --primary-background-color: #dddddd; 761 --secondary-background-color: #e6e6e6; 762 --ternary-background-color: #d2d2d2; 763 --quaternary-background-color: #dddddd; 764 765 /* --- Background tambahan --- */ 766 --placeholder-bg: #c8c8c8; 767 --overlay-bg: rgba(0,0,0,0.6); 768 --handle-color: rgba(0,0,0,0.2); 769 --table-hover-bg: rgba(243,89,37,0.06); 770 --btn-close-hover-bg: rgba(128,128,128,0.12); 771 --qr-bg: #ffffff; 772 773 /* --- Navbar --- */ 774 --navbar-bg: var(--ternary-background-color); 775 --bottom-navbar-bg: var(--ternary-background-color); 776 777 /* --- Navbar text --- */ 778 --navbar-text-color: #141414; 779 --bottom-navbar-text-color: #141414; 780 781 /* --- Header & Home elemen (terpisah dari primary/secondary/accent-text) --- */ 782 --topbar-link-color: var(--primary-text-color); 783 --section-title-color: var(--primary-text-color); 784 --togel-market-name-color: #ffffff; 785 --balance-text-color: var(--secondary-text-color); 786 --nav-active-color: var(--accent-text-color); 787 --marquee-date-color: var(--accent-text-color); 788 --username-text-color: var(--secondary-text-color); 789 --marquee-text-color: var(--secondary-text-color); 790 791 /* --- Menu / Marquee / Search --- */ 792 --menu-box-bg: rgba(243,89,37,0.06); 793 --marquee-bg: #e6e6e6; 794 --search-bg: #d2d2d2; 795 796 /* --- Widget profile gradient --- */ 797 --widget-profile-bg-start: #d2d2d2; 798 --widget-profile-bg-end: #e6e6e6; 799 800 /* --- Tombol Deposit (gradient) --- */ 801 --btn-deposit-color-start: #d94a1a; 802 --btn-deposit-color-mid: #ff7a42; 803 --btn-deposit-color-end: #d94a1a; 804 --btn-deposit-text: #ffffff; 805 806 /* --- Tombol Withdraw (gradient) --- */ 807 --btn-withdraw-color-start: #e6e6e6; 808 --btn-withdraw-color-end: #d2d2d2; 809 --btn-withdraw-text: #141414; 810 811 /* --- Tab aktif & tabel rekening (terpisah dari accent utama) --- */ 812 --tx-tab-active-color: var(--accent-color); 813 --tx-table-accent-color: var(--accent-text-color); 814
815 /* --- Table stripe & input placeholder (terpisah, dikalibrasi thd bg literal) --- */ 816 --table-stripe-odd-bg: var(--primary-background-color); 817 --table-stripe-even-bg: var(--secondary-background-color); 818 --input-placeholder-color: #6b7280; 819 820 /* --- CMS sidebar nav item (state tidak-aktif/hover/aktif, terpisah dari muted-text-color umum) --- */ 821 --cms-nav-color: var(--muted-text-color); 822 --cms-nav-hover-color: var(--secondary-text-color); 823 --cms-nav-active-color: var(--primary-text-color); 824 825 /* --- History table --- */ 826 --color-tanggal: #c91612; 827 --color-pasaran: #0967b3; 828 --color-debit: #c91612; 829 --color-kredit: #327135; 830 --color-balance: #0967b3; 831 832 /* --- Component backgrounds --- */ 833 --btn-menu-bg: var(--ternary-background-color); 834 --card-bg: var(--ternary-background-color); 835 --avatar-bg: var(--ternary-background-color); 836 --table-header-bg: var(--ternary-background-color); 837 --dropdown-bg: var(--secondary-background-color); 838 --sidebar-bg: var(--secondary-background-color); 839 --input-bg: var(--secondary-background-color); 840 --menu-box-border-color: rgba(243,89,37,0.14); 841 --breadcrumb-color: var(--accent-color); 842 --alert-danger-bg: #ee5f5b; 843 844 /* --- Accent alpha (untuk hover/active) --- */ 845 --accent-bg-subtle: rgba(243,89,37,0.10); 846 --accent-bg-active: rgba(243,89,37,0.12); 847 --accent-border-subtle: rgba(243,89,37,0.32); 848 849 /* --- Skeleton shimmer --- */ 850 --skeleton-color-base: var(--ternary-background-color); 851 --skeleton-color-shine: #c8c8c8; 852 853 /* --- Card togel pasaran (home) --- */ 854 --togel-card-bg: #1b6d79; 855 --togel-card-number-color: #ffffff; 856 857 /* --- Splide pagination --- */ 858 --splide-pagination-inactive: #a8b2bd; 859 860 /* --- Border --- */ 861 --border-color: rgba(0,0,0,0.08); 862 --border-subtle-color: rgba(0,0,0,0.04); 863 864 /* --- Font & Radius --- */ 865 --font-body: "Ubuntu", sans-serif; 866 --radius-sm: 6px; 867 --radius-md: 8px; 868 --radius-lg: 10px; 869 --radius-xl: 12px; 870 --radius-pill: 999px; 871 872 /* --- Font sizes --- */ 873 --fs-xs: 10px; 874 --fs-sm: 11px; 875 --fs-md: 12px; 876 --fs-base: 13px; 877 --fs-lg: 14px; 878 --fs-xl: 15px; 879 --fs-2xl: 16px; 880 --fs-3xl: 18px; 881} 882 883:root[data-theme="dark"] { 884 /* --- Accent --- */ 885 --accent-color: #f15a23; 886 887 /* --- Text --- */ 888 --primary-text-color: #ffffff; 889 --secondary-text-color: #d4d4d4; 890 --accent-text-color: #f47e53; 891 892 /* --- Teks tambahan --- */ 893 --muted-text-color: #888888; 894 --muted-text-color-secondary: #2b2626; 895 --muted-text-color-tertiary: #b5674a; 896 897 /* --- Background utama --- */ 898 --primary-background-color: #24150f; 899 --secondary-background-color: #1c0d08; 900 --ternary-background-color: #2e1b15; 901 --quaternary-background-color: #24150f; 902 903 /* --- Background tambahan --- */ 904 --placeholder-bg: #3e261e; 905 --overlay-bg: rgba(0,0,0,0.6); 906 --handle-color: rgba(255,255,255,0.2); 907 --table-hover-bg: rgba(241,90,35,0.05); 908 --btn-close-hover-bg: rgba(128,128,128,0.12); 909 --qr-bg: #ffffff; 910 911 /* --- Navbar --- */ 912 --navbar-bg: var(--ternary-background-color); 913 --bottom-navbar-bg: var(--ternary-background-color); 914 915 /* --- Navbar text --- */ 916 --navbar-text-color: #ffffff; 917 --bottom-navbar-text-color: #ffffff; 918 919 /* --- Header & Home elemen (terpisah dari primary/secondary/
919accent-text) --- */ 920 --topbar-link-color: var(--primary-text-color); 921 --section-title-color: var(--primary-text-color); 922 --togel-market-name-color: var(--primary-text-color); 923 --balance-text-color: var(--secondary-text-color); 924 --nav-active-color: var(--accent-text-color); 925 --marquee-date-color: var(--accent-text-color); 926 --username-text-color: var(--secondary-text-color); 927 --marquee-text-color: var(--secondary-text-color); 928 929 /* --- Menu / Marquee / Search --- */ 930 --menu-box-bg: rgba(241,90,35,0.05); 931 --marquee-bg: #1c0d08; 932 --search-bg: #2e1b15; 933 934 /* --- Widget profile gradient --- */ 935 --widget-profile-bg-start: #3f261c; 936 --widget-profile-bg-end: #1c0d08; 937 938 /* --- Tombol Deposit (gradient) --- */ 939 --btn-deposit-color-start: #f15a23; 940 --btn-deposit-color-mid: #f37040; 941 --btn-deposit-color-end: #f15a23; 942 --btn-deposit-text: #ffffff; 943 944 /* --- Tombol Withdraw (gradient) --- */ 945 --btn-withdraw-color-start: #1c0d08; 946 --btn-withdraw-color-end: #2e1b15; 947 --btn-withdraw-text: #ffffff; 948 949 /* --- Tab aktif & tabel rekening (terpisah dari accent utama) --- */ 950 --tx-tab-active-color: var(--accent-color); 951 --tx-table-accent-color: var(--accent-text-color); 952 953 /* --- Table stripe & input placeholder (terpisah, dikalibrasi thd bg literal) --- */ 954 --table-stripe-odd-bg: var(--primary-background-color); 955 --table-stripe-even-bg: var(--secondary-background-color); 956 --input-placeholder-color: #6b7280; 957 958 /* --- CMS sidebar nav item (state tidak-aktif/hover/aktif, terpisah dari muted-text-color umum) --- */ 959 --cms-nav-color: var(--muted-text-color); 960 --cms-nav-hover-color: var(--secondary-text-color); 961 --cms-nav-active-color: var(--primary-text-color); 962 963 /* --- History table --- */ 964 --color-tanggal: #ef5350; 965 --color-pasaran: #42a5f5; 966 --color-debit: #ef5350; 967 --color-kredit: #66bb6a; 968 --color-balance: #42a5f5; 969 970 /* --- Component backgrounds --- */ 971 --btn-menu-bg: var(--ternary-background-color); 972 --card-bg: var(--ternary-background-color); 973 --avatar-bg: var(--ternary-background-color); 974 --table-header-bg: var(--ternary-background-color); 975 --dropdown-bg: var(--secondary-background-color); 976 --sidebar-bg: var(--secondary-background-color); 977 --input-bg: var(--secondary-background-color); 978 --menu-box-border-color: rgba(241,90,35,0.12); 979 --breadcrumb-color: var(--accent-color); 980 --alert-danger-bg: #ee5f5b; 981 982 /* --- Accent alpha (untuk hover/active) --- */ 983 --accent-bg-subtle: rgba(241,90,35,0.10); 984 --accent-bg-active: rgba(241,90,35,0.12); 985 --accent-border-subtle: rgba(241,90,35,0.32); 986 987 /* --- Skeleton shimmer --- */ 988 --skeleton-color-base: var(--ternary-background-color); 989 --skeleton-color-shine: #3e261e; 990 991 /* --- Card togel pasaran (home) --- */ 992 --togel-card-bg: var(--secondary-background-color); 993 --togel-card-number-color: var(--primary-text-color); 994 995 /* --- Splide pagination --- */ 996 --splide-pagination-inactive: #dee2e6; 997 998 /* --- Border --- */ 999 --border-color: rgba(255,255,255,0.08); 1000 --border-subtle-color: rgba(255,255,255,0.04); 1001 1002 /* --- Font & Radius --- */ 1003 --font-body: "Ubuntu", sans-serif; 1004 --radius-sm: 6px; 1005 --radius-md: 8px; 1006 --radius-lg: 10px; 1007 --radius-xl: 12px; 1008 --radius-pill: 999px; 1009 1010 /* --- Font sizes --- */ 1011 --fs-xs: 10px; 1012 --fs-sm: 11px; 1013 --fs-md: 12px; 1014 --fs-base: 13px; 1015 --fs-lg: 14px; 1016 --fs-xl: 15px; 1017 --fs-2xl: 16px; 1018 --fs-3xl: 18px; 1019} 1020 1021/* History table column colors */ 1022.history-table .col-tanggal { white-space: nowrap; color: var(--color-tanggal); } 1023.history-table .col-pasaran { color: var(--color-pasaran); } 1024.history-table .col-betid { font-size: var(--fs-xs); word-break: break-all; color: var(--accent-text-color); } 1025.history-table .col-deskripsi { color: var(--primary-text-color); } 1026.history-table .col-balance { white-space: nowrap; color: var(--color-balance); } 1027</style> <link rel="stylesheet" href="/css/new/layout.min.css?v=1790436337"> 1028 <link rel="stylesheet" href="/css/new/logo.css?v=1790436337"> 1029 <style>.splide__list{display:flex;margin:0!important;padding:0!important}.splide__track{overflow:hidden;position:relative}</style> 1030 1031 <link id="css-home-sections" rel="stylesheet" href="/css/new/home-sections.min.css?v=1790436337" media="print" onload="this.media='all'"> 1032 1033 <link id="css-bootstrap-icons" rel="stylesheet" href="/css/new/vendor/bootstrap-icons.min.css?v=1790436337" media="print" onload="this.media='all'"> 1034 <link id="css-splide" rel="stylesheet" href="/css/new/vendor/splide.min.css?v=1790436337" media="print" onload="this.media='all'"> 1035 <noscript> 1036 <link rel="stylesheet" href="/css/new/home-sections.min.css?v=1790436337"> 1037 <link rel="stylesheet" href="/css/new/vendor/bootstrap-icons.min.css?v=1790436337"> 1038 <link rel="stylesheet" href="/css/new/vendor/splide.min.css?v=1790436337"> 1039 <link rel="stylesheet" href="/css/new/game.min.css?v=1790436337"> 1040 </noscript> 1041 1042 <style> 1043 @media (max-width: 768px) { 1044 .driver-popover { max-width: 220px !important; font-size: 12px !important; padding: 10px 12px !important; } 1045 .driver-popover-title { font-size: 13px !important; margin-bottom: 4px !important; } 1046 .driver-popover-description { font-size: 12px !important; } 1047 } 1048 </style> 1049 1050 <style> 1051 a { 1052 color: inherit; /* blue colors for links too */ 1053 text-decoration: inherit; /* no underline */ 1054 } 1055 1056 .desktop-only { 1057 display: block!important; 1058 } 1059 1060 .mobile-only { 1061 display: none !important; 1062 } 1063 1064 .btn { 1065 height: 30px; 1066 border-radius: 3px; 1067 } 1068 1069 .login-field { 1070 width: 104px; 1071 height: 30px; 1072 border-radius: 3px; 1073 } 1074 1075 .login-input-field { 1076 margin: 0px; 1077 padding: 0px 8px; 1078 border-radius: 3px !important; 1079 } 1080 1081 .section>.home-view { 1082 padding: 0px; 1083 } 1084 1085 @media only screen and (max-width: 1000px) { 1086 1087 .desktop-only { 1088 display: none!important; 1089 } 1090 1091 .mobile-only { 1092 display: block!important; 1093 } 1094 1095 .login-form { 1096 padding: 32px 0; 1097 margin: 0px 64px; 1098 display: flex; 1099 flex-direction: column; 1100 } 1101 1102 .login-field, .login-form>button, .btn-promosi { 1103 height: 36px; 1104 width: 100% !important; 1105 border-radius: 8px; 1106 overflow: hidden; 1107 } 1108 1109 .login-input-field { 1110 border-top-left-radius: 0 !important; 1111 border-bottom-left-radius: 0 !important; 1112 font-size: 1rem; 1113 } 1114 1115 .section { 1116 padding: 0px 8px!important; 1117 } 1118 } 1119 1120 .grecaptcha-badge { 1121 display: none !important; 1122 } 1123 </style> 1124 1125 1126</head> 1127 <body> 1128
1128<script src="/js/new/vendor/jquery.min.js?v=1790436337"></script>
1128 1129
1129<script> 1130 window.JT_CSRF_TOKEN = 'ba6a559108c448962a9acfeb6f9b1395d53b77877bdc8570dd6f929742028838'; 1131 window.JT_NEED_RECAPTCHA_REGISTER = false; 1132 window.JT_NEED_RECAPTCHA_LOGIN = false; 1133 window.JT_NEED_RECAPTCHA = false; 1134 window.JT_RECAPTCHA_SITE_KEY = '6Leu4cosAAAAABe-B_1-oryumOl99wsUEEFN3z8A'; 1135 window.JT_NEED_TURNSTILE_REGISTER = false; 1136 window.JT_NEED_TURNSTILE_LOGIN = false; 1137 window.JT_NEED_TURNSTILE = false; 1138 window.JT_NEED_IFRAME_CAPTCHA = false; 1139 window.JT_CAPTCHA_LOGIN_MODE = '1'; 1140 window.JT_CAPTCHA_REGISTER_MODE = '1'; 1141 1142 $.ajaxSetup({ 1143 beforeSend: function (xhr, settings) { 1144 if (settings.type === 'POST' && !settings.crossDomain) { 1145 xhr.setRequestHeader('X-CSRF-Token', window.JT_CSRF_TOKEN || ''); 1146 } 1147 } 1148 }); 1149 1150 var _recaptchaLoader = null; 1151 function jtLoadRecaptcha() { 1152 if (!window.JT_NEED_RECAPTCHA) return Promise.resolve(); 1153 if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise) return Promise.resolve(); 1154 if (_recaptchaLoader) return _recaptchaLoader; 1155 _recaptchaLoader = new Promise(function (resolve, reject) { 1156 var s = document.createElement('script'); 1157 s.src = 'https://www.google.com/recaptcha/enterprise.js?render=' + encodeURIComponent(window.JT_RECAPTCHA_SITE_KEY); 1158 s.async = true; 1159 s.onload = function () { resolve(); }; 1160 s.onerror = function () { _recaptchaLoader = null; reject(new Error('recaptcha load failed')); }; 1161 document.head.appendChild(s); 1162 }); 1163 return _recaptchaLoader; 1164 } 1165 1166 1167 function jtWarmAuthScripts() { 1168 if (window.JT_NEED_RECAPTCHA) jtLoadRecaptcha().catch(function () {}); 1169 if (window.JT_NEED_TURNSTILE && typeof window.turnst === 'function') { 1170 window.turnst('').catch(function () {}); 1171 } 1172 } 1173 1174 $(document).on( 1175 'focusin', 1176 '#desktoplogin input, #mobilelogin input, #formRegister input, #formRegister select, #desktopregister input, #mobileregister input', 1177 jtWarmAuthScripts 1178 ); 1179 $(document).on( 1180 'click', 1181 '.btn-daftar, [onclick*="register"], a[href*="register"]', 1182 jtWarmAuthScripts 1183 ); 1184 1185 function jtNeedRecaptchaRegister($form) { 1186 var isRecaptchaRegister = String($form.find('input[name="isrecaptcharegister"]').val() || ''); 1187 return window.JT_NEED_RECAPTCHA_REGISTER === true || isRecaptchaRegister === '1'; 1188 } 1189 1190 function jtNeedRecaptchaLogin($form) { 1191 var isRecaptchaLogin = String($form.find('input[name="isrecaptchalogin"]').val() || ''); 1192 return window.JT_NEED_RECAPTCHA_LOGIN === true || isRecaptchaLogin === '1'; 1193 } 1194 1195 function jtWithRecaptchaToken($form, $status, action, shouldRun, onReady, failCls, onFail, tokenField) { 1196 if (!shouldRun) { 1197 onReady(); 1198 return; 1199 } 1200 var fieldName = tokenField || 'recaptcha_token'; 1201 var warnCls = (failCls === undefined) ? 'alert alert-sm alert-warning' : failCls; 1202 function showFail(msg) { 1203 if (warnCls) { 1204 $status.removeClass().addClass(warnCls).text(msg).fadeIn(1000); 1205 } else { 1206 $status.removeClass().text(msg).fadeIn(1000); 1207 } 1208 if (typeof onFail === 'function') { 1209 onFail(); 1210 } 1211 } 1212 jtLoadRecaptcha().then(function () { 1213 if (typeof grecaptcha === 'undefined' || !grecaptcha.enterprise) { 1214 showFail('Verifikasi gagal dimuat, refresh halaman'); 1215 return; 1216 } 1217 grecaptcha.enterprise.ready(function () { 1218 grecaptcha.enterprise.execute(window.JT_RECAPTCHA_SITE_KEY, { action: action }) 1219 .then(function (token) { 1220 jtSetHidden($form, fieldName, token); 1221 onReady(); 1222 }) 1223 .catch(function () { 1224 showFail('Verifikasi gagal, coba lagi'); 1225 }); 1226 }); 1227 }).catch(function () { 1228 showFail('Verifikasi gagal dimuat, refresh halaman'); 1229 }); 1230 } 1231 1232 function jtWithRecaptchaRegisterToken($form, $status, onReady) { 1233 jtWithRecaptchaToken($form, $status, 'register', jtNeedRecaptchaRegister($form), onReady, undefined, undefined, 'recaptcha_register_token'); 1234 } 1235 1236 function jtWithRecaptchaLoginToken($form, $status, onReady, onF
1236ail) { 1237 jtWithRecaptchaToken($form, $status, 'login', jtNeedRecaptchaLogin($form), onReady, '', onFail, 'recaptcha_login_token'); 1238 } 1239 1240 function jtSetHidden($form, name, value) { 1241 var $el = $form.find('input[name="' + name + '"]'); 1242 if ($el.length === 0) { 1243 $form.append('<input type="hidden" name="' + name + '" value="">'); 1244 $el = $form.find('input[name="' + name + '"]'); 1245 } 1246 $el.val(value); 1247 } 1248 1249 function jtWithTurnstileAction($form, actionName, needFlag, onReady) { 1250 if (!needFlag || typeof window.turnst !== 'function') { 1251 onReady(); 1252 return; 1253 } 1254 window.turnst(actionName).then(function (fpResult) { 1255 jtSetHidden($form, 'fp_event_id', (fpResult && fpResult.eventId) || ''); 1256 jtSetHidden($form, 'fp_visitor_id', (fpResult && fpResult.visitorId) || ''); 1257 onReady(); 1258 }).catch(function () { 1259 jtSetHidden($form, 'fp_event_id', ''); 1260 jtSetHidden($form, 'fp_visitor_id', ''); 1261 onReady(); 1262 }); 1263 } 1264 1265 function jtWithTurnstileRegister($form, onReady) { 1266 jtWithTurnstileAction($form, 'account_create', window.JT_NEED_TURNSTILE_REGISTER, onReady); 1267 } 1268 1269 function jtWithTurnstileLogin($form, onReady) { 1270 jtWithTurnstileAction($form, 'account_login', window.JT_NEED_TURNSTILE_LOGIN, onReady); 1271 } 1272 1273 var _jtIframePending = null; 1274 1275 function jtShowIframeCaptcha(isMobile, onReady, onCancelMsg) { 1276 if (!window.JT_NEED_IFRAME_CAPTCHA) { 1277 onReady(); 1278 return; 1279 } 1280 var modalId = isMobile ? '#captchaModalMobile' : '#captchaModalDesktop'; 1281 var $modal = $(modalId); 1282 if ($modal.length === 0) { 1283 onReady(); 1284 return; 1285 } 1286 _jtIframePending = { 1287 isMobile: !!isMobile, 1288 onReady: onReady, 1289 onCancelMsg: onCancelMsg || null 1290 }; 1291 $modal.css('display', 'flex'); 1292 } 1293 1294 function jtWithIframeCaptchaLogin($form, isMobile, onReady, onCancelMsg) { 1295 var mode = String($form.find('input[name="iscaptchalogin"]').val() || window.JT_CAPTCHA_LOGIN_MODE || '1'); 1296 if (mode !== '2') { 1297 onReady(); 1298 return; 1299 } 1300 jtShowIframeCaptcha(isMobile, function (token, key) { 1301 jtSetHidden($form, 'token', token || ''); 1302 jtSetHidden($form, 'key', key || ''); 1303 onReady(); 1304 }, onCancelMsg); 1305 } 1306 1307 function jtWithIframeCaptchaRegister($form, isMobile, onReady, onCancelMsg) { 1308 var mode = String($form.find('input[name="iscaptcharegister"]').val() || window.JT_CAPTCHA_REGISTER_MODE || '1'); 1309 if (mode !== '2') { 1310 onReady(); 1311 return; 1312 } 1313 jtShowIframeCaptcha(isMobile, function (token, key) { 1314 jtSetHidden($form, 'token', token || ''); 1315 jtSetHidden($form, 'key', key || ''); 1316 onReady(); 1317 }, onCancelMsg); 1318 } 1319 1320 window.addEventListener('message', function (e) { 1321 if (e.origin !== 'https://recaptcha.viva88athenae.com') { 1322 return; 1323 } 1324 if (!_jtIframePending) { 1325 return; 1326 } 1327 var pending = _jtIframePending; 1328 _jtIframePending = null; 1329 1330 var dataCaptcha = e.data || {}; 1331 var $modal = pending.isMobile ? $('#captchaModalMobile') : $('#captchaModalDesktop'); 1332 $modal.css('display', 'none'); 1333 1334 if (dataCaptcha.verified !== true) { 1335 if (typeof pending.onCancelMsg === 'function') { 1336 pending.onCancelMsg('Verifikasi Kosong'); 1337 } 1338 return; 1339 } 1340 1341 if (typeof pending.onReady === 'function') { 1342 pending.onReady(dataCaptcha.token || '', dataCaptcha.key || ''); 1343 } 1344 }); 1345 </script>
1345 1346 1347 1348<style> 1349 .btn-tele { 1350 text-shadow: 1px 1px #000000; 1351 height: 36px!important; 1352 border-radius: 8px; 1353 background: #28323C; 1354 color: white; 1355 } 1356</style> 1357 1358 1359<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasExampleLabel" style="width: 50%; background: var(--primary-background-color); color: var(--primary-text-color); z-index: 99999"> 1360 <div class="offcanvas-header py-3 d-flex justify-content-between"> 1361 <h5 class="offcanvas-title" id="offcanvasExampleLabel" style="color: var(--menu-item-color); font-size: 1.2rem; font-weight: bold">Kontak Kami</h5> 1362 <button type="button" class="text-reset" style="background: transparent; border: none" data-bs-dismiss="offcanvas" aria-label="Close"><i class="bi bi-x" style="color: var(--primary-text-color); font-size: 20px"></i></button> 1363 </div> 1364 <div class="offcanvas-body p-0 px-2"> 1365 <div class="d-flex flex-column w-100 gap-2"> 1366 1367 1368 1369 <a href="https://t.me/OFFICIALBBNI4D" target='_blank' class="d-flex p-3 w-100 gap-3 rounded" style="background: var(--menu-box-bg, transparent); border: 1px solid var(--menu-box-border-color, rgba(255, 255, 255, 0.06));"> 1370 <div class="fw-bold"><img src="https://img.viva88athenae.com/kontak/telegram.png" width="18" height="18" alt=""></div> 1371 <div style="color: var(--primary-text-color);">CUSTOMER SERVICE CHAT 24JAM</div> 1372 </a> 1373 1374 1375 1376 1377 1378 </div> 1379 1380 </div> 1381</div> 1382 1383 1384 <style> 1385 1386 #mySidenav { 1387 position: fixed; 1388 top: 180px; 1389 right: 100px; 1390 z-index: 999; 1391} 1392 1393#mySidenav div#nav:hover { 1394 left: -138px; 1395} 1396 1397#mySidenav div#nav { 1398 position: absolute; 1399 font-size: 20px; 1400 border-radius: 0 5px 5px 0; 1401 left: 36px; 1402 transition: 0.3s; 1403 display: flex; 1404} 1405 1406#kontak-content { 1407 width: 190px; 1408 padding: 5px 10px 8px 10px; 1409 font-size: 15px; 1410 background-color: #FFF; 1411 color: #000; 1412} 1413 1414</style> 1415 1416 <!-- SIDENAV --> 1417 <div id="mySidenav" class="sidenav desktop-only"> 1418 <div id="nav"> 1419 <div style="display: flex; align-items: start;"> 1420 <div style="height: 246px; width: 64px; background: var(--accent-color); border-radius: 8px 0px 0px 8px; overflow: hidden; box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;"> 1421 1422 <img src="https://img.viva88athenae.com//new/assets/hubungi.png?2" alt="Hubungi Kami"> 1423 1424 </div> 1425 <!--<img id="about" src="/images/kontak.png?4">--> 1426 </div> 1427 <div class="ptsans" style="font-size: 1rem; background: white; border-radius: 0px 5px 5px 5px; overflow: hidden; width: 160px"> 1428 <div id="" style="padding: 4px"> 1429 <img src="/assets/24h.png" style="width: 100%" alt="Layanan 24 Jam"> 1430 </div> 1431 1432 <div id="kontak-content" style="display: flex; flex-direction: column; width: 100%; font-size: .8rem"> 1433 <div style="display: grid; place-items: center; font-weight: bold; font-size: 1rem">MEMBER SERVICE</div> 1434 1435 1436 1437 <a href="https://t.me/OFFICIALBBNI4D" target='_blank' style="padding: 4px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #e0e0e0"> 1438 <img src="https://img.viva88athenae.com/kontak/telegram.png" width="20" height="20" alt=""><span>CUSTOMER SERVICE CHAT 24JAM</span> 1439 </a> 1440 1441 1442 1443 1444 1445 </div> 1446 <div style="margin: 8px"> 1447 <a href="/register"><input type="button" value="DAFTAR SEKARANG" style="width: 100%; border-radius: 5px; font-size: .875rem!important; height: 40px; border: none; font-weight: bold; background: black; color: white"></a> 1448 </div> 1449 </div> 1450 </div> 1451 </div> 1452 1453 1454 1455 1456 <div class="d-none d-md-block px-2"> 1457 1458 1459 <div class="section desktop-topbar d-flex align-items-center justify-content-between"> 1460 <div class="d-flex align-items-center gap-4"> 1461 1462 </div> 1463 1464 1465 <!-- Desktop Login Start --> 1466 1467 <style> 1468 1469 .login-form { 1470 display: flex; 1471 align-items: center; 1472 justify-content: end; 1473 gap: 4px; 1474 } 1475 1476 .btn-masuk { 1477 background: linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49) !important; 1478 color: white; 1479 } 1480 1481 .btn-daftar { 1482 background: linear-gradient(#74cae3, #5bc0de 60%, #4ab9db); !important; 1483 color: white; 1484 } 1485 1486 .btn-google { 1487 width: 30px; 1488 height: 30px; 1489 background: #fff; 1490 border: 1px solid #ddd; 1491 border-radius: 3px; 1492 display: inline-flex; 1493 align-items: center; 1494 justify-content: center; 1495 } 1496 1497 .btn-google:hover { 1498 background: #f5f5f5; 1499 } 1500 1501 .btn-google-mobile { 1502 background: #fff; 1503 color: #3c4043; 1504 border: 1px solid #dadce0; 1505 border-radius: 3px; 1506 height: 36px; 1507 padding: 0 12px; 1508 font-weight: 600; 1509 font-size: 1.2rem; 1510 display: flex; 1511 align-items: center; 1512 justify-content: center; 1513 gap: 8px; 1514 } 1515 1516 .btn-google-mobile:hover { 1517 background: #f8f9fa; 1518 color: #202124; 1519 } 1520 1521 </style> 1522 1523 <div class="d-flex align-items-center gap-2"> 1524 <div id="desktoplogin" class="desktop-only"> 1525 <form class="login-form form" role="form"> 1526 <div id="msgbox" style="margin-right: 8px; color: #b29459; font-size: 1rem; white-space:nowrap;"></div> 1527 <div class="input-group login-field">
1528 <span class="input-group-text prepend mobile-only "><div class="h-100 center"><i class="bi bi-person-circle prepend-icon"></i></div></span> 1529 <input type="text" name="username" class="form-control login-input-field username" placeholder="Nama Akun" aria-label="Username"> 1530 </div> 1531 1532 1533 1534 <div class="input-group login-field"> 1535 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-shield-lock-fill prepend-icon"></i></div></span> 1536 <input type="password" name="password" class="form-control login-input-field password" placeholder="Kata Sandi" aria-label="Password"> 1537 </div> 1538 1539 <!-- captcha --> 1540 1541 <div class="verifikasiform" style=""> 1542 <div style="display: flex; gap: 2px;"> 1543 <span id="verifikasi"><img src="/capimg.php" width="40" height="30" style="border:1px #999 solid;" alt="Kode verifikasi"></span> 1544 <input type="text" class="form-control login-field" name="verifikasi" id="verform" style="width:40px;height: 30px !important" autocomplete="off" aria-label="Kode verifikasi"> 1545 </div> 1546 1547 </div> 1548 <input type="hidden" name="verif" id="verifval" class="verifval" value="1"> 1549 1550 <!-- end captcha --> 1551 1552 1553 <!--<button value="Masuk" class="btn btn-masuk fw-bold p-0 px-2 submit">Masuk</button>--> 1554 <button type="button" class="btn btn-masuk fw-bold p-0 px-2 submit d-flex justify-content-center align-items-center">Masuk</button> 1555 <button type="button" class="btn btn-daftar btn-daftar-desktop fw-bold p-0 px-2 desktop-only" onclick="openRegister('desktop')">Daftar</button> 1556 1557 <input type="hidden" name="task" value="login"> 1558 <input type="hidden" name="iscaptchalogin" value="1"> 1559 <input type="hidden" name="isrecaptchalogin" value="0"> 1560 <input type="hidden" name="recaptcha_login_token" value=""> 1561 <input type="hidden" name="fp_event_id" value=""> 1562 <input type="hidden" name="fp_visitor_id" value=""> 1563 <input type="hidden" name="logindesktop" value="++xallHkXxsruE8sljIIM8eJRvgRmYEi8zhEvgVzcjY="> 1564 </form> 1565 1566 1567
1567<script> 1568 function jtRandomString(length) { 1569 var result = ''; 1570 var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 1571 1572 for (var i = 0; i < length; i++) { 1573 result += characters.charAt(Math.floor(Math.random() * characters.length)); 1574 } 1575 1576 return result; 1577 } 1578 1579 function jtGetCaptchaHtml(captchaPath, captchaStyle) { 1580 var r = Math.floor(Math.random() * 10000); 1581 return '<img src="' + captchaPath + '?' + r + '" ' + captchaStyle + ' alt="Kode verifikasi">'; 1582 } 1583 1584 function jtHandleLoginResponse(res, $root, verHtml) { 1585 var $msg = $root.find('#msgbox'); 1586 1587 var code = res && res.error && res.error.code; 1588 var msg = res && res.error && res.error.message; 1589 var data = (res && res.data) || {}; 1590 1591 if (code === 200 && msg === 'success') { 1592 toast('Login berhasil', 200); 1593 $msg.removeClass().text('Logging in').fadeTo(900, 1, function() { 1594 window.location = '/home'; 1595 }); 1596 return; 1597 } 1598 1599 if (code === 429 || msg === 'ratelimit') { 1600 $msg.removeClass().text('Terlalu banyak percobaan.').fadeIn(1000); 1601 } else if (msg === 'wrong') { 1602 $msg.removeClass().text('Salah Password').fadeIn(1000); 1603 $root.find('#verifikasi').html(verHtml); 1604 } else if (msg === 'banned') { 1605 $msg.removeClass().text('User di Banned').fadeIn(1000); 1606 $root.find('#verifikasi').html(verHtml); 1607 } else if (msg === 'empty') { 1608 $msg.removeClass().text('Silakan diisi').fadeIn(1000); 1609 } else if (msg === 'capempty') { 1610 $msg.removeClass().text('Verifikasi Kosong').fadeIn(1000); 1611 $root.find('#verifikasi').html(verHtml); 1612 } else if (msg === 'caperror') { 1613 $msg.removeClass().text('Verifikasi Salah').fadeIn(1000); 1614 $root.find('#verifikasi').html(verHtml); 1615 } else if (msg === 'recaperror') { 1616 $msg.removeClass().text('Recaptcha salah, coba lagi').fadeIn(1000); 1617 } else if (msg === 'iperror') { 1618 $msg.removeClass().text('IP Tidak Sesuai').fadeIn(1000); 1619 $root.find('#verifikasi').html(verHtml); 1620 } else if (msg === 'capexp') { 1621 $msg.removeClass().text('Captcha Expired').fadeIn(1000); 1622 $root.find('#verifikasi').html(verHtml); 1623 } else if (msg === 'cap') { 1624 $msg.removeClass().text('Isi Verifikasi').fadeIn(1000); 1625 $root.find('#verifikasi').html(verHtml); 1626 $root.find('.verifikasiform, #mverifikasiform').show(); 1627 $root.find('.verifval').val('1'); 1628 } else if (msg === 'turnnoevent') { 1629 window.location.reload(); 1630 } else if (msg === 'turnblock') { 1631 $msg.removeClass().text('Insecure Device').fadeIn(1000); 1632 } else { 1633 $msg.removeClass().text('Login gagal, coba lagi').fadeIn(1000); 1634 $root.find('#verifikasi').html(verHtml); 1635 } 1636 } 1637 1638 function jtSubmitLogin(rootSel, captchaPath, captchaStyle) { 1639 var $root = $(rootSel); 1640 var $form = $root.find('form.form'); 1641 1642 if ($form.length === 0) { 1643 $form = $root.find('.form'); 1644 } 1645 1646 if ($form.length === 0) { 1647 console.error('Login form not found:', rootSel); 1648 return false;
1649 } 1650 1651 var $submitBtn = $root.find('.submit'); 1652 var $msg = $root.find('#msgbox'); 1653 var verHtml = jtGetCaptchaHtml(captchaPath, captchaStyle); 1654 var isMobile = (rootSel.indexOf('mobile') !== -1); 1655 1656 $msg.removeClass().text('Validating').fadeIn(1000); 1657 1658 $submitBtn.prop('disabled', true).addClass('disabled'); 1659 1660 function unlockSubmit() { 1661 $submitBtn.prop('disabled', false).removeClass('disabled'); 1662 } 1663 1664 function doLoginPost() { 1665 $.ajax({ 1666 url: '/api/front/login', 1667 type: 'POST', 1668 data: $form.serialize(), 1669 dataType: 'json', 1670 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 1671 success: function(data) { 1672 jtHandleLoginResponse(data, $root, verHtml); 1673 } 1674 }) 1675 .fail(function() { 1676 $msg.removeClass().text('Koneksi gagal').fadeIn(1000); 1677 $root.find('#verifikasi').html(verHtml); 1678 }) 1679 .always(unlockSubmit); 1680 } 1681 1682 function afterTurnstile() { 1683 if (typeof jtWithRecaptchaLoginToken === 'function') { 1684 jtWithRecaptchaLoginToken($form, $msg, doLoginPost, unlockSubmit); 1685 } else { 1686 doLoginPost(); 1687 } 1688 } 1689 1690 function afterIframe() { 1691 if (typeof jtWithTurnstileLogin === 'function') { 1692 jtWithTurnstileLogin($form, afterTurnstile); 1693 } else { 1694 afterTurnstile(); 1695 } 1696 } 1697 1698 if (typeof jtWithIframeCaptchaLogin === 'function') { 1699 jtWithIframeCaptchaLogin($form, isMobile, afterIframe, function (msgText) { 1700 $msg.removeClass().text(msgText || 'Verifikasi Kosong').fadeIn(1000); 1701 unlockSubmit(); 1702 }); 1703 } else { 1704 afterIframe(); 1705 } 1706 1707 return false; 1708 } 1709 1710 // Login desktop 1711 $(document).on('click', '#desktoplogin .submit', function(e) { 1712 e.preventDefault(); 1713 1714 jtSubmitLogin( 1715 '#desktoplogin', 1716 '/capimg.php', 1717 'width="40" height="30" style="border:1px #999 solid;"' 1718 ); 1719 1720 return false;
1721 }); 1722 1723 // Login mobile 1724 $(document).on('click', '#mobilelogin .submit', function(e) { 1725 e.preventDefault(); 1726 1727 jtSubmitLogin( 1728 '#mobilelogin', 1729 '/mcapimg.php', 1730 'width="600" height="88" style="width:100%;height:auto;border-radius:5px;"' 1731 ); 1732 1733 return false; 1734 }); 1735 1736 // Tekan Enter utk login 1737 $(document).on('keypress', '#desktoplogin input, #mobilelogin input', function(e) { 1738 if (e.which === 13) { 1739 e.preventDefault(); 1740 1741 var $root = $(this).closest('#desktoplogin, #mobilelogin'); 1742 1743 if ($root.attr('id') === 'desktoplogin') { 1744 $('#desktoplogin .submit').trigger('click'); 1745 } else { 1746 $('#mobilelogin .submit').trigger('click'); 1747 } 1748 1749 return false; 1750 } 1751 }); 1752 1753 function jtEnsureDriver(done) { 1754 if (window.driver && window.driver.js) { 1755 done(); 1756 return; 1757 } 1758 if (window._jtDriverLoading) { 1759 window._jtDriverLoading.push(done); 1760 return; 1761 } 1762 window._jtDriverLoading = [done]; 1763 1764 var link = document.createElement('link'); 1765 link.rel = 'stylesheet'; 1766 link.href = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/driver.css'; 1767 link.integrity = 'sha384-eyrYgcjChmzD338JTHFZssgJHOqqOZbajet8yZpCw8ESroLDi28BarMEKCImNGHC'; 1768 link.crossOrigin = 'anonymous'; 1769 document.head.appendChild(link); 1770 1771 var s = document.createElement('script'); 1772 s.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/driver.js.iife.js'; 1773 s.integrity = 'sha384-BhR06AMz62Xn0o53z8itVS1vw4JslNckRFgOTa6/Dob0Agdmbbh8Dr9sDO2h18TO'; 1774 s.crossOrigin = 'anonymous'; 1775 s.onload = function () { 1776 var q = window._jtDriverLoading || []; 1777 window._jtDriverLoading = null; 1778 q.forEach(function (fn) { 1779 try { fn(); } catch (e) {} 1780 }); 1781 }; 1782 s.onerror = function () { 1783 window._jtDriverLoading = null; 1784 }; 1785 document.head.appendChild(s); 1786 } 1787 1788 function scrollToLoginForm() { 1789 if (typeof jtWarmAuthScripts === 'function') jtWarmAuthScripts(); 1790 var isDesktop = window.innerWidth >= 992; 1791 var formEl = document.getElementById(isDesktop ? 'desktoplogin' : 'mobilelogin'); 1792 1793 if (!formEl) { 1794 return; 1795 } 1796 1797 formEl.scrollIntoView({ 1798 behavior: 'smooth', 1799 block: 'center' 1800 }); 1801 1802 setTimeout(function() { 1803 var inp = formEl.querySelector('input[type="text"], input[name="username"], input[name="BOX_username"]'); 1804 1805 if (inp) { 1806 inp.focus(); 1807 } 1808 1809 if (!inp) { 1810 return; 1811 } 1812 1813 jtEnsureDriver(function () { 1814 if (!window.driver || !window.driver.js) { 1815 return; 1816 } 1817 1818 var driver = window.driver.js.driver({ 1819 popoverClass: 'driverjs-theme', 1820 showProgress: false, 1821 showButtons: [], 1822 overlayOpacity: 0.3, 1823 steps: [ 1824 { 1825 element: inp, 1826 popover: { 1827 title: 'Harap Login', 1828 description: 'Silakan masukkan username Anda', 1829 side: 'bottom', 1830 align: 'start', 1831 showButtons: [], 1832 nextBtnText: '', 1833 prevBtnText: '', 1834 doneBtnText: '' 1835 } 1836 } 1837 ], 1838 onDestroyStarted: () => driver.destroy(), 1839 }); 1840 driver.drive(); 1841 1842 var destroyDriver = function() { 1843 driver.destroy(); 1844 inp.removeEventListener('input', destroyDriver); 1845 inp.removeEventListener('click', destroyDriver); 1846 inp.removeEventListener('focus', destroyDriver); 1847 }; 1848 inp.addEventListener('input', destroyDriver, { once: true }); 1849 inp.addEventListener('click', destroyDriver, { once: true }); 1850 inp.addEventListener('focus', destroyDriver, { once: true }); 1851 }); 1852 }, 400); 1853 } 1854 1855 window.JT_LOGGED_IN = false;
1856 1857 if (sessionStorage.getItem('jt_pending_action')) { 1858 $(document).ready(function() { 1859 scrollToLoginForm(); 1860 }); 1861 } 1862 </script>
1862 1863 1864 </div> 1865 1866 1867 <!--<a href="/event">--> 1868 <!-- <img src="https://img.viva88athenae.com//btnevent.png" alt="EVENT" height="24px"/>--> 1869 <!--</a>--> 1870 </div> 1871 1872 <!-- Desktop Login End --> 1873 </div> 1874 1875 <div class="desktop-topbar-line"></div> 1876 1877 1878 1879 1880 <div class="desktop-topbar-line d-flex align-items-center justify-content-between" style="margin-left:-2.0rem;margin-right:-2.0rem"></div> 1881 1882 <nav class="section desktop-mainnav d-flex align-items-center"> 1883 <!-- <a class="navbar-brand me-2 flex-shrink-0 navbar-brand-guest" href="/home" onclick="content('/home.php','#content',this); return false;"> --> 1884 <a class="navbar-brand me-2 flex-shrink-0" href="/home" onclick="openPage('home'); return false;"> 1885 <img src="/images/logo.png?v=1790436337" alt="Logo" class="logo"> 1886 </a> 1887 <div class="d-flex align-items-stretch h-100 ms-auto" style="overflow-x:auto;scrollbar-width:none;"> 1888 <a href="/home" 1889 onclick="openPage('home',this); return false;" class="desktop-nav-link" 1890 data-nav="home"> 1891 <img src="https://img.viva88athenae.com/new/menu-home.png?v=1790436337" alt=""> 1892 <span>Home</span> 1893 </a> 1894 <a href="/togel" 1895 onclick="window.JT_LOGGED_IN ? content('/togel.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'togel'})), scrollToLoginForm()); return false;" class="desktop-nav-link" 1896 data-nav="togel"> 1897 <img src="https://img.viva88athenae.com/new/menu-togel.png?v=1790436337" alt=""> 1898 <span>Togel</span> 1899 </a> 1900 <a href="/slot" 1901 onclick="showProviders('slot',this); return false;" class="desktop-nav-link" 1902 data-nav="slot"> 1903 <img src="https://img.viva88athenae.com/new/menu-slot.png?v=1790436337" alt=""> 1904 <span>Slot</span> 1905 </a> 1906 <a href="/casino" 1907 onclick="showProviders('casino',this); return false;" class="desktop-nav-link" 1908 data-nav="casino"> 1909 <img src="https://img.viva88athenae.com/new/menu-casino.png?v=1790436337" alt=""> 1910 <span>Casino</span> 1911 </a> 1912 <a href="/sport" 1913 onclick="openPage('sport',this); return false;" class="desktop-nav-link" 1914 data-nav="sport"> 1915 <img src="https://img.viva88athenae.com/new/menu-sport.png?v=1790436337" alt=""> 1916 <span>Sport</span> 1917 </a> 1918 <a href="/sabung" 1919 onclick="openPage('sabung',this); return false;" class="desktop-nav-link" 1920 data-nav="sabung"> 1921 <img src="https://img.viva88athenae.com/new/menu-sabung.png?v=1790436337" alt="">
1922 <span>Sabung</span> 1923 </a> 1924 <a href="/arcade" 1925 onclick="showProviders('arcade',this); return false;" class="desktop-nav-link" 1926 data-nav="arcade"> 1927 <img src="https://img.viva88athenae.com/new/menu-arcade.png?v=1790436337" alt=""> 1928 <span>Arcade</span> 1929 </a> 1930 <a href="/interactive" 1931 onclick="showProviders('interactive',this); return false;" class="desktop-nav-link" 1932 data-nav="interactive"> 1933 <img src="https://img.viva88athenae.com/new/menu-interactive.png?v=1790436337" alt=""> 1934 <span>Interactive</span> 1935 </a> 1936 <a href="/kupon" 1937 onclick="window.JT_LOGGED_IN ? content('/kupon.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'kupon'})), scrollToLoginForm()); return false;" class="desktop-nav-link" 1938 data-nav="kupon"> 1939 <img src="https://img.viva88athenae.com/new/menu-kupon.png?v=1790436337" alt=""> 1940 <span>Kupon</span> 1941 </a> 1942 <a href="/promosi" 1943 onclick="openPage('promosi',this); return false;" class="desktop-nav-link" 1944 data-nav="promosi"> 1945 <img src="https://img.viva88athenae.com/new/menu-promo.png?v=1790436337" alt=""> 1946 <span>Promosi</span> 1947 </a> 1948 <a href="/event" 1949 onclick="openPage('event',this); return false;" class="desktop-nav-link" 1950 data-nav="event"> 1951 <img src="https://img.viva88athenae.com/new/menu-event.png?v=1790436337" alt=""> 1952 <span>Event</span> 1953 </a> 1954 </div> 1955 </nav> 1956 1957 </div> 1958 <!-- WHEEL --> 1959 <!-- WHEEL --> 1960 1961 1962 1963 <nav class="navbar px-3 d-md-none" style="z-index: 1046"> 1964 <div class="w-100 d-flex justify-content-between align-items-center ps-3"> 1965 <a class="navbar-brand" href="/home" onclick="content('/home.php','#content',this); return false;"> 1966 <img src="/images/logo.png?v=1790436337" alt="Logo" class="logo"> 1967 </a> 1968 <div class="d-flex align-items-center gap-2 pe-2"> 1969 <button class="btn btn-transparent py-0 px-2" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight" aria-label="Menu kontak"> 1970 <i class="bi bi-person-lines-fill" style="font-size: 20px; color: var(--primary-text-color)" aria-hidden="true"></i> 1971 </button> 1972 </div> 1973 </div> 1974 </div> 1975 </nav> 1976 1977 1978 1979 1980 1981 1982<style> 1983 1984 .banner { 1985 aspect-ratio: 1920 / 380; 1986 width: 100%; 1987 object-fit: cover; 1988 background: black 1989 } 1990 1991 @media only screen and (max-width: 1000px) { 1992 1993 .banner { 1994 aspect-ratio: 600 / 300; 1995 } 1996 1997 } 1998 1999</style> 2000 2001<div class="carousel slide" id="banner-carousel" data-bs-ride="carousel"> 2002 <div class="carousel-indicators"> 2003 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> 2004 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="1" aria-label="Slide 2"></button> 2005 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="2" aria-label="Slide 3"></button> 2006 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="3" aria-label="Slide 4"></button> 2007 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="4" aria-label="Slide 5"></button> 2008 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="5" aria-label="Slide 6"></button> 2009 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="6" aria-label="Slide 7"></button> 2010 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="7" aria-label="Slide 8"></button> 2011 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="8" aria-label="Slide 9"></button> 2012 </div> 2013 <div class="carousel-inner" style="height: 100%"> 2014 <div class="carousel-item active" style="height: 100%"> 2015 2016 <a > 2017 2018 <img 2019 src="/images/upload-Slides-20260409161453.webp" 2020 class="d-block w-100 banner" 2021 alt="" 2022 fetchpriority="high" > 2023 2024 </a> 2025 2026 </div> 2027 <div class="carousel-item " style="height: 100%"> 2028 2029 <a > 2030 2031 <img 2032 src="/images/upload-Slides-20260409161548.webp" 2033 class="d-block w-100 banner" 2034 alt="" 2035 > 2036 2037 </a> 2038 2039 </div> 2040 <div class="carousel-item " style="height: 100%"> 2041 2042 <a > 2043 2044 <img 2045 src="/images/upload-Slides-20251008093215.jpg" 2046 class="d-block w-100 banner" 2047 alt="" 2048 > 2049 2050 </a> 2051 2052 </div> 2053 <div class="carousel-item " style="height: 100%"> 2054 2055 <a > 2056 2057 <img 2058 src="/images/upload-Slides-20251008093231.jpg" 2059 class="d-block w-100 banner" 2060 alt="" 2061 > 2062 2063 </a> 2064 2065 </div> 2066 <div class="carousel-item " style="height: 100%"> 2067 2068 <a > 2069 2070 <img 2071 src="/images/upload-Slides-20251008093248.jpg" 2072 class="d-block w-100 banner" 2073 alt="" 2074 > 2075 2076 </a> 2077 2078 </div> 2079 <div class="carousel-item " style="height: 100%"> 2080 2081 <a > 2082 2083 <img 2084 src="/images/upload-Slides-20251008093305.jpg" 2085 class="d-block w-100 banner" 2086 alt="" 2087 > 2088 2089 </a> 2090 2091 </div> 2092 <div class="carousel-item " style="height: 100%"> 2093 2094 <a > 2095 2096 <img 2097 src="/images/upload-Slides-20251008093320.jpg" 2098 class="d-block w-100 banner" 2099 alt="" 2100 > 2101 2102 </a> 2103 2104 </div> 2105 <div class="carousel-item " style="height: 100%"> 2106 2107 <a > 2108 2109 <img 2110 src="https://img.viva88athenae.com/banner/mgl-25.jpg" 2111 class="d-block w-100 banner" 2112 alt="" 2113 > 2114 2115 </a> 2116 2117 </div> 2118 <div class="carousel-item " style="height: 100%"> 2119 2120 <a > 2121 2122 <img 2123 src="https://img.viva88athenae.com/banner/slider-fgs.jpg" 2124 class="d-block w-100 banner" 2125 alt="" 2126 > 2127 2128 </a> 2129 2130 </div> 2131 </div> 2132</div> 2133 2134 <div class="section marquee-bar"> 2135 <div class="marquee-date ps-2">
2136 <span id="datetime"></span> 2137 <i class="bi bi-volume-up-fill ms-1 secondary-text-color"></i> 2138 </div> 2139 <div class="marquee-text"> 2140 <div class="marquee-runner" id="marqueeRunner"> 2141 <span>Selamat Datang di Situs BBNI4D!! Link Alternatif BBNI4D : https://bbni4dsignature.com, https://bbni4dmatcha.com, https://bbni4dsmack.com</span> 2142 </div> 2143 </div> 2144 </div> 2145 2146 <div class="p-2"> 2147 <div class="d-md-none"> 2148 <div id="lobbyMenuWrap" class="splide pb-4 mt-2"> 2149 <div class="splide__track"> 2150 <ul class="splide__list"> 2151 <li class="splide__slide"> 2152 <a href="/home" 2153 onclick="openPage('home',this); return false;" 2154 class="lobby-menu" 2155 data-nav="home"> 2156 <img src="https://img.viva88athenae.com/new/menu-home.png?v=1790436337" alt=""> 2157 <small>Home</small> 2158 </a> 2159 </li> 2160 <li class="splide__slide"> 2161 <a href="/togel" 2162 onclick="window.JT_LOGGED_IN ? content('/togel.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'togel'})), scrollToLoginForm()); return false;" 2163 class="lobby-menu" 2164 data-nav="togel"> 2165 <img src="https://img.viva88athenae.com/new/menu-togel.png?v=1790436337" alt=""> 2166 <small>Togel</small> 2167 </a> 2168 </li> 2169 <li class="splide__slide"> 2170 <a href="/kupon" 2171 onclick="window.JT_LOGGED_IN ? content('/kupon.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'kupon'})), scrollToLoginForm()); return false;" 2172 class="lobby-menu" 2173 data-nav="kupon"> 2174 <img src="https://img.viva88athenae.com/new/menu-kupon.png?v=1790436337" alt=""> 2175 <small>Kupon</small> 2176 </a> 2177 </li> 2178 <li class="splide__slide"> 2179 <a href="/slot" 2180 onclick="showProviders('slot',this); return false;" 2181 class="lobby-menu" 2182 data-nav="slot"> 2183 <img src="https://img.viva88athenae.com/new/menu-slot.png?v=1790436337" alt=""> 2184 <small>Slot</small> 2185 </a> 2186 </li> 2187 <li class="splide__slide"> 2188 <a href="/casino" 2189 onclick="showProviders('casino',this); return false;" 2190 class="lobby-menu" 2191 data-nav="casino"> 2192 <img src="https://img.viva88athenae.com/new/menu-casino.png?v=1790436337" alt=""> 2193 <small>Casino</small> 2194 </a> 2195 </li> 2196 <li class="splide__slide"> 2197 <a href="/sport" 2198 onclick="openPage('sport',this); return false;" 2199 class="lobby-menu" 2200 data-nav="sport"> 2201 <img src="https://img.viva88athenae.com/new/menu-sport.png?v=1790436337" alt=""> 2202 <small>Sport</small> 2203 </a> 2204 </li> 2205 <li class="splide__slide"> 2206 <a href="/sabung" 2207 onclick="openPage('sabung',this); return false;" 2208 class="lobby-menu" 2209 data-nav="sabung"> 2210 <img src="https://img.viva88athenae.com/new/menu-sabung.png?v=1790436337" alt=""> 2211 <small>Sabung</small> 2212 </a> 2213 </li> 2214 <li class="splide__slide"> 2215 <a href="/arcade" 2216 onclick="showProviders('arcade',this); return false;" 2217 class="lobby-menu" 2218 data-nav="arcade"> 2219 <img src="https://img.viva88athenae.com/new/menu-arcade.png?v=1790436337" alt=""> 2220 <small>Arcade</small> 2221 </a> 2222 </li> 2223 <li class="splide__slide"> 2224 <a href="/interactive" 2225 onclick="showProviders('interactive',this); return false;" 2226 class="lobby-menu" 2227 data-nav="interactive"> 2228 <img src="https://img.viva88athenae.com/new/menu-interactive.png?v=1790436337" alt=""> 2229 <small>Interactive</small> 2230 </a> 2231 </li> 2232 </ul> 2233 </div> 2234 </div> 2235 </div> 2236 2237
2237<script> 2238 document.addEventListener('DOMContentLoaded', function () { 2239 var lobbyEl = document.getElementById('lobbyMenuWrap'); 2240 if (lobbyEl && !lobbyEl.classList.contains('is-initialized')) { 2241 var mountLobby = function () { 2242 if (!lobbyEl || typeof Splide === 'undefined' || lobbyEl.classList.contains('is-initialized')) return; 2243 new Splide('#lobbyMenuWrap', { 2244 type: 'slide', perPage: 5, perMove: 5, 2245 gap: '8px', pagination: true, arrows: false, drag: true, 2246 }).mount(); 2247 }; 2248 if (typeof ensureSplide === 'function') { 2249 ensureSplide().then(mountLobby).catch(function () {}); 2250 } else { 2251 mountLobby(); 2252 } 2253 } 2254 2255 if (typeof initUserareaShell === 'function') { 2256 initUserareaShell(); 2257 } else if (typeof initGuestShell === 'function') { 2258 initGuestShell(); 2259 } else if (typeof content === 'function') { 2260 var isDesktop = window.innerWidth >= 768; 2261 var homeMenu = isDesktop 2262 ? document.querySelector('.desktop-nav-link[data-nav="home"]') 2263 : document.querySelector('#lobbyMenuWrap .lobby-menu[data-nav="home"]'); 2264 content('/home.php', '#content', homeMenu); 2265 } 2266 }); 2267 </script>
2267 2268 </div> 2269 2270 2271 <!-- Mobile Login Start --> 2272 2273 <div id="mobilelogin" class="d-block d-lg-none mb-3"> 2274 <form class="login-form form d-flex flex-column gap-2 align-items-center" style="padding: 0px; padding-top: 16px" role="form"> 2275 <div id="msgbox" style="font-size: 1rem; width: 100%"></div> 2276 <div class="input-group login-field"> 2277 <span class="input-group-text prepend mobile-only "><div class="h-100 center"><i class="bi bi-person-circle prepend-icon"></i></div></span> 2278 <input type="text" name="username" class="form-control login-input-field username" placeholder="Username" aria-label="Username"> 2279 </div> 2280 <div class="input-group login-field"> 2281 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-shield-lock-fill prepend-icon"></i></div></span> 2282 <input type="password" name="password" class="form-control login-input-field password" placeholder="Password" aria-label="Password"> 2283 </div> 2284 2285 <!-- captcha --> 2286 2287 <div id="mverifikasiform" class="w-100" style=""> 2288 2289 <span id="verifikasi"><img src="/mcapimg.php" width="600" height="88" style="width:100%;height:auto;border-radius: 5px;" alt="Kode verifikasi"></span> 2290 <div class="input-group login-field mt-1"> 2291 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-person-fill-check prepend-icon"></i></div></span> 2292 <input type="text" class="form-control login-input-field" name="verifikasi" id="mverform" autocomplete="off" placeholder="Verifikasi"> 2293 </div> 2294 </div> 2295 2296 <input type="hidden" name="verif" id="verifval" class="verifval" value="1"> 2297 2298 <!-- end captcha --> 2299 2300 <label style="font-size:12px;display:flex;align-items:center;margin-top:2px;margin-bottom:4px;cursor:pointer;"> 2301 <input class="login-field" type="checkbox" id="rememberMe" name="remember" style="margin-right:4px;width:12px;height:12px;cursor:pointer;"> <span style="white-space: nowrap;">Remember Me</span> 2302 </label> 2303 2304 <!--<button type="submit" value="Masuk" class="btn btn-masuk fw-bold p-0 px-2 submit">Masuk</button>--> 2305 <button type="button" class="btn btn-masuk fw-bold p-0 px-2 submit w-100 d-flex justify-content-center align-items-center" style="height: 36px; border-radius: 8px">Masuk</button> 2306 <button type="button" class="btn btn-daftar btn-info btn-daftar-mobile fw-bold p-0 px-2 mobile-only" onclick="openDaftarMobile()">Daftar Sekarang</button> 2307 2308 2309 <button type="button" class="btn btn-tele fw-bold p-0 px-2 mobile-only" onclick="window.open('https://telegram.me/BBNI4D_bot', '_blank')"><i class="bi bi-telegram me-2" style="color: #0088cc"></i>Main di Telegram</button> 2310 2311 2312 <input type="hidden" name="task" value="login"> 2313 <input type="hidden" name="iscaptchalogin" value="1"> 2314 <input type="hidden" name="isrecaptchalogin" value="0"> 2315 <input type="hidden" name="recaptcha_login_token" value=""> 2316 <input type="hidden" name="fp_event_id" value=""> 2317 <input type="hidden" name="fp_visitor_id" value=""> 2318 <input type="hidden" name="loginmobile" value="DzXTrNjavKQ4o2iIC925HBtf2D7Nmpmjl1COVBHexeE="> 2319 </form> 2320 2321 2322 <a href="/wap" class="mt-4" style="display: grid; place-items: center; font-size: 1rem; cursor: pointer; color: var(--menu-item-color)">WAP</a> 2323 2324 </div> 2325 2326 <!-- Mobile Login End --> 2327 2328
2328<script> 2329 function openDaftar() { 2330 if (typeof openRegister === 'function') { 2331 openRegister('desktop'); 2332 } else { 2333 window.location.href = '/register'; 2334 } 2335 } 2336 2337 function openDaftarMobile() { 2338 if (typeof openRegister === 'function') { 2339 openRegister('mobile'); 2340 $("#content").get(0).scrollIntoView({behavior: 'smooth'}); 2341 } else { 2342 window.location.href = '/register'; 2343 } 2344 } 2345 2346 2347 </script>
2347 2348 2349 2350 <div class="modal fade" id="modal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> 2351 <div class="modal-dialog modal-dialog-centered modal-lg modal-fullscreen-sm-down"> 2352 <div id="modal-content" class="modal-content rounded-0 primary-background-color"> 2353 </div> 2354 </div> 2355 </div> 2356 2357 <div id="content" class="section p-2" style="position:relative;min-height:60vh;"></div> 2358 2359 2360<!-- Transaksi Start --> 2361 2362 2363 2364<style> 2365 2366 .transaksi-group { 2367 display: grid; 2368 grid-template-columns: 458px 1fr; 2369 justify-content: space-between; 2370 grid-template-areas: 2371 "transaksi-bank transaksi-other transaksi-crypto"; 2372 } 2373 2374 .transaksi-bank { 2375 grid-area: transaksi-bank; 2376 display: grid; 2377 place-items: center 2378 } 2379 2380 .transaksi-other { 2381 grid-area: transaksi-other; 2382 display: flex; 2383 justify-content: space-evenly; 2384 width: 100%; 2385 } 2386 2387 .transaksi-crypto { 2388 grid-area: transaksi-crypto; 2389 display: flex; 2390 justify-content: space-evenly; 2391 width: 100%; 2392 } 2393 2394 .icon-crypto { 2395 width: 24px; 2396 height: 24px; 2397 } 2398 2399 .transaksi-list-bank { 2400 height: fit-content; 2401 display: grid; 2402 grid-template-columns: repeat(4, 92px); 2403 grid-template-rows: repeat(4, auto); 2404 gap: 4px; 2405 } 2406 2407 .transaksi-list-other { 2408 height: fit-content; 2409 display: grid; 2410 grid-template-columns: repeat(3, 92px); 2411 gap: 4px; 2412 } 2413 2414 .transaksi-list-crypto { 2415 height: fit-content; 2416 display: grid; 2417 grid-template-columns: repeat(2, 80px); 2418 gap: 10px 8px; 2419 } 2420 2421 2422 .transaksi-item { 2423 display: flex; 2424 flex-direction: column; 2425 /* transform: perspective(10px) rotateX(3deg); */ 2426 } 2427 2428 .transaksi-header { 2429 2430 height: 30px; 2431 border-radius: 5px; 2432 display: grid; 2433 place-items: center; 2434 font-weight: bold; 2435 border: 2px solid rgba(108,108,108,1); 2436 background: rgba(54,54,54,1); 2437 color: white; 2438 } 2439 2440 .transaksi-status { 2441 margin-left: 3px; 2442 margin-right: 3px; 2443 height: 3px; 2444 border-radius: 0px 0px 4px 4px; 2445 background: rgb(54,54,54); 2446 background: linear-gradient(90deg, rgba(54,54,54,1) 0%, rgba(108,108,108,1) 50%, rgba(54,54,54,1) 100%); 2447 } 2448 2449 .header-green { 2450 background: rgba(44,121,6,1); 2451 border-color: rgba(168,255,0,1); 2452 } 2453 2454 .header-blue { 2455 background: rgba(0,80,89,1); 2456 border-color: rgba(0,255,204,1); 2457 } 2458 2459 .status-green { 2460 background: rgb(44,121,6); 2461 background: linear-gradient(90deg, rgba(44,121,6,1) 0%, rgba(168,255,0,1) 50%, rgba(44,121,6,1) 100%); 2462 } 2463 2464 .status-blue { 2465 background: rgb(0,80,89); 2466 background: linear-gradient(90deg, rgba(0,80,89,1) 0%, rgba(0,255,204,1) 50%, rgba(0,80,89,1) 100%); 2467 } 2468 2469 .transaksi-name { 2470 font-size: 1.1rem; 2471 font-weight: bold; 2472 line-height: 1.5rem 2473 } 2474 2475 .transaksi-wrapper { 2476 display: flex; 2477 flex-direction: column; 2478 gap: .5rem; 2479 } 2480 2481 2482 @media only screen and (max-width: 768px) { 2483 2484 .transaksi-group { 2485 display: grid; 2486 grid-template-columns: 1fr; 2487 grid-template-areas: 2488 "transaksi-bank" 2489 "transaksi-other" 2490 "transaksi-crypto"; 2491 gap: 32px; 2492 margin-bottom: 8px; 2493 2494 } 2495 2496 .transaksi-header { 2497 font-size: 1.1rem; 2498 height: 36px; 2499 } 2500 2501 .transaksi-list-bank { 2502 grid-template-columns: repeat(4, 1fr); 2503 } 2504 2505 .transaksi-list-other { 2506 grid-template-columns: repeat(4, 1fr); 2507 } 2508 2509 .transaksi-list-crypto { 2510 width: 86%; 2511 margin: auto; 2512 grid-template-columns: repeat(4, 1fr); 2513 } 2514 2515 .transaksi-list { 2516 display: grid; 2517 grid-template-columns: repeat(3, 1fr); 2518 } 2519 2520 .transaksi-item { 2521 width: 100%; 2522 } 2523 2524 .transaksi-title-group { 2525 justify-content: center; 2526 padding: 16px 0; 2527 } 2528 2529 .transaksi-name { 2530 font-size: 1.3rem; 2531 text-align: center; 2532 line-height: 1.8rem; 2533 } 2534 2535 .transaksi-wrapper { 2536 width: 100%; 2537 max-width: 100%!important; 2538 gap: 1rem; 2539 } 2540 2541 .icon-crypto { 2542 width: 28px; 2543 height: 28px; 2544 } 2545 2546 } 2547</style> 2548 2549 2550 <style> 2551 .transaksi-wrapper { 2552 display: flex; 2553 flex-direction: column; 2554 gap: .5rem;
2555 align-items: flex-start; 2556} 2557 2558.transaksi-name { 2559 font-size: 1.1rem; 2560 font-weight: bold; 2561 line-height: 1.5rem; 2562} 2563 2564.carousel-inner { 2565 position: relative; 2566 width: 100%; 2567 overflow: hidden; 2568} 2569 2570.transaksi-list-bank, .transaksi-list-other { 2571 grid-template-columns: repeat(4, minmax(110px, 1fr)); 2572 gap: 8px 10px; 2573} 2574 2575 2576.transaksi-list-bank, .transaksi-list-other { 2577 height: fit-content; 2578 display: grid; 2579 grid-template-columns: repeat(4, minmax(80px, 1fr)); 2580 gap: 4px 6px; 2581} 2582 2583 2584.transaksi-item { 2585 display: flex; 2586 flex-direction: column; 2587 position: relative; 2588} 2589.transaksi-header { 2590 height: 34px; 2591 border-radius: 6px; 2592 font-weight: bold; 2593 border: 2px solid rgba(108, 108, 108, 1); 2594 background: rgba(54, 54, 54, 1); 2595 color: white; 2596 min-width: 110px; 2597 padding: 0 16px 0 28px; 2598 display: flex; 2599 align-items: center; 2600 justify-content: center; 2601 text-align: center; 2602 white-space: nowrap; 2603} 2604 2605.transaksi-header { 2606 border: none; 2607 padding: 0px; 2608 padding-bottom: 4px; 2609} 2610 2611.transaksi-header.is-online::before { 2612 content: ""; 2613 position: absolute; 2614 top: auto; 2615 left: 50%; 2616 transform: translateX(-50%); 2617 width: 50%; 2618 height: 4px; 2619 bottom: 0%; 2620 background-color: #00ff66; 2621 border-radius: 6px; 2622 box-shadow: 0 0 8px rgba(0, 255, 102, .85); 2623} 2624 2625.transaksi-header.is-offline { 2626 padding: 0 16px; 2627 background: #2e2e2e; 2628 border-color: #555; 2629 opacity: .35; 2630 align-items: center; 2631 justify-content: center; 2632 text-align: center; 2633} 2634 </style> 2635 2636 <div class="section desktop-only" style="min-height: 220px"> 2637 2638<div class="transaksi-group"> 2639 <div class="transaksi-bank"> 2640 2641 <div class="transaksi-wrapper"> 2642 <div class="transaksi-name">Bank Lokal</div> 2643 2644 <div id="transaksi-bank-indicators" class="carousel slide" data-bs-ride="carousel"> 2645 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2646 2647 2648 </div> 2649 <div class="carousel-inner" > 2650 <div class="carousel-item active" style="min-height: 144px"> 2651 <div class="transaksi-list-bank"> 2652 2653 2654 2655 <div class="transaksi-item"> 2656 <div class="transaksi-header">BCA</div> 2657 <div class="transaksi-status status-green"></div> 2658 </div> 2659 2660 2661 <div class="transaksi-item"> 2662 <div class="transaksi-header">Mandiri</div> 2663 <div class="transaksi-status "></div> 2664 </div> 2665 2666 2667 <div class="transaksi-item"> 2668 <div class="transaksi-header">BNI</div> 2669 <div class="transaksi-status "></div> 2670 </div> 2671 2672 2673 <div class="transaksi-item"> 2674 <div class="transaksi-header">BRI</div> 2675 <div class="transaksi-status "></div> 2676 </div> 2677 2678 2679 <div class="transaksi-item"> 2680 <div class="transaksi-header">CIMB</div> 2681 <div class="transaksi-status status-green"></div> 2682 </div> 2683 2684 2685 <div class="transaksi-item"> 2686 <div class="transaksi-header">BSI</div> 2687 <div class="transaksi-status status-green"></div> 2688 </div> 2689 2690 2691 <div class="transaksi-item"> 2692 <div class="transaksi-header">JAGO</div> 2693 <div class="transaksi-status status-green"></div> 2694 </div> 2695 2696 2697 <div class="transaksi-item"> 2698 <div class="transaksi-header">SeaBank</div> 2699 <div class="transaksi-status status-green"></div> 2700 </div> 2701 2702 2703 </div> 2704 </div> 2705 2706 2707 2708 </div> 2709 </div> 2710 2711 </div> 2712 </div> 2713 2714 <div class="transaksi-other"> 2715 2716 2717 <div class="transaksi-wrapper" style="max-width: 458px"> 2718 2719 <div class="transaksi-name">E Money & Pulsa</div> 2720 2721 2722 <div id="transaksi-other-indicators" class="carousel slide" data-bs-ride="carousel"> 2723 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2724 2725 2726 </div> 2727 <div class="carousel-inner" > 2728 <div class="carousel-item active"> 2729 <div class="transaksi-list-other"> 2730 2731 2732 2733 <div class="transaksi-item"> 2734 <div class="transaksi-header">Telkomsel</div> 2735 <div class="transaksi-status status-blue"></div> 2736 </div> 2737 2738 2739 <div class="transaksi-item"> 2740 <div class="transaksi-header">Axiata</div> 2741 <div class="transaksi-status status-blue"></div> 2742 </div> 2743 2744 2745 <div class="transaksi-item"> 2746 <div class="transaksi-header">DANA</div> 2747 <div class="transaksi-status status-blue"></div> 2748 </div> 2749 2750 2751 <div class="transaksi-item"> 2752 <div class="transaksi-header">OVO</div> 2753 <div class="transaksi-status status-blue"></div> 2754 </div> 2755 2756 2757 <div class="transaksi-item"> 2758 <div class="transaksi-header">ShopeePay</div> 2759 <div class="transaksi-status status-blue"></div> 2760 </div> 2761 2762 2763 <div class="transaksi-item"> 2764 <div class="transaksi-header">GOPAY</div> 2765 <div class="transaksi-status status-blue"></div> 2766 </div> 2767 2768 2769 <div class="transaksi-item"> 2770 <div class="transaksi-header">LinkAja</div> 2771 <div class="transaksi-status status-blue"></div> 2772 </div> 2773 2774 2775 <div class="transaksi-item"> 2776 <div class="transaksi-header">Lain-lain</div> 2777 <div class="transaksi-status status-blue"></div> 2778 </div> 2779 2780 2781 </div> 2782 </div> 2783 2784 2785 2786 </div> 2787 </div> 2788 </div> 2789 2790 2791 2792 </div> 2793 2794 <div class="transaksi-crypto"> 2795 <div class="transaksi-wrapper" style="max-width: 284px"> 2796 2797 <div class="transaksi-name mb-1">Crypto Currency</div> 2798 2799 2800 <div id="transaksi-crypto-indicators" class="carousel slide" data-bs-ride="carousel"> 2801 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2802 2803 2804 </div> 2805 <div class="carousel-inner" > 2806 <div class="carousel-item active"> 2807 <div class="transaksi-list-crypto"> 2808 2809 2810 2811 <div class="d-flex gap-2"> 2812 <img src="https://img.viva88athenae.com/USDT.png" class="icon-crypto" alt="USDT"> 2813 <strong class="transaksi-name">USDT</strong> 2814 2815 </div> 2816 2817 2818 </div> 2819 </div> 2820 2821 2822 2823 </div> 2824 </div> 2825 </div> 2826 </div> 2827</div> 2828 2829</div> 2830 2831 2832 2833 2834 2835 <footer class="site-footer"> 2836<div class="section"> 2837 2838 <div class="footer-nav"> 2839 <a href="javascript:void(0)" onclick="openCms('tentang')">TENTANG KAMI</a>
2840 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('bantuan')">BANTUAN</a> 2841 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('peraturan')">PERATURAN</a> 2842 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('bank')">INFORMASI BANK</a> 2843 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('hubungi')">HUBUNGI KAMI</a> 2844 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('privasi')">KEBIJAKAN PRIVASI</a> 2845 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('cookies')">PERSETUJUAN COOKIES</a> 2846 </div> 2847 2848 <div class="footer-guidelines-wrap"> 2849 <img src="https://img.viva88athenae.com/new/guidelines.png?v=1790436337" alt="Guidelines" class="footer-guidelines-img" width="929" height="52"> 2850 </div> 2851 2852 <div class="footer-providers"> 2853 <img src="https://img.viva88athenae.com/assets/provider_w.png?v=1790436337" alt="Provider Logos" class="d-none d-md-block" style="margin:0 auto;" width="1201" height="124"> 2854 <img src="/images/new/provider-mobile.png?v=1790436337" alt="Provider Logos" class="d-md-none" width="600" height="262" style="max-width:100%;height:auto;"> 2855 </div> 2856 2857 <div class="footer-meta"><article class="article-content"> 2858 2859<h1>BBNI4D - Link Alternatif Resmi Slot Online Mudah Masuk Depo Cepat 2026</h1> 2860 2861<p> 2862BBNI4D hadir sebagai platform yang menyediakan <strong>link alternatif resmi</strong> dengan akses cepat, sistem yang stabil, dan tampilan modern untuk memberikan pengalaman penggunaan yang lebih nyaman. Seiring meningkatnya kebutuhan akan akses website yang cepat dan responsif, BBNI4D terus melakukan pembaruan pada infrastruktur server agar pengguna dapat mengakses layanan tanpa mengalami hambatan. Melalui link alternatif resmi yang selalu diperbarui, pengguna tetap dapat masuk ke website dengan mudah ketika domain utama mengalami kendala teknis maupun proses pemeliharaan sistem. 2863</p> 2864 2865<p> 2866Kemudahan akses menjadi salah satu prioritas utama BBNI4D. Website telah dirancang menggunakan teknologi modern sehingga mampu memberikan waktu muat halaman yang lebih singkat pada berbagai perangkat. Baik melalui komputer, laptop, tablet, maupun smartphone, seluruh fitur dapat digunakan secara optimal tanpa mengurangi kenyamanan pengguna. Desain antarmuka yang sederhana juga membantu pengguna baru memahami setiap menu dengan lebih mudah sehingga proses login maupun navigasi dapat dilakukan hanya dalam bebera
2866pa langkah. 2867</p> 2868 2869 2870 2871<h2>Link Alternatif Resmi BBNI4D yang Mudah Diakses</h2> 2872 2873<p> 2874Link alternatif menjadi solusi terbaik ketika domain utama mengalami gangguan atau tidak dapat 2875diakses karena berbagai faktor. Oleh sebab itu, BBNI4D selalu menyediakan jalur akses resmi 2876yang diperbarui secara berkala agar seluruh pengguna tetap dapat login dengan mudah tanpa 2877mengalami kendala teknis. 2878</p> 2879 2880<p> 2881Seluruh link alternatif dirancang menggunakan infrastruktur server yang stabil sehingga mampu 2882memberikan pengalaman akses yang cepat dari berbagai wilayah. Dengan begitu, pengguna tidak 2883perlu mencari alamat website dari sumber yang tidak jelas karena seluruh informasi resmi selalu 2884disediakan melalui jalur yang terpercaya. 2885</p> 2886 2887</section> 2888 2889<section> 2890 2891<h2>Keunggulan Menggunakan BBNI4D</h2> 2892 2893<p> 2894BBNI4D menghadirkan berbagai keunggulan yang dirancang untuk memberikan kenyamanan kepada 2895seluruh pengguna. Mulai dari proses login yang sederhana hingga sistem transaksi yang cepat, 2896setiap layanan terus dikembangkan mengikuti kebutuhan pengguna modern. 2897</p> 2898 2899<ul> 2900<li>Link alternatif resmi yang selalu diperbarui.</li> 2901<li>Akses website cepat dan stabil.</li> 2902<li>Tampilan modern serta responsif.</li> 2903<li>Dapat diakses melalui komputer maupun smartphone.</li> 2904<li>Sistem login yang mudah digunakan.</li> 2905<li>Customer Service online 24 jam.</li> 2906<li>Proses deposit dan penarikan lebih praktis.</li> 2907<li>Performa server yang optimal.</li> 2908</ul> 2909 2910</section> 2911 2912<section> 2913 2914<h2>Pengalaman Bermain yang Lebih Nyaman</h2> 2915 2916<p> 2917Pengalaman pengguna menjadi prioritas utama BBNI4D. Seluruh tampilan website dibuat sederhana, 2918modern, dan mudah dipahami sehingga pengguna baru sekalipun dapat langsung memahami cara
2919menggunakan setiap fitur yang tersedia. 2920</p> 2921 2922<p> 2923Kecepatan loading halaman juga menjadi perhatian utama. Optimalisasi server membuat proses 2924perpindahan menu terasa lebih cepat sehingga aktivitas pengguna tidak terganggu meskipun 2925mengakses website melalui perangkat seluler. 2926</p> 2927 2928<p> 2929Selain itu, desain responsif memungkinkan tampilan website tetap optimal pada berbagai ukuran 2930layar tanpa mengurangi kualitas maupun kenyamanan penggunaan. 2931</p> 2932 2933</section> 2934 2935<section> 2936 2937<h2>Proses Deposit Cepat dan Praktis</h2> 2938 2939<p> 2940BBNI4D menghadirkan sistem transaksi yang dirancang agar lebih efisien. Pengguna dapat 2941melakukan proses deposit maupun penarikan dengan langkah yang sederhana sehingga aktivitas 2942berjalan lebih nyaman. 2943</p> 2944 2945<ul> 2946<li>Proses deposit cepat.</li> 2947<li>Berbagai metode pembayaran.</li> 2948<li>Konfirmasi transaksi lebih singkat.</li> 2949<li>Layanan transaksi 24 jam.</li> 2950<li>Riwayat transaksi mudah dipantau.</li> 2951</ul> 2952 2953<p> 2954Dengan sistem transaksi yang stabil, pengguna tidak perlu menunggu terlalu lama ketika 2955melakukan proses pembayaran maupun pencairan saldo. 2956</p> 2957 2958</section> 2959 2960<section> 2961 2962<h2>Keamanan Menjadi Prioritas Utama</h2> 2963 2964<p> 2965Keamanan data pengguna merupakan salah satu fokus utama BBNI4D. Platform ini menggunakan 2966berbagai sistem perlindungan modern untuk membantu menjaga privasi dan keamanan informasi 2967pengguna selama mengakses website. 2968</p> 2969 2970<p> 2971Selain melakukan pembaruan sistem secara berkala, tim teknis juga terus memantau performa 2972server agar seluruh layanan tetap berjalan optimal. Dengan demikian, pengguna dapat menikmati 2973pengalaman yang lebih aman serta nyaman. 2974</p> 2975 2976</section> 2977 2978<section> 2979 2980<h2>Customer Service Online 24 Jam</h2> 2981 2982<p> 2983Layanan pelanggan tersedia selama 24 jam untuk membantu berbagai kebutuhan pengguna. 2984Mulai dari pertanyaan mengenai link alternatif terbaru, bantuan login, informasi transaksi, 2985hingga kendala teknis lainnya dapat ditangani dengan cepat oleh tim customer service yang 2986berpengalaman. 2987</p> 2988 2989<p> 2990Respon yang cepat menjadi salah satu keunggulan sehingga pengguna tidak perlu menunggu lama 2991untuk mendapatkan solusi atas kendala yang dialami. 2992</p> 2993 2994</section> 2995 2996<section> 2997 2998<h2>Kompatibel di Semua Perangkat</h2> 2999 3000<p> 3001BBNI4D telah dioptimalkan agar dapat berjalan dengan baik di berbagai perangkat dan sistem 3002operasi. Website tetap ringan serta responsif sehingga dapat digunakan kapan saja dan di mana 3003saja. 3004</p> 3005 3006<ul> 3007<li>Android</li> 3008<li>iPhone (iOS)</li> 3009<li>Windows</li> 3010<li>macOS</li> 3011<li>Tablet</li> 3012</ul> 3013 3014<p> 3015Selain itu, website juga mendukung browser modern seperti Google Chrome, Mozilla Firefox, 3016Microsoft Edge, Safari, dan browser berbasis Chromium lainnya. 3017</p> 3018 3019</section> 3020 3021<section> 3022 3023<h2>Tips Menggunakan Link Alternatif dengan Aman</h2> 3024 3025<p> 3026Untuk menjaga keamanan akun, pengguna disarankan mengikuti beberapa langkah berikut: 3027</p> 3028 3029<ul> 3030<li>Gunakan link alternatif resmi.</li> 3031<li>Jangan membagikan akun kepada orang lain.</li> 3032<li>Gunakan password yang kuat.</li> 3033<li>Logout setelah selesai menggunakan akun.</li> 3034<li>Pastikan perangkat bebas dari virus maupun malware.</li> 3035</ul> 3036 3037</section> 3038 3039<section> 3040 3041<h2>Kesimpulan</h2> 3042 3043<p> 3044BBNI4D hadir sebagai platform yang menyediakan link alternatif resmi dengan akses cepat, 3045server stabil, tampilan modern, serta proses transaksi yang praktis. Dukungan customer 3046service 24 jam, kompatibilitas di berbagai perangkat, serta pembaruan link secara berkala 3047menjadikan BBNI4D sebagai pilihan bagi pengguna yang mengutamakan kenyamanan dan kemudahan 3048akses. 3049</p> 3050 3051<p> 3052Dengan terus meningkatkan kualitas layanan, BBNI4D berkomitmen menghadirkan pengalaman 3053penggunaan yang lebih baik melalui sistem yang stabil, aman, dan mudah digunakan kapan saja. 3054Selalu gunakan link resmi dan lakukan aktivitas secara bijak sesuai ketentuan yang berlaku. 3055</p> 3056 3057</section> 3058 3059</article> 3060 3061<div class="floating-menu"> 3062 <button class="floating-menu-toggle" id="floatingMenuToggle" type="button"> 3063 <span class="bar"></span> 3064 <span class="bar"></span> 3065 <span class="bar"></span> 3066 <span>MENU</span> 3067 </button> 3068 3069 <div class="floating-menu-items" id="floatingMenuItems"> 3070 <div class="floating-item"> 3071 <a href="https://t.ly/rtpbbni4d"> 3072 <img src="https://bkbmindah.com/imgbanner/RTPSLOT.gif" alt="Informasi BBNI4D"> 3073 </a> 3074 <div class="nav-text">INFO</div> 3075 </div> 3076 3077 <div class="floating-item"> 3078 <a href="https://bonusbkbm.com/vip_point/"> 3079 <img src="https://bkbmindah.com/image/point.gif" alt="Program BBNI4D"> 3080 </a> 3081 <div class="nav-text">POINT</div> 3082 </div> 3083 3084 <div class="floating-item"> 3085 <a href="https://t.me/bkbmgroupjp/"> 3086 <img src="https://i.imgur.com/0FFROQh.gif" alt="Komunitas BBNI4D"> 3087 </a> 3088 <div class="nav-text">GROUP</div> 3089 </div> 3090 3091 <div class="floating-item"> 3092 <a href="https://docs.google.com/forms/d/e/1FAIpQLSdoGqUDrZ88dc7JtyltalKbt-iE4lehMTTwsBJSuMm7PQ5oEA/viewform?usp=sf_link"> 3093 <img src="https://bkbmindah.com/image/saran.gif" alt="Kritik dan Saran"> 3094 </a> 3095 <div class="nav-text">REPORT</div> 3096 </div> 3097 </div> 3098</div> 3099 3100<div class="wrapper-service" id="serviceBox"> 3101 <div class="item-service"> 3102 <h1>Akses</h1> 3103 <div class="status-wrapper"> 3104 <p>Rata-Rata</p> 3105 <p><span class="count-item">1</span> Menit</p> 3106 </div> 3107 </div> 3108 3109 <div class="item-service"> 3110 <h1>Respon</h1> 3111 <div class="status-wrapper"> 3112 <p>Rata-Rata</p> 3113 <p><span class="count-item">3</span> Menit</p> 3114 </div> 3115 </div> 3116 3117 <div class="item-service"> 3118 <h1>Pengguna Online</h1> 3119 <div class="status-wrapper-mem"> 3120 <p><span class="count-item" id="memberCount">0</span> User</p> 3121 </div> 3122 </div> 3123 3124 <div class="item-service"> 3125 <p style="text-align:center;">Ketik Di Google:</p> 3126 <div class="google-wrapper"> 3127 <img src="https://i.postimg.cc/wvpq3xNS/googlep2.png" alt="Google"> 3128 <p>
3128BBNI4D</p> 3129 </div> 3130 </div> 3131</div> 3132 3133<div id="popupOverlay" class="popup-overlay is-hidden"> 3134 <div class="popup-backdrop" id="popupBackdrop"></div> 3135 <div class="popup-card" id="popupCard"> 3136 <a href="https://t.me/+ZMZa8u0NNh80OTE1" target="_blank" rel="noopener"> 3137 <img src="https://imagebkbmxs.com/BBNI4D/bbni4dxsayapjp.png" alt="Banner BBNI4D"> 3138 </a> 3139 <button id="popupClose" type="button">CLOSE</button> 3140 </div> 3141</div> 3142 3143<a href="//www.dmca.com/Protection/Status.aspx?ID=85a59234-8a20-446a-ba1f-02bb757c2fef" title="DMCA.com Protection Status" class="dmca-badge"> 3144 <img src="https://images.dmca.com/Badges/dmca_protected_sml_120i.png?ID=85a59234-8a20-446a-ba1f-02bb757c2fef" alt="DMCA.com Protection Status"> 3145</a>
3146<script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"></script>
3146 3147<style> 3148.accent { 3149 color: #ED6530; 3150} 3151 3152.accent-link { 3153 color: #ED6530; 3154 text-decoration: none; 3155} 3156 3157.bbni4d-content h2, 3158.bbni4d-content h3 { 3159 line-height: 1.4; 3160} 3161 3162.bbni4d-content p, 3163.bbni4d-content li { 3164 line-height: 1.7; 3165} 3166 3167.logoimg { 3168 animation: zoomInOut 2s infinite; 3169} 3170 3171@keyframes zoomInOut { 3172 0% { transform: scale(1); } 3173 50% { transform: scale(1.1); } 3174 100% { transform: scale(1); } 3175} 3176 3177.bbni-alert { 3178 border: 3px solid #ff0000; 3179 border-radius: 5px; 3180 margin: 17px 60px -13px; 3181 background-color: #000000; 3182 padding: 10px; 3183} 3184 3185.bbni-alert-title { 3186 animation: blinkingText 1.5s infinite; 3187 margin: auto; 3188 display: block; 3189 color: #ff0000; 3190 text-align: center; 3191 font-size: 23px; 3192 font-weight: 700; 3193} 3194 3195.bbni-alert p { 3196 color: #ffffff; 3197 text-align: center; 3198 font-size: 15px; 3199 font-weight: bold; 3200} 3201 3202.bbni-alert-marquee { 3203 text-align: center; 3204 border: #ffffff solid 1px; 3205 background: #ff0000; 3206 color: #fff; 3207 margin: auto; 3208 font-size: 14px; 3209} 3210 3211@keyframes blinkingText { 3212 0% { opacity: 1; } 3213 50% { opacity: 0.4; } 3214 100% { opacity: 1; } 3215} 3216 3217.social-float { 3218 left: 0; 3219 width: 0; 3220 position: fixed; 3221 top: 111px; 3222 z-index: 9999999999; 3223} 3224 3225.social-float ul { 3226 padding: 0; 3227 transform: translate(-130px, 0); 3228} 3229 3230.social-float ul li { 3231 display: block; 3232 margin: 22px 6px 6px 0; 3233 background: rgba(0, 0, 0, 0.86); 3234 width: 189px; 3235 text-align: right; 3236 padding: 4px; 3237 border-radius: 0 20px 20px 0; 3238 transition: all 1s; 3239 height: 53px; 3240 border: groove 2px #ffffff; 3241 color: white; 3242} 3243 3244.social-float ul li:hover { 3245 transform: translate(110px, 0); 3246 background: rgba(95, 95, 95, 0.7); 3247} 3248 3249.social-float a { 3250 display: flex; 3251 align-items: center; 3252 justify-content: space-between; 3253 gap: 10px; 3254 text-decoration: none; 3255 color: #fff; 3256 width: 100%; 3257} 3258 3259.social-float img { 3260 width: 40px; 3261 height: 40px; 3262} 3263 3264.floating-menu { 3265 width: 90px; 3266 padding: 10px 10px 5px 0; 3267 position: fixed; 3268 bottom: 79px; 3269 left: 10px; 3270 z-index: 100; 3271 font-family: "Raleway", sans-serif; 3272 color: #fff; 3273 font-size: 14px; 3274 text-align: center; 3275} 3276 3277.floating-menu-toggle { 3278 display: block; 3279 cursor: pointer; 3280 padding: 10px; 3281 border-radius: 20%; 3282 box-shadow: 0 0 8px 2px #f15a23bb; 3283 background-color: #f15a23; 3284 width: 80px; 3285 margin: 0 auto; 3286 transition: all .7s ease; 3287 border: 0; 3288 color: #fff; 3289} 3290 3291.floating-menu-toggle .bar { 3292 display: block; 3293 height: 5px; 3294 width: 40px; 3295 background: #ffffff; 3296 margin: 6px auto; 3297} 3298 3299.floating-menu-items { 3300 display: none; 3301} 3302 3303.floating-menu-items.is-open { 3304 display: block; 3305} 3306 3307.floating-item { 3308 background: #f15a23; 3309 background-size: 300%; 3310 background-position: right; 3311 border-radius: 20%; 3312 box-shadow: #f15a23; 3313 width: 80px; 3314 margin: 5px auto; 3315 text-align: center; 3316 color: #fff; 3317 cursor: pointer; 3318 transition: .5s; 3319 border: solid 3px white; 3320 display: block; 3321 white-space: nowrap; 3322 font-family: "Raleway", sans-serif; 3323 padding: 10px 5px; 3324 font-size: 10px; 3325 text-transform: uppercase; 3326} 3327 3328.floating-item img { 3329 width: 40px; 3330 margin-bottom: 5px; 3331} 3332 3333.count-item { 3334 font-size: 1.8rem; 3335 background: #f15a23; 3336 padding: 0.3rem 0.5rem; 3337 color: #fff !important; 3338 border-radius: 10px; 3339 font-weight: bold; 3340} 3341 3342.wrapper-service { 3343 display: flex; 3344 align-items: center; 3345 flex-wrap: wrap; 3346 justify-content: center; 3347 border-radius: 10px; 3348 margin-top: 1.3rem; 3349 border: var(--result-border); 3350 padding: 0.8rem; 3351 background: #1b6d79; 3352} 3353 3354.status-wrapper, 3355.status-wrapper-mem { 3356 display: flex; 3357 align-items: center; 3358 justify-content: center; 3359} 3360 3361.status-wrapper p { 3362 margin-right: 0.6rem !important; 3363} 3364 3365.item-service { 3366 margin-right: 3rem; 3367} 3368 3369.item-service:last-child { 3370 margin-right: 0; 3371} 3372 3373.item-service h1 { 3374 font-size: 2.2rem; 3375 margin-top: 7px !important; 3376 text-transform: uppercase; 3377 font-weight: bold !important; 3378} 3379 3380.item-service p { 3381 color: #fff; 3382} 3383 3384.google-wrapper { 3385 background: #fff; 3386 padding: 1.7rem; 3387 width: 18rem; 3388 height: 0.5rem; 3389 border-radius: 10px; 3390 position: relative; 3391} 3392 3393.google-wrapper img { 3394 position: absolute; 3395 width: 2rem; 3396 top: 9px; 3397 left: 10px; 3398} 3399 3400.google-wrapper p { 3401 position: absolute; 3402 left: 3.4rem; 3403 top: 0.6rem; 3404 text-transform: uppercase; 3405 font-size: 1.50rem !important; 3406 font-weight: bold !important; 3407 color: #000 !important; 3408} 3409 3410.popup-overlay { 3411 position: fixed; 3412 inset: 0; 3413 display: flex; 3414 align-items: center; 3415 justify-content: center; 3416 z-index: 999999; 3417} 3418 3419.popup-overlay.is-hidden { 3420 display: none; 3421} 3422 3423.popup-backdrop { 3424 position: fixed; 3425 inset: 0; 3426 background: rgba(0, 0, 0, 0.96); 3427 z-index: 999998; 3428} 3429 3430.popup-card { 3431 position: relative; 3432 z-index: 999999; 3433 width: 60%; 3434 min-width: 315px; 3435 max-width: 390px; 3436 border-radius: 5px; 3437 overflow: hidden; 3438 animation: swirl-in-fwd 0.6s ease-out both; 3439 background: #000; 3440} 3441 3442.popup-card img { 3443 width: 100%; 3444 display: block; 3445} 3446 3447.popup-card button { 3448 width: 100%; 3449 padding: 12px; 3450 font-size: 22px; 3451 font-weight: 700; 3452 border: 0; 3453 background: #f15a23; 3454 color: #fff; 3455 cursor: pointer; 3456} 3457 3458.popup-card.is-closing { 3459 animation: swirl-out-bck 0.6s ease-in both; 3460} 3461 3462.popup-backdrop.is-closing { 3463 animation: fade-out 0.6s ease-out both; 3464} 3465 3466@keyframes swirl-in-fwd { 3467 0% { 3468 transform: rotate(0deg) scale(0); 3469 opacity: 0; 3470 } 3471 100% { 3472 transform: rotate(0) scale(1); 3473 opacity: 1;
3474 } 3475} 3476 3477@keyframes swirl-out-bck { 3478 0% { 3479 transform: rotate(0) scale(1); 3480 opacity: 1; 3481 } 3482 100% { 3483 transform: rotate(0deg) scale(0); 3484 opacity: 0; 3485 } 3486} 3487 3488@keyframes fade-out { 3489 0% { opacity: 1; } 3490 100% { opacity: 0; } 3491} 3492 3493</style>
3494<script> 3495document.addEventListener('DOMContentLoaded', function () { 3496 const floatingMenuToggle = document.getElementById('floatingMenuToggle'); 3497 const floatingMenuItems = document.getElementById('floatingMenuItems'); 3498 const memberCount = document.getElementById('memberCount'); 3499 3500 if (floatingMenuToggle && floatingMenuItems) { 3501 floatingMenuToggle.addEventListener('click', function () { 3502 floatingMenuItems.classList.toggle('is-open'); 3503 }); 3504 } 3505 3506 if (memberCount) { 3507 const min = 1254983; 3508 const max = 1846354; 3509 const randomUsers = Math.floor(Math.random() * (max - min + 1)) + min; 3510 memberCount.textContent = randomUsers; 3511 } 3512 3513 const popupOverlay = document.getElementById('popupOverlay'); 3514 const popupCard = document.getElementById('popupCard'); 3515 const popupBackdrop = document.getElementById('popupBackdrop'); 3516 const popupClose = document.getElementById('popupClose'); 3517 3518 function closePopup() { 3519 if (!popupOverlay || !popupCard || !popupBackdrop) return; 3520 3521 popupCard.classList.add('is-closing'); 3522 popupBackdrop.classList.add('is-closing'); 3523 3524 setTimeout(function () { 3525 popupOverlay.classList.add('is-hidden'); 3526 }, 600); 3527 } 3528 3529 if (window.location.pathname === '/' && popupOverlay) { 3530 popupOverlay.classList.remove('is-hidden'); 3531 } 3532 3533 if (popupClose) { 3534 popupClose.addEventListener('click', closePopup); 3535 } 3536 3537 if (popupBackdrop) { 3538 popupBackdrop.addEventListener('click', closePopup); 3539 } 3540}); 3541</script>
3541 3542</div> 3543 3544 3545 <!-- LIVE CHAT --> 3546 3547 3548 <!-- LiveChat Internal --> 3549 <style id="cs-embed-custom-styles"> 3550 /* Generated widget appearance — theme: light */ 3551.cs-embed { 3552 --cs-primary: #008080; 3553 --cs-secondary: #b2d8d8; 3554 --cs-panel-width: 360px; 3555 --cs-panel-height: 600px; 3556 --cs-footer-bg: #fff; 3557 --cs-footer-border: #f1f5f9; 3558 --cs-input-row-bg: #f1f5f9; 3559 --cs-input-text: #111827; 3560 --cs-input-muted: #64748b; 3561 --cs-upload-bg: #fff; 3562 --cs-upload-border: #cbd5e1; 3563 --cs-upload-icon: #334155; 3564 --cs-image-preview-bg: #eff6ff; 3565 --cs-image-preview-border: #dbeafe; 3566 --cs-closed-notice: #9ca3af; 3567 --cs-scrollbar-track: #eef2f7; 3568 --cs-scrollbar-thumb: #cbd5e1; 3569 --cs-scrollbar-thumb-hover: #94a3b8; 3570 --cs-messages-bg: #f8fafc; 3571 --cs-sticky-banner-bg: #fffbeb; 3572 --cs-sticky-banner-border: #fde68a; 3573 --cs-sticky-banner-inner-bg: #fff; 3574 --cs-sticky-banner-inner-border: #fde68a; 3575 --cs-sticky-banner-text: #92400e; 3576 right: 24px; left: auto; align-items: flex-end; 3577} 3578 3579.cs-embed .cs-panel { 3580 background: #fff; 3581 color: #111827; 3582} 3583 3584.cs-embed .cs-bubble--agent { 3585 background: #fff; 3586 color: #111; 3587 border-color: #e5e7eb; 3588} 3589 3590.cs-toggle:not(.cs-toggle--banner) { 3591 background: var(--cs-primary); 3592 box-shadow: 0 4px 12px rgba(0, 128, 128, 0.4); 3593} 3594 3595.cs-header { 3596 background: linear-gradient(135deg, #008080, #b2d8d8); 3597} 3598 3599.cs-bubble--customer { 3600 background: #008080; 3601 color: #ffffff; 3602} </style> 3603
3603<script src="https://service.lc1001ai.com/embed.js"></script>
3603 3604
3604<script> 3605 (function () { 3606 var chatServiceUrl = "https://service.lc1001ai.com"; 3607 var channelId = "6a3dfc0e179b8ad92725e82b"; 3608 var credentials = ""; 3609 var showWidget = true; 3610 window.CsChatEmbed 3611 .init({ 3612 chatServiceUrl: chatServiceUrl, 3613 channelId: channelId, 3614 credentials: credentials, 3615 createWidget: true, 3616 showWidget: showWidget, 3617 fetchAppearance: false, 3618 }) 3619 .then(function (result) { 3620 console.log("Chat connected, sessionId:", result.sessionId); 3621 }) 3622 .catch(function (err) { 3623 console.error("Chat init failed:", err); 3624 }); 3625 })(); 3626 </script>
3626 3627 3628 <div class="footer-group"> 3629 3630 <div class="footer-copyright"> 3631 <div style="white-space:nowrap"> 3632 © 2015 – 2026 Copyright BBNI4D. 3633 All Rights Reserved. 3634 </div> 3635 </div> 3636 3637 <div class="footer-wap-btn" onclick='window.location.href="/wap"'>WAP</div> 3638 3639 </div> 3640 3641</div> 3642</footer> <nav class="navbar fixed-bottom p-0 d-md-none" style="z-index:10000"> 3643 <div class="container-fluid px-0"> 3644 <div style="display:grid;grid-template-columns:repeat(4,1fr);width:100%;"> 3645 3646 3647 <a href="/home" onclick="openPage('home',this); window.scrollTo({top:0,behavior:'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="home"> 3648 <i class="bi bi-house-fill" style="font-size:20px;"></i> 3649 <small>Home</small> 3650 </a> 3651 3652 <a href="/promosi" onclick="openPage('promosi',this); $('#content').get(0).scrollIntoView({behavior: 'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="promosi"> 3653 <i class="bi bi-gift-fill" style="font-size:20px;"></i> 3654 <small>Promosi</small> 3655 </a> 3656 3657 <a href="/event" onclick="openPage('event',this); $('#content').get(0).scrollIntoView({behavior: 'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="event"> 3658 <i class="bi bi-calendar-event-fill" style="font-size:20px;"></i> 3659 <small>Event</small> 3660 </a> 3661 3662 <div class="chat-dial-wrap bottom-menu d-flex flex-column justify-content-around align-items-center py-2" style="position:relative;"> 3663 <a href="javascript:void(0)" onclick="toggleChatDial(event)" class="text-decoration-none d-flex flex-column justify-content-around align-items-center" style="color:inherit;"> 3664 <img src="https://img.viva88athenae.com/navbar/chat_w.png?v=1790436337" alt="" style="width:20px;height:20px;object-fit:contain;"> 3665 <small>Chat</small> 3666 </a> 3667 <div class="chat-dial-list" id="chatDialList"> 3668 <a href="https://t.me/OFFICIALBBNI4D" target="_blank" class="chat-dial-item" title="Telegram"> 3669 <img src="https://img.viva88athenae.com/telegram.png?v=1790436337" alt="Telegram"> 3670 </a> 3671 <a href="javascript:void(0)" onclick="window.CsChatEmbed.openChat(); return false;" class="chat-dial-item chat-dial-livechat" title="Livechat"> 3672 <img src="https://img.viva88athenae.com/navbar/livechat_w.png?v=1790436337" alt="Livechat"> 3673 </a> 3674 </div> 3675 </div> 3676 3677 3678 </div> 3679 </div> 3680</nav> 3681
3682<script> 3683 function toggleChatDial(e) { 3684 e.stopPropagation(); 3685 document.getElementById('chatDialList').classList.toggle('open'); 3686 } 3687 document.addEventListener('click', function (e) { 3688 var list = document.getElementById('chatDialList'); 3689 if (!list) return; 3690 // close when clicking outside, or after picking any dial item (livechat included) 3691 if (!e.target.closest('.chat-dial-wrap') || e.target.closest('.chat-dial-item')) { 3692 list.classList.remove('open'); 3693 } 3694 }); 3695</script>
3695 3696 3697 <div class="offcanvas offcanvas-end w-100" tabindex="-1" id="offcanvasExample"> 3698 3699 <div class="offcanvas-body p-0"> 3700 3701 <div class="d-grid gap-2 mt-2 px-3 offcanvas-user-menu"> 3702 <button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=statement','#content',null);closeDesktopUserMenu()"> 3703 <i class="bi bi-bar-chart-fill me-2 accent-text-color"></i> Statement 3704</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=history','#content',null);closeDesktopUserMenu()"> 3705 <i class="bi bi-clock-fill me-2 accent-text-color"></i> History 3706</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=memo','#content',null);closeDesktopUserMenu()"> 3707 <i class="bi bi-envelope-fill me-2 accent-text-color"></i> Memo 3708</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=referral','#content',null);closeDesktopUserMenu()"> 3709 <i class="bi bi-people-fill me-2 accent-text-color"></i> Referral 3710</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=password','#content',null);closeDesktopUserMenu()"> 3711 <i class="bi bi-lock-fill me-2 accent-text-color"></i> Ubah Password 3712</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="modal('/transaksi.php?content=rekening');closeDesktopUserMenu()"> 3713 <i class="bi bi-wallet-fill me-2 accent-text-color"></i> Rekening 3714</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('/downloads/app/BNI4D.apk','_blank')"> 3715 <div class="d-flex align-items-center px-3"> 3716 <i class="bi bi-android2 me-2 accent-text-color"></i> Download App 3717 </div> 3718 <img src="/images/new/btn-android.png" class="btn-menu-img" alt="" width="171" height="55"> 3719</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('https://telegram.me/BBNI4D_bot','_blank')"> 3720 <div class="d-flex align-items-center px-3"> 3721 <i class="bi bi-send-fill me-2 accent-text-color"></i> Bet Via Telegram 3722 </div> 3723 <img src="/images/new/btn-telegram.png" class="btn-menu-img" alt="" width="171" height="55"> 3724</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="fetch('/api/front/logout',{method:'POST'}).then(()=>window.location.href='/index.php')"> 3725 <i class="bi bi-door-open-fill me-2 accent-text-color"></i> Logout 3726</button> </div> 3727 3728 </div> 3729 </div> 3730 3731 <div id="desktopUserDropdown" class="desktop-user-dropdown"> 3732 <div class="d-grid"> 3733 <button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=statement','#content',null);closeDesktopUserMenu()"> 3734 <i class="bi bi-bar-chart-fill me-2 accent-text-color"></i> Statement 3735</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=history','#content',null);closeDesktopUserMenu()"> 3736 <i class="bi bi-clock-fill me-2 accent-text-color"></i> History 3737</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=memo','#content',null);closeDesktopUserMenu()"> 3738 <i class="bi bi-envelope-fill me-2 accent-text-color"></i> Memo 3739</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=referral','#content',null);closeDesktopUserMenu()"> 3740 <i class="bi bi-people-fill me-2 accent-text-color"></i> Referral 3741</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=password','#content',null);closeDesktopUserMenu()"> 3742 <i class="bi bi-lock-fill me-2 accent-text-color"></i> Ubah Password 3743</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="modal('/transaksi.php?content=rekening');closeDesktopUserMenu()"> 3744 <i class="bi bi-wallet-fill me-2 accent-text-color"></i> Rekening 3745</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('/downloads/app/BNI4D.apk','_blank')"> 3746 <div class="d-flex align-items-center px-3"> 3747 <i class="bi bi-android2 me-2 accent-text-color"></i> Download App 3748 </div> 3749 <img src="/images/new/btn-android.png" class="btn-menu-img" alt="" width="171" height="55"> 3750</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('https://telegram.me/BBNI4D_bot','_blank')"> 3751 <div class="d-flex align-items-center px-3"> 3752 <i class="bi bi-send-fill me-2 accent-text-color"></i> Bet Via Telegram 3753 </div> 3754 <img src="/images/new/btn-telegram.png" class="btn-menu-img" alt="" width="171" height="55"> 3755</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="fetch('/api/front/logout',{method:'POST'}).then(()=>window.location.href='/index.php')"> 3756 <i class="bi bi-door-open-fill me-2 accent-text-color"></i> Logout 3757</button> </div> 3758 </div> 3759 3760
3760<script src="/js/new/vendor/bootstrap.bundle.min.js?v=1790436337"></script>
3760 3761
3761<script src="/js/new/main.js?v=1790436337"></script>
3761 3762 3763
3763<script> 3764 window.JT_SSR_PATH = null; 3765 setTimeout(function() { 3766 const mobileForm = document.querySelector('#mobilelogin form') || 3767 document.querySelector('#mobilelogin .login-form') || 3768 document.querySelector('.mobile-only form'); 3769 3770 if (!mobileForm) { 3771 return; 3772 } 3773 3774 const username = mobileForm.querySelector('input[name="username"]'); 3775 const password = mobileForm.querySelector('input[name="password"]'); 3776 const remember = document.querySelector('#rememberMe') || 3777 document.querySelector('input[type="checkbox"]'); 3778 3779 if (!username || !password || !remember) { 3780 return; 3781 } 3782 3783 3784 3785 try { 3786 localStorage.setItem('test', 'working'); 3787 if (localStorage.getItem('test') === 'working') { 3788 localStorage.removeItem('test'); 3789 } else { 3790 return; 3791 } 3792 } catch(e) { 3793 return; 3794 } 3795 3796 initializeRememberMe(); 3797 loadSavedData(); 3798 3799 mobileForm.addEventListener('submit', handleSave); 3800 mobileForm.addEventListener('click', function(e) { 3801 if (e.target.type === 'submit' || e.target.classList.contains('submit')) { 3802 handleSave(); 3803 } 3804 }); 3805 remember.addEventListener('change', function() { 3806 if (!this.checked) { 3807 clearSavedData(); 3808 localStorage.setItem('mobile_remember_unchecked', 'true'); 3809 } else { 3810 localStorage.removeItem('mobile_remember_unchecked'); 3811 } 3812 }); 3813 3814 function initializeRememberMe() { 3815 try { 3816 const wasUnchecked = localStorage.getItem('mobile_remember_unchecked'); 3817 const hasSuccessfulLogin = localStorage.getItem('mobile_login_success'); 3818 if (wasUnchecked === 'true' && hasSuccessfulLogin === 'true') { 3819 remember.checked = false; 3820 } else { 3821 remember.checked = true; 3822 } 3823 } catch(e) { 3824 remember.checked = true; 3825 } 3826 } 3827 3828 function loadSavedData() { 3829 try { 3830 3831 const savedUsername = localStorage.getItem('mobile_username'); 3832 const savedPassword = localStorage.getItem('mobile_password'); 3833 3834 3835 3836 const rememberChecked = localStorage.getItem('mobile_remember'); 3837 if (rememberChecked === 'true' && savedUsername && savedPassword) { 3838 username.value = savedUsername; 3839 password.value = savedPassword; 3840 } 3841 } catch(e) { 3842 // console.log('Error loading data:', e); 3843 } 3844 } 3845 3846 function handleSave() { 3847 if (remember.checked) { 3848 const usernameVal = username.value.trim(); 3849 const passwordVal = password.value.trim(); 3850 3851 if (usernameVal && passwordVal) { 3852 try { 3853 localStorage.setItem('mobile_username', usernameVal); 3854 localStorage.setItem('mobile_password', passwordVal); 3855 localStorage.setItem('mobile_remember', 'true'); 3856 localStorage.setItem('mobile_login_success', 'true'); 3857 } catch(e) { 3858 // console.log('Error saving data:', e); 3859 } 3860 } 3861 } else { 3862 clearSavedData(); 3863 localStorage.setItem('mobile_login_success', 'true'); 3864 } 3865 } 3866 3867 function clearSavedData() { 3868 try { 3869 localStorage.removeItem('mobile_username'); 3870 localStorage.removeItem('mobile_password'); 3871 localStorage.removeItem('mobile_remember'); 3872 } catch(e) { 3873 // console.log('Error clearing data:', e); 3874 } 3875 } 3876 }, 100); // Wait 100ms 3877 </script>
3877 3878 3879
3879<script> 3880 var JT_GUEST_MAP = { 3881 '': '/' + 'home' + '.php', 3882 'home': '/' + 'home' + '.php', 3883 'togel': '/togel.php', 3884 'kupon': '/kupon.php', 3885 'promosi': '/' + 'promosi' + '.php', 3886 'event': '/' + 'event' + '.php', 3887 'register': '/' + 'register' + '.php', 3888 'slot': '/game.php?content=slot', 3889 'casino': '/game.php?content=casino', 3890 'sport': '/' + 'game' + '.php?' + 'content=sport', 3891 'sabung': '/' + 'game' + '.php?' + 'content=sabung', 3892 'arcade': '/game.php?content=arcade', 3893 'interactive': '/game.php?content=interactive', 3894 }; 3895 3896 if (window.matchMedia("(max-width: 768px)").matches) { 3897 JT_GUEST_MAP.register = '/' + 'mregister' + '.php'; 3898 } 3899 3900 var JT_URL_PREFIX = ""; 3901 3902 function jtGuestAjaxPathFromLocation() { 3903 var re = new RegExp('^' + (JT_URL_PREFIX ? JT_URL_PREFIX.replace(/\//g, '\\/') : '') + '\\/([^/?#]*)'); 3904 var match = location.pathname.match(re); 3905 var slug = match ? match[1] : ''; 3906 return JT_GUEST_MAP[slug] || '/home.php'; 3907 } 3908 3909 function jtGuestUrlForPath(path) { 3910 var gameMatch = path.match(/^\/game\.php\?content=([a-z]+)/); 3911 if (gameMatch) return JT_URL_PREFIX + '/' + gameMatch[1]; 3912 for (var slug in JT_GUEST_MAP) { 3913 if (JT_GUEST_MAP[slug] === path) { 3914 return slug === '' ? JT_URL_PREFIX + '/' : JT_URL_PREFIX + '/' + slug; 3915 } 3916 } 3917 return null; 3918 } 3919 3920 function jtUpdateBrowserUrl(path) { 3921 var cleanUrl = jtGuestUrlForPath(path); 3922 if (cleanUrl && window.history) { 3923 history.pushState({ path: path }, '', cleanUrl); 3924 } 3925 } 3926 3927 var _initGuestPath = jtGuestAjaxPathFromLocation(); 3928 history.replaceState({ path: _initGuestPath }, '', location.href); 3929 3930 function initGuestShell() { 3931 var path = jtGuestAjaxPathFromLocation(); 3932 var homeMenu = path === '/home.php' 3933 ? (window.innerWidth >= 768 3934 ? document.querySelector('.desktop-nav-link[data-nav="home"]') 3935 : document.querySelector('#lobbyMenuWrap .lobby-menu[data-nav="home"]')) 3936 : null; 3937 3938 // Skip AJAX jika home sudah di-SSR. 3939 if (window.JT_SSR_PATH && window.JT_SSR_PATH === path) { 3940 $('.lobby-menu, .desktop-nav-link').removeClass('active'); 3941 if (homeMenu) $(homeMenu).addClass('active'); 3942 if (typeof waitForCss === 'function') waitForCss(ASYNC_CSS_IDS); 3943 return; 3944 } 3945 3946 content(path, '#content', homeMenu, true); 3947 } 3948 3949 window.addEventListener('popstate', function (e) { 3950 var path = e.state && e.state.path; 3951 if (path) content(path, '#content', null, true); 3952 }); 3953 3954 // Heartbeat 60 detik — cek maintenance mode diaktifkan admin saat guest lagi buka web 3955 setInterval(function () { 3956 fetch('/api/front/maintenance-status') 3957 .then(function (r) { return r.json(); }) 3958 .then(function (res) { 3959 if (res.data && res.data.maintenance) { 3960 window.location.href = '/maintenance'; 3961 } 3962 }) 3963 .catch(function () {}); 3964 }, 60000); 3965 3966 $('#modal').on('hidden.bs.modal', function () { 3967 $('.navbar.fixed-bottom').css('z-index', '9999'); 3968 }); 3969 3970 function syncOffcanvasBounds() { 3971 if (window.innerWidth >= 768) return; 3972 3973 var topNav = document.querySelector('nav.navbar.d-md-none:not(.fixed-bottom)'); 3974 var bottomNav = document.querySelector('nav.navbar.fixed-bottom'); 3975 var top = topNav ? Math.round(topNav.getBoundingClientRect().bottom) : 56; 3976 var bottom = bottomNav 3977 ? Math.round(window.innerHeight - bottomNav.getBoundingClientRect().top) 3978 : 58; 3979 // navbar atas bukan fixed: kalau halaman ter-scroll (mis. setelah 3980 // buka menu Statement/History/dll lewat content()), rect.bottom bisa 3981 // negatif dan bikin sisi atas offcanvas + backdrop kepotong. 3982 top = Math.max(0, top); 3983 bottom = Math.max(0, bottom); 3984 3985 document.documentElement.style.setProperty('--offcanvas-top', top + 'px'); 3986 document.documentElement.style.setProperty('--offcanvas-bottom', bottom + 'px'); 3987 } 3988 3989 document.addEventListener('DOMContentLoaded', syncOffcanvasBounds); 3990 window.addEventListener('resize', syncOffcanvasBounds); 3991 3992 $('#offcanvasExample').on('show.bs.offcanvas', function () { 3993 syncOffcanvasBounds(); 3994 $('#providerBackdrop, #providerOverlay').remove(); 3995 var modalInst = bootstrap.Modal.getInstance(document.getElementById('modal')); 3996 if (modalInst) modalInst.hide(); 3997 }); 3998 3999 /* ── Nav horizontal scroll (desktop) ───────────────────────────── */ 4000 (function () { 4001 var navEl = document.querySelector('.desktop-mainnav .ms-auto'); 4002 if (!navEl) return; 4003 4004 /* mouse-wheel → horizontal scroll */ 4005 navEl.addEventListener('wheel', function (e) { 4006 if (e.deltaY !== 0) { 4007 e.preventDefault(); 4008 navEl.scrollLeft += e.deltaY; 4009 } 4010 }, { passive: false }); 4011 4012 /* scroll arrow buttons */ 4013 var btnL = document.createElement('button'); 4014 var btnR = document.createElement('button');
4015 [btnL, btnR].forEach(function (b) { 4016 b.style.cssText = 'position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:var(--primary-background-color);border:1px solid var(--border-color);color:var(--primary-text-color);width:28px;height:40px;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;border-radius:4px;'; 4017 }); 4018 btnL.innerHTML = '‹'; 4019 btnR.innerHTML = '›'; 4020 btnL.style.fontSize = btnR.style.fontSize = '20px'; 4021 4022 var nav = document.querySelector('.desktop-mainnav'); 4023 if (nav) { 4024 nav.style.position = 'relative'; 4025 nav.appendChild(btnL); 4026 nav.appendChild(btnR); 4027 } 4028 4029 function placeArrows() { 4030 var navRect = nav ? nav.getBoundingClientRect() : null; 4031 var logoEl = nav ? nav.querySelector('.navbar-brand') : null; 4032 var logoRight = logoEl ? logoEl.getBoundingClientRect().right : 0; 4033 btnL.style.left = (logoRight - (navRect ? navRect.left : 0) + 4) + 'px'; 4034 btnR.style.right = '4px'; 4035 } 4036 4037 function updateArrows() { 4038 placeArrows(); 4039 var canL = navEl.scrollLeft > 0; 4040 var canR = navEl.scrollLeft < navEl.scrollWidth - navEl.clientWidth - 1; 4041 btnL.style.display = canL ? 'flex' : 'none'; 4042 btnR.style.display = canR ? 'flex' : 'none'; 4043 } 4044 4045 var scrollTimer; 4046 function scrollBy(dir) { 4047 scrollTimer = setInterval(function () { navEl.scrollLeft += dir * 8; }, 16); 4048 } 4049 btnL.addEventListener('mousedown', function () { scrollBy(-1); }); 4050 btnR.addEventListener('mousedown', function () { scrollBy(1); }); 4051 document.addEventListener('mouseup', function () { clearInterval(scrollTimer); }); 4052 4053 navEl.addEventListener('scroll', updateArrows); 4054 window.addEventListener('resize', updateArrows); 4055 updateArrows(); 4056 })(); 4057 4058 function toggleDesktopUserMenu(e) { 4059 e.stopPropagation(); 4060 document.getElementById('desktopUserDropdown').classList.toggle('open'); 4061 } 4062 function closeDesktopUserMenu() { 4063 var d = document.getElementById('desktopUserDropdown'); 4064 if (d) d.classList.remove('open'); 4065 } 4066 document.addEventListener('click', function(e) { 4067 if (!e.target.closest('#desktopUserDropdown')) closeDesktopUserMenu(); 4068 if (!e.target.closest('.tpl-picker-wrap')) { 4069 var dd = document.getElementById('tplPickerDd'); 4070 if (dd) dd.classList.remove('open'); 4071 } 4072 }); 4073 4074 function toggleTplPicker(e) { 4075 e.stopPropagation(); 4076 closeDesktopUserMenu(); 4077 document.getElementById('tplPickerDd').classList.toggle('open'); 4078 } 4079 4080 4081 (function() { 4082 var days = ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu']; 4083 var daysShort = ['Min','Sen','Sel','Rab','Kam','Jum','Sab']; 4084 var p = n => String(n).padStart(2,'0'); 4085 function updateClock() { 4086 var now = new Date(); 4087 var isMobile = window.innerWidth < 768; 4088 var dayName = isMobile ? daysShort[now.getDay()] : days[now.getDay()]; 4089 var text = dayName + ' ' + p(now.getDate()) + '/' + p(now.getMonth()+1) + '/' + now.getFullYear(); 4090 if (!isMobile) text += ' ' + p(now.getHours()) + ':' + p(now.getMinutes()) + ':' + p(now.getSeconds()); 4091 var el = document.getElementById('datetime'); 4092 if (el) el.textContent = text; 4093 } 4094 updateClock(); 4095 setInterval(updateClock, 1000); 4096 })(); 4097 4098 (function () { 4099 var runner = document.getElementById('marqueeRunner'); 4100 var container = runner ? runner.closest('.marquee-text') : null; 4101 var resizeTimer; 4102 var SPEED = 100; 4103 4104 function initMarquee() { 4105 if (!runner || !container) return; 4106 var cW = container.offsetWidth; 4107 var tW = runner.offsetWidth; 4108 var dur = ((cW + tW) / SPEED).toFixed(2); 4109 runner.style.setProperty('--mq-start', cW + 'px');
4110 runner.style.animation = 'none'; 4111 requestAnimationFrame(function () { 4112 requestAnimationFrame(function () { 4113 runner.style.animation = 'mq-scroll ' + dur + 's linear infinite'; 4114 }); 4115 }); 4116 } 4117 4118 requestAnimationFrame(function () { requestAnimationFrame(initMarquee); }); 4119 4120 document.addEventListener('visibilitychange', function () { 4121 if (!document.hidden) initMarquee(); 4122 }); 4123 4124 window.addEventListener('resize', function () { 4125 clearTimeout(resizeTimer); 4126 resizeTimer = setTimeout(function () { 4127 initMarquee(); 4128 positionProviderOverlay(); 4129 var isDesktop = window.innerWidth >= 768; 4130 if (isDesktop) { 4131 var oc = bootstrap.Offcanvas.getInstance(document.getElementById('offcanvasExample')); 4132 if (oc) oc.hide(); 4133 } else { 4134 closeDesktopUserMenu(); 4135 } 4136 }, 150); 4137 }); 4138 4139 window.addEventListener('orientationchange', function () { 4140 setTimeout(function () { initMarquee(); positionProviderOverlay(); }, 200); 4141 }); 4142 })(); 4143 </script>
4143 4144 4145 <!-- Auth --> 4146 4147
4147<script> 4148 4149$(document).on("click", "#desktopregister #buttonRegisterDesktop", function() 4150 { 4151 nocache = new Date().getTime().toString().slice(-3); 4152 4153 var ver = `<img src="capreg.php?${nocache}" width="100%" height="30" style="border:1px #999 solid;" alt="Kode verifikasi">`; 4154 var $form = $('#desktopregister #formRegister'); 4155 var $status = $('#desktopregister #statusRegister'); 4156 4157 if (typeof window.validateAllDesktop === 'function' && !window.validateAllDesktop()) { 4158 $('#desktopregister #statusRegister').removeClass().addClass('alert alert-sm alert-warning').text('Harap periksa data yang diisi').fadeIn(500); 4159 return false; 4160 } 4161 4162 $status.removeClass().addClass('alert alert-sm alert-success').text('Validating').fadeIn(1000); 4163 4164 function submitDesktopRegister() { 4165 4166 $.ajax({ 4167 url: "/api/front/register", 4168 type: "POST", 4169 data: $form.serialize(), 4170 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 4171 success: function(data) 4172 { 4173 4174 $('.is-invalid').removeClass('is-invalid'); 4175 4176 if (data == 'success') 4177 { 4178 4179 toast('Registrasi Sukses!, Selamat Bergabung.', 200); 4180 $status.removeClass().addClass('alert alert-sm alert-success').text('Registrasi Sukses!, Selamat Bergabung.').fadeIn(900); 4181 4182 window.location='/home?welcome'; 4183 } 4184 else 4185 if (data == 'userWrong') 4186 { 4187 $status.removeClass().addClass('alert alert-sm alert-warning').text('Username 6-16 karakter standar (A~Z, a~z, 0~9) dan tanpa spasi!').fadeIn(1000); 4188 $('#desktopregister #reg_username').addClass('is-invalid'); 4189 4190 } 4191 else 4192 if (data == 'passWrong') 4193 { 4194 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus 6 karakter atau lebih').fadeIn(1000); 4195 $('#desktopregister #reg_pass').addClass('is-invalid'); 4196 } 4197 else 4198 if (data == 'passSame') 4199 { 4200 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus sama dengan konfirmasi').fadeIn(1000); 4201 $('#desktopregister #reg_passcon').addClass('is-invalid'); 4202 } 4203 else 4204 if (data == 'bankEmpty') 4205 { 4206 $status.removeClass().addClass('alert alert-sm alert-warning').text('Bank harus diisi').fadeIn(1000); 4207 $('#desktopregister #reg_bank').addClass('is-invalid'); 4208 } 4209 else 4210 if (data == 'rekEmpty') 4211 { 4212 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nomor Rekening harus diisi dengan angka saja').fadeIn(1000); 4213 $('#desktopregister #reg_rek').addClass('is-invalid'); 4214 } 4215 else 4216 if (data == 'namaEmpty') 4217 { 4218 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama sesuai rekening harus diisi').fadeIn(1000); 4219 $('#desktopregister #reg_nama').addClass('is-invalid'); 4220 } 4221 else 4222 if (data == 'dbError') 4223 { 4224 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf ada masalah dengan registrasi').fadeIn(1000); 4225 } 4226 else 4227 if (data == 'userExist') 4228 { 4229 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf username tersebut sudah ada').fadeIn(1000); 4230 $('#desktopregister #reg_username').addClass('is-invalid'); 4231 } 4232 else 4233 if (data == 'rekExist') 4234 { 4235 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf no rekening tersebut sudah ada').fadeIn(1000); 4236 $('#desktopregister #reg_rek').addClass('is-invalid'); 4237 } 4238 else 4239 if (data == 'refError') 4240 { 4241 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf tidak ada referal tersebut, bila tidak punya referal, bisa kosongkan').fadeIn(1000); 4242 $('#desktopregister #reg_ref').addClass('is-invalid'); $('#desktopregister #reg_ref').removeAttr('readonly').val(''); 4243 } 4244 else 4245 if (data == 'emailError') 4246 { 4247 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf email tidak valid').fadeIn(1000); 4248 $('#desktopregister #reg_email').addClass('is-invalid'); 4249 } 4250 else 4251 if (data == 'telponEmpty') 4252 { 4253 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon t
4253idak boleh kosong').fadeIn(1000); 4254 $('#desktopregister #reg_telpon').addClass('is-invalid'); 4255 } 4256 else 4257 if (data == 'telponError') 4258 { 4259 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon tidak valid').fadeIn(1000); 4260 $('#desktopregister #reg_telpon').addClass('is-invalid'); 4261 } 4262 else if (data == 'namaError') { 4263 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama hanya boleh huruf dan spasi').fadeIn(1000); 4264 $('#desktopregister #reg_nama').addClass('is-invalid'); 4265 } 4266 else 4267 if (data == 'dariEmpty') 4268 { 4269 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf silakan dipilih dari mana anda tahu website kami').fadeIn(1000); 4270 $('#desktopregister #reg_dari').addClass('is-invalid'); 4271 } 4272 else 4273 if (data == 'lainEmpty') 4274 { 4275 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf mohon diisi kolom lain-lain').fadeIn(1000); 4276 $('#desktopregister #reg_lain').addClass('is-invalid'); 4277 } 4278 else 4279 if (data == 'caperror') 4280 { 4281 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf Verifikasi Salah').fadeIn(1000); 4282 $('#desktopregister #reg_verifikasi').addClass('is-invalid'); 4283 4284 } 4285 else 4286 if (data == 'recaperror') 4287 { 4288 $status.removeClass().addClass('alert alert-sm alert-warning').text('Recaptcha salah, coba lagi').fadeIn(1000); 4289 } 4290 else 4291 if (data == 'iperror') 4292 { 4293 $status.removeClass().addClass('alert alert-sm alert-warning').text('IP Tidak Sesuai').fadeIn(1000); 4294 } 4295 else 4296 if (data == 'capexp') 4297 { 4298 $status.removeClass().addClass('alert alert-sm alert-warning').text('Captcha Expired').fadeIn(1000); 4299 } 4300 else 4301 if (data == 'wait') 4302 { 4303 $status.removeClass().addClass('alert alert-sm alert-warning').text('Silahkan dicoba beberapa saat lagi').fadeIn(1000); 4304 } 4305 else 4306 if (data == 'turnnoevent') 4307 { 4308 window.location.reload(); 4309 } 4310 else 4311 if (data == 'turnblock') 4312 { 4313 $status.removeClass().addClass('alert alert-sm alert-warning').text('Insecure Device').fadeIn(1000); 4314 } 4315 else 4316 if (data.indexOf('passNotSafe|') === 0) 4317 { 4318 var msg = data.substring('passNotSafe|'.length); 4319 if (!msg) { 4320 msg = 'Password tidak aman! Gunakan password yang lebih kuat.'; 4321 } 4322 4323 $status 4324 .removeClass() 4325 .addClass('alert alert-sm alert-warning') 4326 .text(msg) 4327 .fadeIn(1000); 4328 4329 $('#desktopregister #reg_pass').addClass('is-invalid'); 4330 } 4331 4332 $('#desktopregister #capverifikasi').html(ver); 4333 4334 }}) 4335 .fail(function() { 4336 $status.removeClass().addClass('alert alert-sm alert-warning').text('Koneksi gagal, coba lagi').fadeIn(1000); 4337 $('#desktopregister #capverifikasi').html(ver); 4338 }); 4339 } 4340 4341 jtWithIframeCaptchaRegister($form, false, function () { 4342 jtWithTurnstileRegister($form, function () { 4343 jtWithRecaptchaRegisterToken($form, $status, submitDesktopRegister); 4344 }); 4345 }, function (msg) { 4346 $status.removeClass().addClass('alert alert-sm alert-warning').text(msg || 'Verifikasi Kosong').fadeIn(1000); 4347 }); 4348 return false; 4349}); 4350 </script>
4350 4351 4352
4352<script> 4353 4354 function onlyNumber(n) { 4355 return n.replace(/\D/g, ''); 4356 } 4357 4358 4359 $(document).on("keyup", "#mobileregister #reg_rek, #mobileregister #reg_telpon", function() 4360 { 4361 var rek = $(this).val(); 4362 rek = onlyNumber(rek); 4363 if (isNaN(rek)) rek = ''; 4364 $(this).val(rek); 4365 }); 4366 4367// 4368$(document).on("change", '#mobileregister #reg_dari', function() 4369 { 4370 inputdari = $('#mobileregister #reg_dari').val(); 4371 4372 if (inputdari == 'Lain-lain') 4373 { 4374 $('#mobileregister #reg_lain').show(); 4375 } 4376 else 4377 { 4378 $('#mobileregister #reg_lain').hide(); 4379 } 4380 }); 4381 4382 4383$(document).on("click", "#mobileregister #buttonRegister", function() 4384 { 4385 4386 nocache = new Date().getTime().toString().slice(-3); 4387 4388 var ver = `<img src=\"mcapreg.php?${nocache}\" width=\"100%\" style=\"height: 40px; width: 100%; border-radius: 5px;margin-top: -3px;\" alt=\"Kode verifikasi\">`; 4389 var $form = $('#mobileregister #formRegister'); 4390 var $status = $('#mobileregister #statusRegister'); 4391 $status.removeClass().addClass('alert alert-sm alert-success').text('Validating').fadeIn(1000); 4392 4393 function submitMobileRegister() { 4394 4395 4396 4397 $.ajax({ 4398 url: "/api/front/register", 4399 type: "POST", 4400 data: $form.serialize(), 4401 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 4402 success: function(data) 4403 { 4404 $('.is-invalid').removeClass('is-invalid'); 4405 4406 if (data == 'success') 4407 { 4408 4409 toast('Registrasi Sukses!, Selamat Bergabung.', 200); 4410 $status.removeClass().addClass('alert alert-sm alert-success').text('Registrasi Sukses!, Selamat Bergabung.').fadeIn(900); 4411 window.location='/home?welcome'; 4412 } 4413 else 4414 if (data == 'userWrong') 4415 { 4416 $status.removeClass().addClass('alert alert-sm alert-warning').text('Username 6-16 karakter standar (A~Z, a~z, 0~9) dan tanpa spasi!').fadeIn(1000); 4417 $('#mobileregister #reg_username').addClass('is-invalid'); 4418 } 4419 else 4420 if (data == 'passWrong') 4421 { 4422 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus 6 karakter atau lebih').fadeIn(1000); 4423 $('#mobileregister #reg_pass').addClass('is-invalid'); 4424 } 4425 else 4426 if (data == 'passSame') 4427 { 4428 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus sama dengan konfirmasi').fadeIn(1000); 4429 $('#mobileregister #reg_passcon').addClass('is-invalid'); 4430 } 4431 else 4432 if (data == 'bankEmpty') 4433 { 4434 $status.removeClass().addClass('alert alert-sm alert-warning').text('Bank harus diisi').fadeIn(1000); 4435 $('#mobileregister #reg_bank').addClass('is-invalid'); 4436 } 4437 else 4438 if (data == 'rekEmpty') 4439 { 4440 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nomor Rekening harus diisi dengan angka saja').fadeIn(1000); 4441 $('#mobileregister #reg_rek').addClass('is-invalid'); 4442 } 4443 else 4444 if (data == 'namaEmpty') 4445 { 4446 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama sesuai rekening harus diisi').fadeIn(1000); 4447 $('#mobileregister #reg_nama').addClass('is-invalid'); 4448 } 4449 else 4450 if (data == 'dbError') 4451 { 4452 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf ada masalah dengan registrasi').fadeIn(1000); 4453 } 4454 else 4455 if (data == 'userExist') 4456 { 4457 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf username tersebut sudah ada').fadeIn(1000); 4458 $('#mobileregister #reg_username').addClass('is-invalid'); 4459 } 4460 else 4461 if (data == 'rekExist') 4462 { 4463 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf no rekening tersebut sudah ada').fadeIn(1000); 4464 $('#mobileregister #reg_rek').addClass('is-invalid'); 4465 } 4466 else 4467 if (data == 'refError') 4468 { 4469 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf tidak ada referal tersebut').fadeIn(1000); 4470 $('#mobileregister #reg_ref').addClass('is-invalid'); 4471 } 4472 else 4473 if (data == 'emailError') 4474 { 4475 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf email tidak valid').fadeIn(1000); 4476 $('#mobileregister #reg_email').addClass('is-invalid'); 4477 } 4478 else 4479 if (data == 'telponEmpty') 4480 { 4481 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon t
4481idak boleh kosong').fadeIn(1000); 4482 $('#mobileregister #reg_telpon').addClass('is-invalid'); 4483 } 4484 else 4485 if (data == 'telponError') 4486 { 4487 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon tidak valid').fadeIn(1000); 4488 $('#mobileregister #reg_telpon').addClass('is-invalid'); 4489 } 4490 else if (data == 'namaError') { 4491 4492 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama hanya boleh huruf dan spasi').fadeIn(1000); 4493 $('#mobileregister #reg_nama').addClass('is-invalid'); 4494 } 4495 else 4496 if (data == 'dariEmpty') 4497 { 4498 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf silakan dipilih dari mana anda tahu website kami').fadeIn(1000); 4499 $('#mobileregister #reg_dari').addClass('is-invalid'); 4500 } 4501 else 4502 if (data == 'lainEmpty') 4503 { 4504 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf mohon diisi kolom lain-lain').fadeIn(1000); 4505 $('#mobileregister #reg_lain').addClass('is-invalid'); 4506 } 4507 else 4508 if (data == 'caperror') 4509 { 4510 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf Verifikasi Salah').fadeIn(1000); 4511 $('#mobileregister #reg_verifikasi').addClass('is-invalid'); 4512 4513 } 4514 else 4515 if (data == 'recaperror') 4516 { 4517 $status.removeClass().addClass('alert alert-sm alert-warning').text('Recaptcha salah, coba lagi').fadeIn(1000); 4518 } 4519 else 4520 if (data == 'iperror') 4521 { 4522 $status.removeClass().addClass('alert alert-sm alert-warning').text('IP Tidak Sesuai').fadeIn(1000); 4523 } 4524 else 4525 if (data == 'capexp') 4526 { 4527 $status.removeClass().addClass('alert alert-sm alert-warning').text('Captcha Expired').fadeIn(1000); 4528 } 4529 else 4530 if (data == 'wait') 4531 { 4532 $status.removeClass().addClass('alert alert-sm alert-warning').text('Silahkan dicoba beberapa saat lagi').fadeIn(1000); 4533 } 4534 else 4535 if (data == 'turnnoevent') 4536 { 4537 window.location.reload(); 4538 } 4539 else 4540 if (data == 'turnblock') 4541 { 4542 $status.removeClass().addClass('alert alert-sm alert-warning').text('Insecure Device').fadeIn(1000); 4543 } 4544 else 4545 if (data.indexOf('passNotSafe|') === 0) 4546 { 4547 var msg = data.substring('passNotSafe|'.length); 4548 if (!msg) { 4549 msg = 'Password tidak aman! Gunakan password yang lebih kuat.'; 4550 } 4551 4552 $status 4553 .removeClass() 4554 .addClass('alert alert-sm alert-warning') 4555 .text(msg) 4556 .fadeIn(1000); 4557 4558 $('#mobileregister #reg_pass').addClass('is-invalid'); 4559 } 4560 4561 $('#mobileregister #capverifikasi').html(ver); 4562 // ke('#mobileregister #content'); 4563 }}) 4564 .fail(function() { 4565 $status.removeClass().addClass('alert alert-sm alert-warning').text('Koneksi gagal, coba lagi').fadeIn(1000); 4566 $('#mobileregister #capverifikasi').html(ver); 4567 }); 4568 } 4569 4570 jtWithIframeCaptchaRegister($form, true, function () { 4571 jtWithTurnstileRegister($form, function () { 4572 jtWithRecaptchaRegisterToken($form, $status, submitMobileRegister); 4573 }); 4574 }, function (msg) { 4575 $status.removeClass().addClass('alert alert-sm alert-warning').text(msg || 'Verifikasi Kosong').fadeIn(1000); 4576 }); 4577 return false; 4578}); 4579 </script>
4579 4580 4581
4581<script> 4582 const currentPath = window.location.pathname.replace(/\/+$/, ''); 4583 const popupElement = document.getElementById('popup'); 4584 4585 if (currentPath === '/register') { 4586 document.getElementById('content')?.scrollIntoView(); 4587 } else if (popupElement && typeof bootstrap !== 'undefined') { 4588 const popupModal = bootstrap.Modal.getOrCreateInstance(popupElement); 4589 popupModal.show(); 4590 } 4591 </script>
4591 4592 4593
4593<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":"1df21b2f6c344e64866a2a95f162b905","r":1,"spa":2}' crossorigin="anonymous"></script>
4593 4594</body> 4595</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.