1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[558],{1996:(t,a,i)=>{Promise.resolve().then(i.bind(i,8812))},8812:(t,a,i)=>{"use strict";i.d(a,{default:()=>o});var r=i(5155),n=i(2115);let e=`<style id="filter-fix-v12"> 2.filter-container{display:inline-flex!important;align-items:center;gap:8px;text-align:left!important;white-space:nowrap} 3.filter-container label{color:#fff;font-size:13px;margin:0} 4.filter-container select{background:#2F3645!important;color:#fff!important;border:1px solid #3a3a50!important;font-size:13px!important;padding:6px 26px 6px 10px!important;border-radius:5px!important;min-width:110px} 5.filter-container select:hover{border-color:#fc0!important} 6.filter-container::after{content:"â¼"!important;color:#fc0!important;font-size:10px!important;right:10px!important} 7.filter-container option{background:#2F3645;color:#fff} 8.header-container{gap:10px;flex-wrap:wrap;padding:8px!important} 9.running-text{flex:1;min-width:0;background:#1a1a1a;border-radius:5px;padding:8px 14px!important;overflow:hidden;border:1px solid #333;margin-right:0!important;padding-right:14px!important} 10.running-text marquee{display:block} 11.logo-container>div[style*="gap:12px"]{background:rgba(0,0,0,.4);padding:5px 14px;border-radius:20px;border:1px solid #333;gap:0!important;font-size:11px} 12.live-badge{font-size:11px!important;color:#00e676!important;letter-spacing:.5px;padding:0!important} 13.live-badge::after{content:"â¢";color:#555;margin:0 8px} 14.rtp-update{display:inline-flex!important;align-items:center;font-size:11px!important;text-align:left!important;color:#fc0!important;gap:0!important;line-height:1!important} 15.rtp-update p{margin:0!important;padding:0!important;display:inline-flex;align-items:center;font-size:11px!important} 16.rtp-update p+p::before{content:"â¢";color:#555;margin:0 8px;font-weight:700} 17.logo-container{flex-wrap:wrap;gap:10px} 18.buttons-in-header{display:inline-flex!important;grid-template-columns:none!important;gap:8px!important;width:auto!important;margin:0!important} 19.buttons-in-header a{padding:12px 28px!important;font-size:14px!important;border-radius:6px!important;font-weight:800;letter-spacing:.5px;min-width:100px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.3)} 20.buttons-in-header a.masuk{background:#2F3645!important;color:#fff!important} 21.buttons-in-header a.daftar{background:linear-gradient(135deg,#fc0,#ff6b00)!important;color:#000!important} 22@media(max-width:768px){.header{padding:5px!important}.logo-container{justify-content:center!important;gap:8px!important}.logo-container img.logo{max-width:110px!important;margin-bottom:10px!important}.buttons-in-header{order:2;display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:8px!important;margin:6px 0 10px!important}.buttons-in-header a{padding:10px 8px!important;font-size:13px!important;min-width:0!important;letter-spacing:0!important}} 23.search-compact{max-width:400px!important;margin:0 0 10px!important} 24.search-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 15px} 25.chip{background:#2F3645;padding:5px 12px;border-radius:14px;font-size:11px;font-weight:700;border:1px solid #444;display:inline-flex;align-items:center;gap:4px;color:#ccc} 26.nav-wrapper{border:none!important;background:transparent!important;padding:10px 0!important;max-width:100%!important;overflow-x:auto!important;scrollbar-width:none} 27.nav-wrapper::-webkit-scrollbar{display:none} 28.nav-container{display:flex!important;flex-direction:row!important;grid-template-rows:none!important;grid-auto-flow:unset!important;grid-template-columns:none!important;width:auto!important;background:transparent!important;gap:8px!important;flex-wrap:nowrap!important;align-items:center;padding:0!important} 29.nav-menu{margin:0!important;padding:7px 14px!important;font-size:12px!important;flex-shrink:0;border-radius:20px!important;background:#1a1a1a!important;border:1px solid #333} 30.nav-menu:hover{background:#2F3645!important;border-color:#fc0} 31.nav-menu.active{background:#fc0!important;color:#000!important;border-color:#fc0} 32.nav-menu .hot-tag{position:static!important;margin-left:5px;display:inline-block;vertical-align:middle} 33.nav-more-dd{position:relative;display:inline-block;margin-left:4px;flex-shrink:0} 34.nav-more-btn{padding:7px 14px;background:#2F3645;color:#fc0;border:1px solid #555;border-radius:20px;cursor:pointer;font-weight:700;font-size:12px;white-space:nowrap} 35.nav-more-btn:hover{background:#444;border-color:#fc0} 36.nav-more-list{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#2F3645;border:1px solid #555;border-radius:8px;padding:6px;
36min-width:200px;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.6);max-height:320px;overflow-y:auto} 37.nav-more-dd.open .nav-more-list{display:flex;flex-direction:column;gap:3px} 38.nav-more-list .nav-menu{display:block!important;padding:8px 14px!important;font-size:12px!important;border-radius:6px!important;background:transparent!important;text-align:left;border:none!important} 39.nav-more-list .nav-menu:hover{background:#fc0!important;color:#000!important} 40</style><style id="pagination-css"> 41.game-card.pag-hidden{display:none!important} 42#load-more-wrap{display:flex;flex-direction:column;align-items:center;margin:18px 0;gap:6px;min-height:1px} 43#load-more-info{font-size:11px;color:#888;letter-spacing:.3px} 44#load-more-info b{color:#fc0} 45#load-more-spinner{width:24px;height:24px;border:2px solid #2F3645;border-top:2px solid #fc0;border-radius:50%;animation:lmSpin .7s linear infinite;display:none} 46@keyframes lmSpin{to{transform:rotate(360deg)}} 47#load-more-wrap.is-loading #load-more-spinner{display:inline-block} 48#load-more-sentinel{height:1px;width:100%} 49</style> 50<script id="pagination-js"> 51(function(){ 52 var PAGE_SIZE=24;var BATCH=12;var shown=PAGE_SIZE;var activeObs=null;var activeList=null;var ioSentinel=null;var loading=false; 53 function getCards(){var list=document.getElementById('game-list');if(!list)return [];return Array.from(list.querySelectorAll('.game-card'));} 54 function applyPagination(){var cards=getCards();if(cards.length<=PAGE_SIZE){removeWrap();cards.forEach(function(c){c.classList.remove('pag-hidden')});return;}cards.forEach(function(c,i){if(i<shown)c.classList.remove('pag-hidden');else c.classList.add('pag-hidden');});injectWrap(cards.length);} 55 function injectWrap(total){var existing=document.getElementById('load-more-wrap');if(existing)existing.remove();var list=document.getElementById('game-list');if(!list)return;if(shown>=total){ 56 var done=document.createElement('div');done.id='load-more-wrap';done.innerHTML='<div id="load-more-info">Menampilkan <b>'+total+'</b> game (semua)</div>';list.parentNode.insertBefore(done,list.nextSibling);return; 57 }var wrap=document.createElement('div');wrap.id='load-more-wrap';wrap.innerHTML='<div id="load-more-spinner"></div><div id="load-more-info">Menampilkan <b>'+shown+'</b> dari <b>'+total+'</b> game</div><div id="load-more-sentinel"></div>';list.parentNode.insertBefore(wrap,list.nextSibling);bindSentinel();} 58 function removeWrap(){var el=document.getElementById('load-more-wrap');if(el)el.remove();if(ioSentinel){ioSentinel.disconnect();ioSentinel=null;}} 59 function bindSentinel(){if(ioSentinel){ioSentinel.disconnect();ioSentinel=null;}var s=document.getElementById('load-more-sentinel');if(!s||!('IntersectionObserver' in window))return;ioSentinel=new IntersectionObserver(function(entries){for(var i=0;i<entries.length;i++){if(entries[i].isIntersecting&&!loading){loadMore();}}},{rootMargin:'400px'});ioSentinel.observe(s);} 60 function loadMore(){if(loading)return;var wrap=document.getElementById('load-more-wrap');if(!wrap)return;loading=true;wrap.classList.add('is-loading');setTimeout(function(){shown+=BATCH;applyPagination();loading=false;},150);} 61 function resetAndApply(){shown=PAGE_SIZE;loading=false;applyPagination();} 62 function bindObserver(){var list=document.getElementById('game-list');if(!list){setTimeout(bindObserver,400);return}if(list===activeList)return;if(activeObs)activeObs.disconnect();activeList=list;activeObs=new MutationObserver(function(muts){for(var i=0;i<muts.length;i++){if(muts[i].addedNodes.length>0){resetAndApply();return;}}});activeObs.observe(list,{childList:true});resetAndApply();} 63 function kickoff(){bindObserver();resetAndApply();}
64 if(document.readyState==='complete')kickoff();else window.addEventListener('load',kickoff); 65 document.addEventListener('rtp-search-cleared',function(){resetAndApply();}); 66 var _p=history.pushState;var _r=history.replaceState; 67 history.pushState=function(){var r=_p.apply(this,arguments);setTimeout(kickoff,300);setTimeout(kickoff,1200);setTimeout(kickoff,2500);return r}; 68 history.replaceState=function(){var r=_r.apply(this,arguments);setTimeout(kickoff,300);setTimeout(kickoff,1200);setTimeout(kickoff,2500);return r}; 69 window.addEventListener('popstate',function(){setTimeout(kickoff,300);setTimeout(kickoff,1500)}); 70 document.addEventListener('click',function(e){var n=e.target&&e.target.closest&&e.target.closest('a.nav-menu, a[href^="/"]');if(n){setTimeout(kickoff,400);setTimeout(kickoff,1500);setTimeout(kickoff,3000);}},true); 71 setInterval(function(){var list=document.getElementById('game-list');if(list && list!==activeList){bindObserver();}},2000); 72})(); 73</script><style id="faq-disc-css-v20"> 74.faq-wrap{max-width:1140px;margin:20px auto;padding:0 10px} 75.faq-section{background:#1a1a1a;border-radius:10px;padding:24px;margin-bottom:20px;border:1px solid #333} 76.faq-section h2{color:#fc0;font-size:20px;margin-bottom:6px;display:flex;align-items:center;gap:8px} 77.faq-section .faq-sub{color:#888;font-size:12px;margin-bottom:20px} 78.faq-item{background:#0f0f14;border-radius:8px;margin-bottom:8px;overflow:hidden;border:1px solid #2a2a35;transition:border-color .2s} 79.faq-item:hover{border-color:#555} 80.faq-item.open{border-color:#fc0} 81.faq-q{padding:14px 18px;cursor:pointer;font-weight:700;color:#fff;display:flex;justify-content:space-between;align-items:center;font-size:14px;user-select:none} 82.faq-q:hover{color:#fc0} 83.faq-icon{color:#fc0;font-size:16px;transition:transform .3s;flex-shrink:0;margin-left:10px;font-weight:900} 84.faq-item.open .faq-icon{transform:rotate(45deg)} 85.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 18px;color:#ccc;font-size:13px;line-height:1.7} 86.faq-item.open .faq-a{max-height:500px;padding:0 18px 16px} 87.faq-a strong{color:#fc0} 88#age-disclaimer{background:linear-gradient(135deg,#1a0a0a,#2a1010);border:1px solid #5a2020;border-radius:10px;padding:18px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap} 89#age-disclaimer .age-badge{background:#ff1744;color:#fff;padding:8px 14px;border-radius:50%;font-weight:900;font-size:18px;min-width:50px;text-align:center;letter-spacing:.5px;box-shadow:0 0 12px rgba(255,23,68,.4)} 90#age-disclaimer .age-text{flex:1;
90min-width:200px;font-size:12px;color:#ccc;line-height:1.6} 91#age-disclaimer .age-text strong{color:#ff6b6b;display:block;margin-bottom:4px;font-size:13px} 92#age-disclaimer .age-help{font-size:11px;color:#888;margin-top:6px} 93#age-disclaimer .age-help a{color:#fc0;text-decoration:underline} 94@media(max-width:600px){#age-disclaimer{padding:14px}#age-disclaimer .age-badge{font-size:15px;min-width:42px;padding:6px 10px}} 95</style> 96<script id="faq-disc-js-v20"> 97(function(){ 98 var FAQS=[ 99 {q:"Apa itu RTP slot dan kenapa penting?",a:"<strong>RTP (Return to Player)</strong> adalah persentase pengembalian rata-rata ke pemain dalam jangka panjang. Semakin tinggi RTP, semakin besar peluang pemain mendapatkan kemenangan. RTP 80%+ artinya game tersebut sedang dalam kondisi <strong>gacor</strong> dan lebih menguntungkan untuk dimainkan."}, 100 {q:"Bagaimana cara membaca pola slot di halaman ini?",a:"Pola slot menampilkan rekomendasi <strong>strategi bet progresif</strong>: mulai dari bet kecil (manual), naik ke bet menengah, lalu auto-spin dengan bet lebih besar. Contoh: Bet 400 perak 20x, naik 600 perak 10x, lalu auto 2.000 perak 100x. Pola diperbarui setiap 10 menit."}, 101 {q:"Apakah jam gacor benar-benar akurat?",a:"Jam gacor adalah <strong>estimasi window waktu</strong> berdasarkan pola permainan dalam 24 jam terakhir. Game dengan status GACOR biasanya menunjukkan tren menang di jam-jam tertentu. Namun hasil individu bisa bervariasi karena slot bersifat acak (RNG-based). Gunakan sebagai referensi, bukan jaminan."}, 102 {q:"Bagaimana cara menghitung simulasi kemenangan?",a:"Klik tombol <strong>Simulasi Kemenangan</strong> pada game pilihan. Masukkan bet dan modal Anda, sistem akan menghitung Spin Capacity, Expected Return, dan tiga skenario (best/expected/worst case). Rekomendasi bet ideal adalah 2-5% dari modal sesuai prinsip bankroll management."}, 103 {q:"Apakah data RTP di sini update otomatis?",a:"Ya, data RTP, pola slot, dan jam gacor <strong>diperbarui otomatis setiap 10 menit</strong>. Anda bisa melihat countdown di pojok atas halaman. Daftar game juga langsung refresh saat provider baru ditambahkan ke sistem."}, 104 {q:"Apakah game yang ditampilkan bisa langsung dimainkan?",a:"Untuk memainkan game, silakan klik tombol <strong>DAFTAR</strong> untuk registrasi akun baru, atau <strong>MASUK</strong> jika sudah memiliki akun. Proses deposit dan withdraw <strong>cepat dan aman</strong>, WD berapapun pasti cair."} 105 ]; 106 function buildFaqWrap(){ 107 var wrap=document.createElement('div');wrap.className='faq-wrap';wrap.id='faq-wrap-injected'; 108 var html='<section class="faq-section"><h2>â Pertanyaan yang Sering Ditanyakan</h2><p class="faq-sub">Informasi lengkap seputar RTP slot, pola gacor, dan simulasi kemenangan</p>'; 109 for(var i=0;i<FAQS.length;i++){html+='<div class="faq-item"><div class="faq-q">'+FAQS[i].q+'<span class="faq-icon">+</span></div><div class="faq-a">'+FAQS[i].a+'</div></div>';} 110 html+='</section>'; 111 html+='<div id="age-disclaimer"><div class="age-badge">18+</div><div class="age-text"><strong>Hanya untuk Usia 18 Tahun ke Atas</strong>Situs ini berisi informasi RTP slot untuk tujuan <strong style="color:#ccc">edukasi dan hiburan</strong>. Dilarang diakses oleh siapapun di bawah usia 18 tahun. Judi dalam bentuk apapun <strong style="color:#ccc">dilarang oleh hukum di beberapa wilayah</strong>, mohon pastikan mematuhi peraturan setempat.<div class="age-help">Butuh bantuan? Hubungi <a href="https://kemensos.go.id" rel="nofollow" target="_blank">Kementerian Sosial</a> untuk konseling perjudian bertanggung jawab.</div></div></div>'; 112 wrap.innerHTML=html; 113 wrap.querySelectorAll('.faq-q').forEach(function(el){el.addEventListener('click',function(){this.parentElement.classList.toggle('open')});}); 114 return wrap; 115 } 116 function injectSchema(){ 117 if(document.getElementById('faq-schema-ld'))return; 118 var items=FAQS.map(function(f){return{"@type":"Question","name":f.q,"acceptedAnswer":{"@type":"Answer","text":f.a.replace(/<[^>]+>/g,'')}};}); 119 var s=document.createElement('script');s.id='faq-schema-ld';s.type='application/ld+json';s.text=JSON.stringify({"@context":"https://schema.org","@type":"FAQPage","mainEntity":items}); 120 document.head.appendChild(s); 121 } 122 function isCorrectPos(){var a=document.querySelector('.artikel');var w=document.getElementById('faq-wrap-injected');if(!a||!w)return false;return a.previousElementSibling===w;} 123 function injectOrReposition(){ 124 var artikel=document.querySelector('.artikel');if(!artikel)return false;
125 var existing=document.getElementById('faq-wrap-injected'); 126 if(existing){if(isCorrectPos())return true;existing.remove();} 127 var wrap=buildFaqWrap(); 128 artikel.parentNode.insertBefore(wrap,artikel); 129 injectSchema(); 130 return true; 131 } 132 function tryInject(n){if(n<=0)return;if(injectOrReposition())return;setTimeout(function(){tryInject(n-1)},300);} 133 function kickoff(){tryInject(60);} 134 if(document.readyState==='complete')kickoff();else window.addEventListener('load',kickoff); 135 var _p=history.pushState;var _r=history.replaceState; 136 history.pushState=function(){var r=_p.apply(this,arguments);setTimeout(kickoff,400);setTimeout(kickoff,1200);setTimeout(kickoff,2500);return r;}; 137 history.replaceState=function(){var r=_r.apply(this,arguments);setTimeout(kickoff,400);setTimeout(kickoff,1200);setTimeout(kickoff,2500);return r;}; 138 window.addEventListener('popstate',function(){setTimeout(kickoff,400);setTimeout(kickoff,1500);}); 139 setInterval(function(){if(!isCorrectPos())kickoff();},1500); 140 document.addEventListener('click',function(e){var n=e.target&&e.target.closest&&e.target.closest('a.nav-menu, a[href^="/"]');if(n){setTimeout(kickoff,500);setTimeout(kickoff,1500);setTimeout(kickoff,3000);}},true); 141})(); 142</script><style id="sim-fix-css"> 143[id^="simulasi-result-"]{background:transparent!important;border:none!important;padding:0!important;color:#fff!important} 144.sim-pro{background:#0f0f18!important;color:#fff!important;padding:18px!important;border-radius:10px!important;font-size:12px!important;border:1px solid #2a2a3a!important;margin:-10px -10px 0!important} 145.sim-head{font-size:16px!important;font-weight:900!important;color:#fc0!important;margin-bottom:14px!important;text-align:center!important;padding-bottom:10px;border-bottom:1px solid #2a2a3a} 146.sim-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-bottom:16px!important} 147.sim-item{background:#1a1a28!important;padding:10px 12px!important;border-radius:8px!important;border-left:3px solid #fc0!important;color:#fff!important} 148.sim-lab{font-size:10px!important;color:#a0a0b8!important;margin-bottom:4px!important;text-transform:uppercase;letter-spacing:.3px;display:flex;align-items:center;gap:4px;font-weight:600} 149.sim-val{font-size:14px!important;font-weight:800!important;color:#fff!important} 150.sim-section{margin-bottom:14px!important} 151.sim-subtitle{font-size:11px!important;font-weight:800!important;color:#fc0!important;margin-bottom:8px!important;text-transform:uppercase;letter-spacing:.5px;text-align:center;padding:4px 0;border-bottom:1px dashed #333} 152.sim-scenario{display:flex!important;justify-content:space-between!important;align-items:center;padding:8px 12px!important;background:#1a1a28!important;border-radius:6px!important;margin-bottom:5px!important;font-size:12px!important;color:#fff} 153.sim-scenario span{color:#d0d0d8!important} 154.sim-scenario b{font-size:13px;font-weight:900} 155.sim-bonus{background:#1a1a28!important;padding:10px 12px!important;border-radius:6px!important;font-size:12px!important;color:#d0d0d8!important;text-align:center} 156.sim-bonus b{color:#fc0} 157.sim-rec{background:linear-gradient(135deg,#0a3020,#0f1a20)!important;padding:12px!important;border-radius:8px!important;border-left:3px solid #00e676!important;font-size:12px!important;color:#e0e0e8!important;margin-bottom:12px!important;line-height:1.6} 158.sim-rec .bet-ideal{color:#00e676!important;font-weight:900} 159.sim-rec .bet-tinggi{color:#ff5252!important;font-weight:900} 160.sim-rec .bet-rendah{color:#fc0!important;font-weight:900} 161.sim-disclaimer{font-size:10px!important;color:#808090!important;font-style:italic;text-align:center;padding-top:12px;border-top:1px solid #2a2a3a;line-height:1.6} 162</style><style id="sim-input-css-v25"> 163.popup-content{padding:22px 20px 20px!important} 164.popup-content h2{font-size:15px!important;color:#fc0!important;text-align:center!important;margin:0 0 16px!important;padding-right:20px;font-weight:800} 165.popup-content .close{font-size:20px!important;top:10px!important;right:14px!important;color:#888!important} 166.popup-content br{display:none} 167.popup-content>label{display:none!important} 168.sim-input-block{margin-bottom:12px;text-align:left!important} 169.sim-input-label{display:block!important;font-size:11px!important;font-weight:700!important;color:#fc0!important;margin-bottom:5px!important;text-align:left!important;letter-spacing:.3px} 170.sim-input-wrap{position:relative} 171.sim-input-wrap::before{content:"Rp";position:absolute;
171left:12px;top:50%;transform:translateY(-50%);color:#fc0;font-weight:900;font-size:12px;z-index:2;pointer-events:none;letter-spacing:.3px} 172.popup-content .sim-input-wrap input{width:100%!important;padding:10px 12px 10px 38px!important;background:#1a1a28!important;color:#fff!important;border:1.5px solid #2a2a3a!important;border-radius:6px!important;font-size:14px!important;font-weight:700!important;letter-spacing:.3px!important;margin:0!important;transition:border-color .15s;box-sizing:border-box} 173.popup-content .sim-input-wrap input:focus{border-color:#fc0!important;outline:none!important} 174.popup-content .sim-input-wrap input::placeholder{color:#555!important;font-weight:500} 175.sim-input-wrap.has-err input{border-color:#ff5252!important} 176.sim-presets{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px} 177.sim-preset-chip{padding:4px 9px;background:#2a2a35;color:#ccc;border:1px solid #3a3a45;border-radius:12px;font-size:10px;font-weight:700;cursor:pointer;transition:all .15s} 178.sim-preset-chip:hover{background:#fc0;color:#000;border-color:#fc0} 179.sim-preset-chip:active{transform:scale(.95)} 180.sim-helper{font-size:10px;color:#888;margin-top:5px;display:flex;align-items:center;gap:4px;line-height:1.4;text-align:left} 181.sim-helper.err{color:#ff5252;font-weight:700} 182.sim-helper.ok{color:#00e676} 183.popup-content>button{width:100%!important;padding:12px 18px!important;margin-top:14px!important;background:linear-gradient(135deg,#fc0,#ff6b00)!important;color:#000!important;border:none!important;border-radius:8px!important;font-weight:900!important;font-size:14px!important;letter-spacing:.8px;cursor:pointer;transition:transform .15s;text-transform:uppercase} 184</style> 185<script id="sim-input-js-v25"> 186(function(){ 187 var BET_PRESETS=[500,1000,2000,5000]; 188 var MODAL_PRESETS=[{v:50000,l:'50rb'},{v:100000,l:'100rb'},{v:500000,l:'500rb'},{v:1000000,l:'1jt'},{v:10000000,l:'10jt'}]; 189 function fmt(n){return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g,'.')} 190 function parseRp(s){return parseInt((s||'').replace(/[^\\d]/g,''))||0} 191 function replaceInputElement(oldInput,isBet,presets){ 192 if(oldInput.dataset.replacedV25)return oldInput; 193 var id=oldInput.id; 194 var newInput=document.createElement('input');newInput.id=id;newInput.type='text';newInput.setAttribute('type','text');newInput.setAttribute('inputmode','numeric');newInput.setAttribute('autocomplete','off');newInput.setAttribute('placeholder',isBet?'Masukkan bet...':'Masukkan modal...');newInput.dataset.replacedV25='1'; 195 var parent=oldInput.parentNode;var prev=oldInput.previousElementSibling; 196 while(prev&&(prev.tagName==='LABEL'||prev.tagName==='BR'||prev.tagName==='P')){var t=prev;prev=prev.previousElementSibling;t.remove();} 197 var next=oldInput.nextElementSibling;if(next&&next.tagName==='BR')next.remove(); 198 var block=document.createElement('div');block.className='sim-input-block'; 199 var label=isBet?'Bet per Spin':'Modal Main'; 200 var helperText=isBet?'Min Rp 400, max 10% dari modal':'Minimal Rp 10.000 (bisa sampai puluhan juta)'; 201 var labelEl=document.createElement('label');labelEl.className='sim-input-label';labelEl.htmlFor=id;labelEl.textContent=label; 202 var wrap=document.createElement('div');wrap.className='sim-input-wrap';wrap.appendChild(newInput); 203 block.appendChild(labelEl);block.appendChild(wrap); 204 var chips=document.createElement('div');chips.className='sim-presets'; 205 presets.forEach(function(p){var chip=document.createElement('span');chip.className='sim-preset-chip';chip.textContent=isBet?fmt(p):p.l;chip.addEventListener('click',function(){newInput.value=fmt(isBet?p:p.v);newInput.dispatchEvent(new Event('input',{bubbles:true}));newInput.focus();});chips.appendChild(chip);}); 206 block.appendChild(chips); 207 var helper=document.createElement('div');helper.className='sim-helper';helper.innerHTML='ð¡ '+helperText;block.appendChild(helper); 208 parent.insertBefore(block,oldInput);oldInput.remove(); 209 newInput.addEventListener('input',function(){var raw=parseRp(newInput.value);newInput.value=raw?fmt(raw):'';}); 210 return newInput; 211 } 212 function stripAllInputs(){document.querySelectorAll('input[id^="bet-input-"],input[id^="modal-input-"]').forEach(function(el){var raw=parseRp(el.value);el.value=raw>0?raw.toString():'';});} 213 function reformatAllInputs(){document.querySelectorAll('input[id^="bet-input-"],input[id^="modal-input-"]').forEach(function(el){var raw=parseRp(el.value);el.value=raw>0?fmt(raw):'';});} 214 document.addEventListener('click',function(e){var btn=e.target&&e.target.closest?e.target.closest('button'):null;if(!btn)return;var popup=btn.closest('.popup,[id^="popup-"]');if(!popup)return;var txt=(btn.textContent||'').toLowerCase();if(txt.indexOf('simulas')<0&&txt.indexOf('hitung')<0)return;stripAllInputs();setTimeout(reformatAllInputs,150);setTimeout(reformatAllInputs,500);},true); 215 function enhanceAll(){document.querySelectorAll('input[id^="bet-input-"]:not([data-replaced-v25])').forEach(function(el){replaceInputElement(el,true,BET_PRESETS);});document.querySelectorAll('input[id^="modal-input-"]:not([data-replaced-v25])').forEach(function(el){replaceInputElement(el,false,MODAL_PRESETS);});} 216 function start(){enhanceAll();var obs=new MutationObserver(function(){enhanceAll()});obs.observe(document.body,{childList:true,subtree:true});setInterval(enhanceAll,1500);}
217 if(document.readyState==='complete')start();else window.addEventListener('load',start); 218})(); 219</script><style id="mobile-redesign-v1"> 220/* ===== HIDE STATS BAR (0 Gacor / 0 Game placeholder terlalu jelek) ===== */ 221.stats-bar{display:none!important} 222 223/* ===== FIX NAV: show ALL providers, hide +N dropdown (ngebug) ===== */ 224.nav-container .nav-menu{display:inline-flex!important} 225.nav-more-dd{display:none!important} 226 227/* ===== HIDE original live/update in header (dipindah ke sort bar) ===== */ 228/* Multi-selector fallback â some browsers reject attribute-with-colon matching */ 229.logo-container>div[style*="gap:12px"], 230.logo-container>div[style*="gap: 12px"], 231.logo-container>div:has(.live-badge), 232.logo-container>div:has(.rtp-update){display:none!important;visibility:hidden!important} 233.live-badge, 234.rtp-update, 235body .live-badge, 236body .rtp-update{display:none!important} 237 238/* ===== LIVE pill di sort bar ===== */ 239#sort-live-pill{ 240 display:inline-flex!important; 241 align-items:center!important; 242 gap:6px!important; 243 background:rgba(0,0,0,.4)!important; 244 padding:4px 10px!important; 245 border-radius:14px!important; 246 border:1px solid #2a2a35!important; 247 font-size:11px!important; 248 margin-left:auto; 249} 250#sort-live-pill .sl-dot{ 251 width:6px;height:6px;border-radius:50%; 252 background:#00e676;box-shadow:0 0 6px #00e676; 253 animation:slPulse 1.5s ease-in-out infinite; 254 flex-shrink:0; 255} 256#sort-live-pill .sl-live{color:#00e676;font-weight:800;letter-spacing:.3px;font-size:10px} 257#sort-live-pill .sl-sep{color:#555;margin:0 2px} 258#sort-live-pill .sl-time{color:#fc0;font-weight:700;font-size:10px} 259@keyframes slPulse{0%,100%{opacity:1}50%{opacity:.4}} 260.sort-bar{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:8px!important} 261 262/* ===== MOBILE REDESIGN: games above fold ===== */ 263@media(max-width:768px){ 264 /* Ticker â smaller */ 265 .ticker-bar{padding:4px 0!important;font-size:10px!important} 266 .ticker-item{font-size:10px!important;padding:0 12px!important} 267 268 /* Header â super compact */ 269 .header{padding:8px!important} 270 271 /* Logo row */ 272 .logo-container{ 273 display:flex!important; 274 align-items:center!important; 275 justify-content:center!important; 276 flex-wrap:nowrap!important; 277 gap:6px!important; 278 width:100%; 279 margin-bottom:8px!important; 280 } 281 .logo-container>a:first-child{display:flex;align-items:center;flex-shrink:0} 282 .logo-container img.logo{ 283 max-width:110px!important; 284 max-height:70px!important; 285 margin:0!important; 286 object-fit:contain; 287 } 288 289 /* Live/update hidden di mobile too (muncul di sort bar) */ 290 #sort-live-pill{font-size:10px!important;padding:3px 8px!important;margin-left:auto} 291 292 /* Banner â HIDE on mobile (save space, DAFTAR button already prominent) */ 293 .header>a:has(img.banner){display:none!important} 294 .header img.banner{display:none!important} 295 296 /* Buttons MASUK/DAFTAR â compact inline */ 297 .header .buttons{ 298 display:grid!important; 299 grid-template-columns:1fr 1.4fr!important; 300 gap:6px!important; 301 margin:0 0 6px!important; 302 width:100%; 303 } 304 .header .buttons a{ 305 padding:9px 10px!important; 306 font-size:12px!important; 307 font-weight:800!important; 308 border-radius:7px!important; 309 text-align:center; 310 } 311 .header .buttons a.daftar{ 312 background:linear-gradient(135deg,#fc0,#ff6b00)!important; 313 color:#000!important; 314 box-shadow:0 2px 8px rgba(255,204,0,.3); 315 } 316 317 /* Search â prominent, single row */ 318 .header .search{ 319 display:flex!important; 320 gap:6px!important; 321 margin:0!important; 322 width:100%; 323 } 324 .header .search input{ 325 flex:1!important; 326 padding:8px 12px!important; 327 font-size:12px!important; 328 border-radius:7px!important; 329 background:#1a1a1a!important; 330 border:1px solid #2a2a35!important; 331 color:#fff!important; 332 } 333 .header .search button{ 334 padding:8px 14px!important; 335 font-size:11px!important; 336 border-radius:7px!important; 337 font-weight:800!important; 338 } 339 340 /* Nav providers â compact horizontal scroll */ 341 .nav-wrapper{padding:6px 8px!important;margin:2px 0 0!important} 342 .nav-menu{padding:5px 10px!important;font-size:10px!important;border-radius:14px!important} 343 .nav-more-btn{padding:5px 10px!important;font-size:10px!important} 344 345 /* Running text + filter */ 346 .header-container{padding:4px 8px!important;gap:6px!important} 347 .running-text{padding:5px 10px!important;font-size:10px!important} 348 .filter-container select{font-size:11px!important;padding:4px 22px 4px 8px!important;min-width:90px!important} 349 .filter-container label{font-size:11px!important} 350 351 /* Sort bar â compact (stats removed, LIVE pill di sini) */ 352 .sort-bar{padding:6px 8px!important;margin:2px 0 0!important;gap:6px!important} 353 .sort-bar select{font-size:11px!important;padding:4px 22px 4px 8px!important} 354 .sort-bar .game-count{font-size:10px!important} 355 356 /* Game list â spacing tighter */ 357 #game-list{padding:4px 6px!important;gap:6px!important} 358} 359 360/* ===== Logo clickable everywhere ===== */ 361.logo-container>
361a:first-child{cursor:pointer;text-decoration:none;display:inline-flex;align-items:center} 362.logo-container>a:first-child img.logo{transition:transform .15s} 363.logo-container>a:first-child:hover img.logo{transform:scale(1.03)} 364 365/* ===== DESIGN 3: Ultra Compact / Game-First ===== */ 366@media(min-width:769px){ 367 /* Sticky top bar â logo + search + CTA */ 368 .header{ 369 padding:8px 20px!important; 370 display:grid!important; 371 grid-template-columns:auto 1fr auto auto!important; 372 grid-template-areas:"logo search masuk daftar"!important; 373 gap:12px!important; 374 align-items:center!important; 375 background:#0a0a12!important; 376 border-bottom:1px solid #1a1a28!important; 377 position:sticky!important; 378 top:0!important; 379 z-index:100!important; 380 backdrop-filter:blur(8px); 381 } 382 383 /* Logo */ 384 .logo-container{ 385 grid-area:logo!important; 386 margin:0!important; 387 display:flex!important; 388 align-items:center!important; 389 gap:10px!important; 390 flex-wrap:nowrap!important; 391 } 392 .logo-container img.logo{max-width:105px!important;max-height:55px!important;margin:0!important;object-fit:contain} 393 394 /* Search slim inline */ 395 .header .search{ 396 grid-area:search!important; 397 margin:0!important; 398 display:flex!important; 399 gap:0!important; 400 max-width:380px; 401 justify-self:center; 402 width:100%; 403 } 404 .header .search input{ 405 flex:1!important; 406 padding:8px 14px!important; 407 font-size:12px!important; 408 border-radius:20px 0 0 20px!important; 409 background:#12121a!important; 410 border:1px solid #2a2a35!important; 411 border-right:none!important; 412 color:#fff!important; 413 width:auto!important; 414 } 415 .header .search button{ 416 padding:8px 16px!important; 417 font-size:11px!important; 418 border-radius:0 20px 20px 0!important; 419 font-weight:800!important; 420 background:#2F3645!important; 421 color:#fc0!important; 422 border:1px solid #2a2a35!important; 423 } 424 .header .search button:hover{background:#fc0!important;color:#000!important} 425 426 /* Buttons inline compact */ 427 .header .buttons{display:contents!important;margin:0!important} 428 .header .buttons a.masuk{ 429 grid-area:masuk!important; 430 padding:8px 18px!important; 431 font-size:12px!important; 432 min-width:auto!important; 433 margin:0!important; 434 border-radius:20px!important; 435 font-weight:800!important; 436 background:#2F3645!important; 437 color:#fff!important; 438 } 439 .header .buttons a.daftar{ 440 grid-area:daftar!important; 441 padding:8px 22px!important; 442 font-size:12px!important; 443 min-width:auto!important; 444 margin:0!important; 445 border-radius:20px!important; 446 font-weight:900!important; 447 background:linear-gradient(135deg,#fc0,#ff6b00)!important; 448 color:#000!important; 449 box-shadow:0 2px 8px rgba(255,204,0,.3); 450 } 451 452 /* HIDE BIG BANNER in header (moved ke ad-slot tengah games) */ 453 .header>a:has(img.banner){display:none!important} 454 455 /* Running text + filter tight */ 456 .header-container{padding:6px 20px!important;margin:0!important;gap:12px!important;background:#0f0f18} 457 .running-text{padding:5px 14px!important;font-size:11px!important} 458 459 /* Nav providers compact scroll pill */ 460 .nav-wrapper{padding:8px 20px!important;margin:0!important;background:#0f0f18} 461 .nav-container{gap:6px!important} 462 .nav-menu{padding:6px 14px!important;font-size:11px!important;border-radius:14px!important} 463 464 /* Sort bar tight */ 465 .sort-bar{padding:6px 20px!important;margin:0!important;background:#0f0f18} 466 467 /* Game grid immediate */ 468 #game-list{padding-top:8px!important} 469 470 /* AD-SLOT banner â tampil horizontal tipis setelah 8 games */ 471 .banner-adslot{ 472 grid-column:1/-1!important; 473 margin:12px 0!important; 474 display:block!important; 475 position:relative!important; 476 border-radius:12px!important; 477 overflow:hidden!important; 478 transition:transform .2s,box-shadow .2s; 479 box-shadow:0 4px 16px rgba(0,0,0,.4); 480 } 481 .banner-adslot:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,204,0,.25)} 482 .banner-adslot img{ 483 width:100%!important; 484 max-height:100px!important; 485 object-fit:cover!important; 486 display:block!important; 487 } 488 .banner-adslot::after{ 489 content:"SPONSOR"; 490 position:absolute; 491 top:6px;right:8px; 492 font-size:8px; 493 color:#fc0; 494 letter-spacing:1px; 495 background:rgba(0,0,0,.6); 496 padding:2px 6px; 497 border-radius:3px; 498 font-weight:800; 499 } 500} 501</style> 502 503<!-- sort-live-pill is now rendered from React state in ProviderPageV2 (see sort
503-bar JSX) --> 504 505<script id="provider-sort-js"> 506(function(){ 507 // Popular providers urutan prioritas (most popular first) 508 var PRIORITY=[ 509 'pragmatic_play','pg_soft','habanero','microgaming','joker', 510 'spadegaming','nolimit_city','playstar','pg','play_tech', 511 'jili','yggdrasil','bng','advant_play','fachai', 512 'fast_spin','top_trend','mimi_gaming','speed_gaming','pt_game', 513 '5g_games' 514 ]; 515 function priorityIndex(slug){ 516 var i=PRIORITY.indexOf(slug); 517 return i===-1?999:i; 518 } 519 function sortNav(){ 520 var container=document.querySelector('.nav-container');if(!container)return false; 521 var menus=Array.from(container.querySelectorAll('.nav-menu')); 522 if(menus.length<2)return false; 523 var currentOrder=menus.map(function(m){return (m.getAttribute('href')||'').replace(/\\//g,'').trim()}).join('|'); 524 if(container.dataset.sortedKey===currentOrder)return true; 525 menus.sort(function(a,b){ 526 var sa=(a.getAttribute('href')||'').replace(/\\//g,'').trim(); 527 var sb=(b.getAttribute('href')||'').replace(/\\//g,'').trim(); 528 var pa=priorityIndex(sa),pb=priorityIndex(sb); 529 if(pa!==pb)return pa-pb; 530 return sa.localeCompare(sb); 531 }); 532 menus.forEach(function(m){container.appendChild(m)}); 533 container.dataset.sortedKey=menus.map(function(m){return (m.getAttribute('href')||'').replace(/\\//g,'').trim()}).join('|'); 534 return true; 535 } 536 function kickoff(){ 537 sortNav(); 538 // Re-sort if nav changes (ex: after client-side nav or provider list updates) 539 new MutationObserver(function(muts){ 540 for(var i=0;i<muts.length;i++){ 541 if(muts[i].addedNodes&&muts[i].addedNodes.length){sortNav();return;} 542 } 543 }).observe(document.body,{childList:true,subtree:true}); 544 setInterval(sortNav,2000); 545 }
546 if(document.readyState==='complete')kickoff();else window.addEventListener('load',kickoff); 547 document.addEventListener('click',function(e){ 548 var n=e.target&&e.target.closest&&e.target.closest('a.nav-menu, a[href^="/"]'); 549 if(n){setTimeout(sortNav,400);setTimeout(sortNav,1200);} 550 },true); 551})(); 552</script> 553 554<!-- banner-adslot is now rendered from React state in ProviderPageV2 (after the 8th game card) --><style id="game-card-v3"> 555/* ===== GAME CARD V3 â bolder, more visual hierarchy ===== */ 556.game-card{ 557 background:linear-gradient(180deg,#1a1a2e,#0f0f18)!important; 558 border:1px solid transparent!important; 559 border-radius:14px!important; 560 padding:0!important; 561 overflow:hidden!important; 562 transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .2s,box-shadow .3s!important; 563 position:relative!important; 564 display:flex!important; 565 flex-direction:column!important; 566 background-clip:padding-box!important; 567} 568/* Gradient border animated */ 569.game-card::before{ 570 content:""; 571 position:absolute; 572 inset:-1px; 573 border-radius:14px; 574 padding:1px; 575 background:linear-gradient(135deg,#2a2a35,#1a1a28); 576 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); 577 -webkit-mask-composite:xor; 578 mask-composite:exclude; 579 pointer-events:none; 580 transition:background .3s; 581 z-index:1; 582} 583.game-card:hover{ 584 transform:translateY(-6px) scale(1.01)!important; 585 box-shadow:0 12px 32px rgba(255,204,0,.2),0 6px 16px rgba(0,0,0,.6)!important; 586} 587.game-card:hover::before{ 588 background:linear-gradient(135deg,#fc0,#ff6b00,#fc0)!important; 589} 590 591/* Image wrapper â bigger, featured */ 592.game-card .game-img-wrapper{ 593 position:relative!important; 594 overflow:hidden!important; 595 aspect-ratio:16/11; 596 background:#0a0a12; 597} 598.game-card .game-img-wrapper::after{ 599 content:""; 600 position:absolute; 601 inset:0; 602 background:linear-gradient(180deg,transparent 50%,rgba(10,10,18,.9) 100%); 603 pointer-events:none; 604 z-index:1; 605} 606.game-card .game-img-wrapper img{ 607 width:100%!important; 608 height:100%!important; 609 object-fit:cover!important; 610 cursor:pointer; 611 transition:transform .4s cubic-bezier(.4,0,.2,1)!important; 612} 613.game-card:hover .game-img-wrapper img{transform:scale(1.08)!important} 614 615/* Status badge â top-left floating */ 616.game-card .game-status-badge{ 617 position:absolute!important; 618 top:10px!important; 619 left:10px!important; 620 padding:5px 12px!important; 621 border-radius:16px!important; 622 font-size:10px!important; 623 font-weight:900!important; 624 letter-spacing:.5px!important; 625 backdrop-filter:blur(8px)!important; 626 box-shadow:0 4px 14px rgba(0,0,0,.6)!important; 627 z-index:3!important; 628 text-transform:uppercase; 629} 630.game-card .game-status-badge.status-gacor{ 631 background:linear-gradient(135deg,#00c853,#00e676)!important; 632 color:#000!important; 633 animation:gacorPulse 2s ease-in-out infinite; 634} 635@keyframes gacorPulse{0%,100%{box-shadow:0 4px 14px rgba(0,230,118,.6),0 0 0 0 rgba(0,230,118,.5)}50%{box-shadow:0 4px 14px rgba(0,230,118,.6),0 0 0 8px rgba(0,230,118,0)}} 636.game-card .game-status-badge.status-normal{background:linear-gradient(135deg,#ff9500,#ffa726)!important;color:#000!important} 637.game-card .game-status-badge.status-dingin{background:linear-gradient(135deg,#c62828,#ff5252)!important;color:#fff!important} 638 639/* Giant RTP percent floating on image bottom-right */ 640.game-card .game-img-wrapper .rtp-float-badge{ 641 position:absolute!important; 642 right:10px!important; 643 bottom:10px!important; 644 z-index:3!important; 645 display:flex!important; 646 flex-direction:column!important; 647 align-items:flex-end!important; 648 line-height:1!important; 649} 650.game-card .game-img-wrapper .rtp-float-label{ 651 font-size:9px; 652 color:#fc0; 653 font-weight:800; 654 letter-spacing:1px; 655 text-shadow:0 1px 3px rgba(0,0,0,.9); 656 margin-bottom:2px; 657} 658.game-card .game-img-wrapper .rtp-float-val{ 659 font-size:28px; 660 font-weight:900; 661 color:#fff; 662 text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 16px rgba(255,204,0,.4); 663 letter-spacing:-.5px; 664 font-variant-numeric:tabular-nums; 665} 666.game-card .game-img-wrapper .rtp-float-val.rtp-high{color:#00e676;text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 20px rgba(0,230,118,.6)} 667.game-card .game-img-wrapper .rtp-float-val.rtp-low{color:#ff5252} 668 669/* Game title */ 670.game-card .game-title{ 671 font-size:14px!important; 672 font-weight:800!important; 673 color:#fff!important; 674 padding:10px 12px 6px!important; 675 margin:0!important; 676 line-height:1.3!important; 677 text-align:left!important; 678 white-space:nowrap; 679 overflow:hidden; 680 text-overflow:ellipsis; 681 letter-spacing:.2px; 682} 683 684/* RTP bar - thicker gradient */ 685.game-card .progress-bar-container{ 686 margin:0 12px 8px!important; 687 height:22px!important; 688 background:#0a0a12!important; 689 border-radius:5px!important; 690 border:1px solid #2a2a35!important; 691 overflow:hidden!important; 692 position:relative!important; 693} 694.game-card .progress-bar{ 695 height:100%!important; 696 border-radius:0!important; 697 transition:width .6s cubic-bezier(.4,0,.2,1)!important; 698} 699.game-card .progress-bar.green{background:linear-gradient(90deg,#00c853,#00e676)!important} 700.game-card .progress-bar.orange{background:linear-gradient(90deg,#ff9500,#ffa726)!important} 701.game-card .progress-bar.red{background:linear-gradient(90deg,#c62828,#ff5252)!important} 702.game-card .progress-bar-text{ 703 font-size:11px!important; 704 font-weight:900!important; 705 letter-spacing:.5px!important; 706 text-shadow:0 1px 2px rgba(0,0,0,.8)!important; 707 color:#fff!important; 708 line-height:22px!important; 709} 710 711/* Jam Gacor info - compact pill */ 712.game-card .jam-gacor-info{ 713 margin:0 12px 8px!important; 714 padding:5px 10px!important; 715 background:rgba(252,204,0,.08)!important; 716 border-left:3px solid #fc0!important; 717 border-radius:4px!important; 718 font-size:11px!important; 719 color:#ddd!important; 720 display:flex!important; 721 align-items:center!important; 722 gap:5px!important; 723} 724.game-card .jam-gacor-info .jam-value{ 725 color:#fc0!important; 726 font-weight:800!important; 727 margin-left:auto!important; 728 font-variant-numeric:tabular-nums; 729 font-size:11px!important; 730} 731 732/* Pola section */ 733.game-card .game-info{padding:0 12px 10px!important} 734.game-card .pola-slot{ 735 background:rgba(0,0,0,.35)!important; 736 border:1px solid #2a2a35!important; 737 border-radius:6px!important; 738 padding:8px!important; 739} 740.game-card .pola-header{ 741 font-size:10px!important; 742 font-weight:900!important; 743 color:#fc0!important; 744 letter-spacing:.5px!important; 745 margin-bottom:6px!important; 746 text-align:center!important; 747 text-transform:uppercase; 748 padding-bottom:4px; 749 border-bottom:1px dashed #333; 750} 751.game-card .pola-slot-table{width:100%!important;border-collapse:collapse!important} 752.game-card .pola-slot-table td{ 753 padding:3px 5px!important; 754 font-size:10px!important; 755 color:#bbb!important; 756 border:none!important; 757} 758.game-card .pola-slot-table td:first-child{ 759 color:#888!important; 760 font-weight:700!important; 761 letter-spacing:.3px; 762 text-transform:uppercase; 763 font-size:9px!important; 764} 765.game-card .pola-result{text-align:center!important;width:22px!important} 766.game-card .pola-result .success, 767.game-card .pola-result .warning, 768.game-card .pola-result .fail{ 769 display:inline-block!important; 770 width:10px!important; 771 height:10px!important; 772 border-radius:50%!important; 773} 774.game-card .pola-result .success{background:#00e676!important;box-shadow:0 0 4px rgba(0,230,118,.6)!important}
775.game-card .pola-result .warning{background:#ffa726!important;box-shadow:0 0 4px rgba(255,167,38,.6)!important} 776.game-card .pola-result .fail{background:#ff5252!important;box-shadow:0 0 4px rgba(255,82,82,.6)!important} 777.game-card .pola-unavailable{color:#ff5252;font-weight:800;text-align:center;padding:4px;font-size:11px} 778 779/* ===== Pola Empty State (RTP < 20%) â redesigned ===== */ 780.game-card .pola-empty{ 781 display:flex!important; 782 flex-direction:column!important; 783 align-items:center!important; 784 justify-content:center!important; 785 text-align:center!important; 786 padding:14px 10px!important; 787 margin:6px 0!important; 788 background:linear-gradient(135deg,rgba(255,82,82,.10),rgba(255,82,82,.04))!important; 789 border:1px solid rgba(255,82,82,.28)!important; 790 border-radius:10px!important; 791 position:relative!important; 792 overflow:hidden!important; 793} 794.game-card .pola-empty::before{ 795 content:""!important; 796 position:absolute!important; 797 inset:0!important; 798 background:radial-gradient(circle at 50% 0%,rgba(255,82,82,.18),transparent 70%)!important; 799 pointer-events:none!important; 800} 801.game-card .pola-empty-icon{ 802 font-size:22px!important; 803 line-height:1!important; 804 color:#ff5252!important; 805 margin-bottom:6px!important; 806 filter:drop-shadow(0 2px 4px rgba(255,82,82,.4))!important; 807 animation:polaEmptyPulse 2s ease-in-out infinite!important; 808 position:relative!important; 809 z-index:1!important; 810} 811.game-card .pola-empty-title{ 812 font-size:11px!important; 813 font-weight:800!important; 814 color:#ff5252!important; 815 letter-spacing:.6px!important; 816 text-transform:uppercase!important; 817 margin-bottom:3px!important; 818 text-shadow:0 1px 2px rgba(0,0,0,.3)!important; 819 position:relative!important; 820 z-index:1!important; 821} 822.game-card .pola-empty-desc{ 823 font-size:10px!important; 824 color:rgba(255,255,255,.55)!important; 825 line-height:1.4!important; 826 font-weight:500!important; 827 position:relative!important; 828 z-index:1!important; 829} 830@keyframes polaEmptyPulse{ 831 0%,100%{transform:scale(1);opacity:1} 832 50%{transform:scale(1.12);opacity:.85} 833} 834 835/* Simulasi button */ 836.game-card .simulasi-button{ 837 margin:0 12px 12px!important; 838 padding:10px 14px!important; 839 background:linear-gradient(135deg,#fc0,#ff6b00)!important; 840 color:#000!important; 841 border:none!important; 842 border-radius:8px!important; 843 font-weight:900!important; 844 font-size:12px!important; 845 letter-spacing:.5px!important; 846 cursor:pointer!important; 847 width:calc(100% - 24px)!important; 848 text-transform:uppercase!important; 849 transition:transform .15s,box-shadow .15s!important; 850 position:relative!important; 851 overflow:hidden!important; 852 margin-top:auto!important; 853} 854.game-card .simulasi-button::before{ 855 content:""; 856 position:absolute;top:0;left:-100%;width:100%;height:100%; 857 background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent); 858 transition:left .5s; 859} 860.game-card .simulasi-button:hover::before{left:100%} 861.game-card .simulasi-button:hover{ 862 transform:translateY(-2px)!important; 863 box-shadow:0 6px 16px rgba(255,204,0,.35)!important; 864} 865.game-card .simulasi-button:active{transform:scale(.96)!important} 866 867/* Stronger stats-bar hiding (fallback for cached CSS) */ 868body .stats-bar, 869.stats-bar, 870div.stats-bar{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important} 871 872/* ===== NEW badge untuk game baru (<7 hari) ===== */ 873.game-card.is-new{ 874 box-shadow:0 0 0 1px rgba(255,204,0,.4),0 8px 24px rgba(255,152,0,.12)!important; 875} 876.game-card .game-new-badge{ 877 position:absolute!important; 878 top:10px!important; 879 right:10px!important; 880 z-index:4!important; 881 display:inline-flex!important; 882 align-items:center!important; 883 gap:5px!important; 884 padding:4px 10px 4px 8px!important; 885 border-radius:14px!important; 886 background:linear-gradient(135deg,#ff1744,#ff6d00)!important; 887 color:#fff!important; 888 font-size:10px!important; 889 font-weight:900!important; 890 letter-spacing:1px!important; 891 text-transform:uppercase!important; 892 box-shadow:0 3px 10px rgba(255,87,34,.5),0 1px 3px rgba(0,0,0,.4)!important; 893 animation:gnbPulse 1.6s ease-in-out infinite!important; 894 pointer-events:none; 895} 896.game-card .game-new-badge .gnb-dot{ 897 width:6px;height:6px;border-radius:50%; 898 background:#fff;box-shadow:0 0 6px #fff,0 0 12px rgba(255,255,255,.6); 899 display:inline-block; 900 flex-shrink:0; 901} 902@keyframes gnbPulse{ 903 0%,100%{box-shadow:0 3px 10px rgba(255,87,34,.5),0 0 0 0 rgba(255,87,34,.6)} 904 50%{box-shadow:0 3px 10px rgba(255,87,34,.5),0 0 0 10px rgba(255,87,34,0)} 905} 906 907/* Ribbon efek di kiri atas image untuk NEW */ 908.game-card.is-new .game-img-wrapper::before{ 909 content:""; 910 position:absolute; 911 top:0;left:0; 912 width:60px;height:60px; 913 background:linear-gradient(135deg,rgba(255,23,68,.4),transparent 60%); 914 z-index:2; 915 pointer-events:none; 916} 917 918/* Mobile tweaks for game card */ 919@media(max-width:768px){ 920 .game-card .game-title{font-size:13px!important;padding:8px 10px 4px!important} 921 .game-card .progress-bar-container{margin:0 10px 6px!important;height:18px!important} 922 .game-card .progress-bar-text{line-height:18px!important;font-size:10px!important} 923 .game-card .jam-gacor-info{margin:0 10px 6px!important;font-size:10px!important;padding:4px 8px!important} 924 .game-card .game-info{padding:0 10px 8px!important} 925 .game-card .pola-header{font-size:9px!important} 926 .game-card .pola-slot-table td{font-size:9px!important} 927 .game-card .simulasi-button{margin:0 10px 10px!important;padding:9px 12px!important;font-size:11px!important;width:calc(100% - 20px)!important} 928 .game-card .game-img-wrapper .rtp-float-val{font-size:22px!important} 929 .game-card .game-new-badge{font-size:9px!important;padding:3px 8px 3px 6px!important;gap:4px!important;top:8px!important;right:8px!important} 930 .game-card .game-new-badge .gnb-dot{width:5px;height:5px} 931} 932</style> 933<script id="rtp-float-badge-js"> 934(function(){ 935 function syncBadges(){ 936 // Always re-sync from .progress-bar-text (React's source of truth) so the 937 // big floating "RTP X%" overlay updates when the time block changes. 938 document.querySelectorAll('.game-card').forEach(function(card){ 939 var wrap=card.querySelector('.game-img-wrapper'); 940 var rtpText=card.querySelector('.progress-bar-text'); 941 if(!wrap||!rtpText)return; 942 var val=parseInt((rtpText.textContent||'').replace(/[^\\d]/g,''))||0; 943 if(val===0)return; 944 var cls=val>=80?'rtp-high':(val<20?'rtp-low':''); 945 var html='<span class="rtp-float-label">RTP</span><span class="rtp-float-val '+cls+'">'+val+'%</span>'; 946 var badge=wrap.querySelector('.rtp-float-badge'); 947 if(badge){ 948 if(badge.dataset.val!==String(val)){ 949 badge.dataset.val=String(val); 950 badge.innerHTML=html; 951 } 952 }else{
953 badge=document.createElement('div'); 954 badge.className='rtp-float-badge'; 955 badge.dataset.val=String(val); 956 badge.innerHTML=html; 957 wrap.appendChild(badge); 958 } 959 }); 960 } 961 function start(){ 962 syncBadges(); 963 var obs=new MutationObserver(syncBadges); 964 obs.observe(document.body,{childList:true,subtree:true,characterData:true}); 965 setInterval(syncBadges,1000); 966 } 967 if(document.readyState==='complete')start();else window.addEventListener('load',start); 968})(); 969</script><style id="polish-v1"> 970/* ===== PROFESSIONAL POLISH â fix distorsi, konsistensi, align presisi ===== */ 971 972/* Typography reset untuk konsistensi */ 973body{ 974 -webkit-font-smoothing:antialiased!important; 975 -moz-osx-font-smoothing:grayscale!important; 976 text-rendering:optimizeLegibility!important; 977} 978 979/* ===== FIX IMAGE DISTORTION ===== */ 980/* Game card image â square aspect (match slot thumbnails) */ 981.game-card .game-img-wrapper{aspect-ratio:1/1!important} 982.game-card .game-img-wrapper img{ 983 width:100%!important; 984 height:100%!important; 985 object-fit:cover!important; 986 object-position:center!important; 987 display:block!important; 988} 989 990/* Logo â prevent distortion */ 991.logo-container img.logo{ 992 object-fit:contain!important; 993 object-position:left center!important; 994 width:auto!important; 995 height:auto!important; 996 display:block!important; 997} 998 999/* Banner ad-slot â fixed aspect ratio biar ga peyang */ 1000.banner-adslot{ 1001 aspect-ratio:6/1!important; 1002 max-width:1200px!important; 1003 margin-left:auto!important; 1004 margin-right:auto!important; 1005} 1006.banner-adslot img{ 1007 width:100%!important; 1008 height:100%!important; 1009 max-height:none!important; 1010 object-fit:cover!important; 1011 object-position:center!important; 1012} 1013 1014/* Provider nav icons â kalau ada tambahan, keep aspect */ 1015.nav-menu img{object-fit:contain!important;vertical-align:middle} 1016 1017/* ===== SPACING SYSTEM (consistent 8px base) ===== */ 1018@media(min-width:769px){ 1019 /* Main container padding consistent 24px */ 1020 .header,.header-container,.nav-wrapper,.sort-bar{padding-left:24px!important;padding-right:24px!important} 1021 1022 /* Vertical rhythm */ 1023 .header{min-height:64px} 1024 .header-container{min-height:40px} 1025 .nav-wrapper{min-height:44px} 1026 .sort-bar{min-height:40px} 1027 1028 /* Header grid align perfect */ 1029 .header{align-items:center!important} 1030 .logo-container{align-self:center!important} 1031 .header .search{align-self:center!important} 1032 1033 /* Game list container */ 1034 #game-list{ 1035 padding:16px 24px!important; 1036 gap:16px!important; 1037 max-width:1400px; 1038 margin:0 auto; 1039 } 1040 1041 /* FAQ + artikel centered with consistent max-width */ 1042 .faq-wrap,.artikel{max-width:1140px!important;margin-left:auto!important;margin-right:auto!important} 1043 1044 /* Footer align */ 1045 .site-footer{padding:24px!important} 1046 .footer-grid{max-width:1200px;margin:0 auto!important} 1047} 1048 1049/* ===== ALIGNMENT FIXES ===== */ 1050/* Sort bar: perfect flex alignment */ 1051.sort-bar{ 1052 display:flex!important; 1053 align-items:center!important; 1054 flex-wrap:wrap!important; 1055 gap:12px!important; 1056} 1057.sort-bar>*{margin:0!important} 1058 1059/* Sort select consistent styling */ 1060.sort-bar select{ 1061 background:#12121a!important; 1062 color:#fff!important; 1063 border:1px solid #2a2a35!important; 1064 padding:7px 28px 7px 12px!important; 1065 border-radius:6px!important; 1066 font-size:12px!important; 1067 font-weight:600!important; 1068 cursor:pointer; 1069 appearance:none; 1070 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23fc0' d='M0 0l5 6 5-6z'/></svg>")!important; 1071 background-repeat:no-repeat!important; 1072 background-position:right 10px center!important; 1073} 1074.sort-bar .game-count{ 1075 color:#888!important; 1076 font-size:11px!important; 1077 font-weight:600; 1078 padding:0 4px; 1079} 1080 1081/* Filter container â match sort styling */ 1082.header-container{ 1083 display:flex!important; 1084 align-items:center!important; 1085 gap:12px!important; 1086} 1087.filter-container{flex-shrink:0!important} 1088.filter-container select{ 1089 padding:7px 28px 7px 12px!important; 1090 border-radius:6px!important; 1091 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23fc0' d='M0 0l5 6 5-6z'/></svg>")!important; 1092 background-repeat:no-repeat!important; 1093 background-position:right 10px center!important; 1094 appearance:none; 1095} 1096.filter-container::after{display:none!important} 1097 1098/* Running text */ 1099.running-text{ 1100 background:#12121a!important; 1101 border:1px solid #1f1f2a!important; 1102 border-radius:6px!important; 1103 padding:7px 14px!important; 1104} 1105.marquee-text{font-weight:700;font-size:12px;letter-spacing:.3px} 1106 1107/* ===== NAV PROVIDER PILLS â consistent sizing ===== */ 1108.nav-wrapper{ 1109 display:flex!important; 1110 align-items:center!important; 1111 overflow-x:auto!important; 1112 overflow-y:hidden!important; 1113 -webkit-overflow-scrolling:touch; 1114 scrollbar-width:none; 1115} 1116.nav-wrapper::-webkit-scrollbar{display:none}
1117.nav-container{ 1118 display:flex!important; 1119 flex-direction:row!important; 1120 gap:8px!important; 1121 flex-wrap:nowrap!important; 1122 align-items:center!important; 1123 padding:4px 0!important; 1124 min-height:36px; 1125} 1126.nav-menu{ 1127 flex-shrink:0!important; 1128 padding:7px 14px!important; 1129 font-size:11px!important; 1130 font-weight:700!important; 1131 border-radius:18px!important; 1132 background:#12121a!important; 1133 border:1px solid #2a2a35!important; 1134 color:#bbb!important; 1135 text-decoration:none!important; 1136 white-space:nowrap!important; 1137 letter-spacing:.3px!important; 1138 transition:all .15s!important; 1139 line-height:1.2!important; 1140 min-height:30px; 1141 display:inline-flex!important; 1142 align-items:center!important; 1143 justify-content:center!important; 1144} 1145.nav-menu:hover{background:#1a1a28!important;border-color:#fc0!important;color:#fff!important} 1146.nav-menu.active{ 1147 background:linear-gradient(135deg,#fc0,#ff9500)!important; 1148 color:#000!important; 1149 border-color:#fc0!important; 1150 box-shadow:0 2px 8px rgba(255,204,0,.3)!important; 1151 font-weight:800!important; 1152} 1153.nav-menu .hot-tag{ 1154 background:#ff1744!important; 1155 color:#fff!important; 1156 font-size:8px!important; 1157 padding:2px 5px!important; 1158 border-radius:3px!important; 1159 margin-left:6px!important; 1160 font-weight:900!important; 1161 letter-spacing:.5px!important; 1162 line-height:1!important; 1163} 1164 1165/* ===== GAME CARD FINAL POLISH ===== */ 1166.game-card{ 1167 min-height:auto; 1168 contain:layout style; 1169} 1170.game-card .game-title{ 1171 padding:12px 14px 6px!important; 1172 font-size:14px!important; 1173 color:#fff!important; 1174 font-weight:800!important; 1175} 1176.game-card .progress-bar-container{ 1177 margin:0 14px 10px!important; 1178 height:20px!important; 1179 border-radius:6px!important; 1180} 1181.game-card .progress-bar-text{line-height:20px!important} 1182.game-card .jam-gacor-info{ 1183 margin:0 14px 8px!important; 1184 padding:6px 10px!important; 1185 background:rgba(252,204,0,.06)!important; 1186 border-left:2px solid #fc0!important; 1187 border-radius:4px!important; 1188 font-size:11px!important; 1189 display:flex!important; 1190 align-items:center!important; 1191 justify-content:space-between!important; 1192 gap:8px!important; 1193} 1194.game-card .game-info{padding:0 14px 12px!important} 1195.game-card .pola-slot{ 1196 background:#0a0a12!important; 1197 border:1px solid #1f1f2a!important; 1198 border-radius:6px!important; 1199 padding:8px 10px!important; 1200} 1201.game-card .simulasi-button{ 1202 margin:0 14px 14px!important; 1203 width:calc(100% - 28px)!important; 1204 padding:10px!important; 1205 font-size:12px!important; 1206 border-radius:8px!important; 1207} 1208 1209/* ===== FOOTER POLISH ===== */ 1210.site-footer{ 1211 margin-top:40px!important; 1212 padding:32px 24px 20px!important; 1213 background:#0a0a12!important; 1214 border-top:1px solid #1a1a28!important; 1215} 1216.footer-grid{ 1217 display:grid!important; 1218 grid-template-columns:1.5fr 1fr 1fr!important; 1219 gap:32px!important; 1220 margin-bottom:24px!important; 1221} 1222@media(max-width:768px){ 1223 .footer-grid{grid-template-columns:1fr!important;gap:24px!important} 1224 .site-footer{padding:24px 16px!important;margin-top:24px!important} 1225} 1226.footer-brand{ 1227 font-size:20px!important; 1228 font-weight:900!important; 1229 color:#fc0!important; 1230 margin-bottom:10px!important; 1231 letter-spacing:.5px!important; 1232} 1233.footer-desc{font-size:12px!important;color:#888!important;line-height:1.6!important} 1234.footer-title{ 1235 font-size:13px!important; 1236 font-weight:800!important; 1237 color:#fff!important; 1238 margin-bottom:12px!important; 1239 letter-spacing:.5px!important; 1240 text-transform:uppercase!important; 1241} 1242.footer-links{list-style:none!important;padding:0!important;margin:0!important} 1243.footer-links li{margin-bottom:6px!important} 1244.footer-links a{ 1245 color:#888!important; 1246 text-decoration:none!important; 1247 font-size:12px!important; 1248 transition:color .15s!important; 1249} 1250.footer-links a:hover{color:#fc0!important} 1251.footer-copy{ 1252 font-size:11px!important; 1253 color:#555!important; 1254 text-align:center!important; 1255 padding-top:16px!important; 1256 border-top:1px solid #1a1a28!important; 1257 margin-top:16px!important; 1258} 1259.footer-disclaimer{ 1260 font-size:10px!important; 1261 color:#444!important; 1262 text-align:center!important; 1263 margin-top:4px!important; 1264 font-style:italic; 1265} 1266 1267/* ===== TICKER POLISH ===== */ 1268.ticker-bar{ 1269 background:linear-gradient(90deg,#0a0a12,#1a1a28,#0a0a12)!important; 1270 border-bottom:1px solid #1f1f2a!important; 1271 padding:6px 0!important; 1272 overflow:hidden; 1273} 1274.ticker-item{font-size:11px!important;color:#ccc!important;font-weight:600!important} 1275 1276/* ===== REMOVE any residual element shifts ===== */ 1277*{box-sizing:border-box!important} 1278img{max-width:100%!important} 1279 1280/* Prevent horizontal scroll */ 1281html,body{overflow-x:hidden!important} 1282 1283/* ===== HIDE search-chips totally (stats kurang berguna) ===== */ 1284.search-chips, 1285div.search-chips,
1286body .search-chips{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important} 1287 1288/* Legacy rule preserved but irrelevant (stays hidden above) */ 1289.search-chips.__unused-preserve{ 1290 display:flex!important; 1291 justify-content:center!important; 1292 align-items:center!important; 1293 gap:10px!important; 1294 flex-wrap:wrap!important; 1295 margin:10px auto 14px!important; 1296 max-width:1140px; 1297 padding:0 20px; 1298} 1299.search-chips .chip{ 1300 display:inline-flex!important; 1301 align-items:center!important; 1302 gap:8px!important; 1303 padding:9px 18px!important; 1304 border-radius:22px!important; 1305 font-size:12px!important; 1306 font-weight:800!important; 1307 letter-spacing:.3px!important; 1308 border:1px solid transparent!important; 1309 background:linear-gradient(135deg,#1a1a28,#12121a)!important; 1310 color:#ddd!important; 1311 transition:all .2s cubic-bezier(.4,0,.2,1)!important; 1312 cursor:default; 1313 position:relative; 1314 overflow:hidden; 1315 box-shadow:0 2px 8px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.03); 1316} 1317.search-chips .chip::before{ 1318 content:""; 1319 position:absolute; 1320 inset:0; 1321 border-radius:22px; 1322 padding:1px; 1323 background:linear-gradient(135deg,#2a2a35,#1a1a28); 1324 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); 1325 -webkit-mask-composite:xor; 1326 mask-composite:exclude; 1327 transition:background .2s; 1328} 1329.search-chips .chip:hover{ 1330 transform:translateY(-2px)!important; 1331 box-shadow:0 6px 18px rgba(255,204,0,.2),inset 0 1px 0 rgba(255,255,255,.05)!important; 1332} 1333.search-chips .chip:hover::before{background:linear-gradient(135deg,#fc0,#ff6b00)!important} 1334 1335.search-chips .chip-hot{color:#ff9500!important} 1336.search-chips .chip-hot #chip-gacor{ 1337 color:#fff!important; 1338 font-weight:900!important; 1339 font-size:14px!important; 1340 padding:1px 8px; 1341 background:linear-gradient(135deg,#ff5722,#ff9500); 1342 border-radius:10px; 1343 box-shadow:0 2px 8px rgba(255,87,34,.35); 1344} 1345 1346.search-chips .chip-count{color:#fc0!important} 1347.search-chips .chip-count #chip-total{ 1348 color:#000!important; 1349 font-weight:900!important; 1350 font-size:14px!important; 1351 padding:1px 8px; 1352 background:linear-gradient(135deg,#fc0,#ffeb3b); 1353 border-radius:10px; 1354 box-shadow:0 2px 8px rgba(255,204,0,.35); 1355} 1356 1357.search-chips .chip-top{color:#00e676!important} 1358.search-chips .chip-top #chip-top{ 1359 color:#000!important; 1360 font-weight:900!important; 1361 font-size:14px!important; 1362 padding:1px 8px; 1363 background:linear-gradient(135deg,#00c853,#00e676); 1364 border-radius:10px; 1365 box-shadow:0 2px 8px rgba(0,230,118,.35); 1366} 1367 1368@media(max-width:768px){ 1369 .search-chips{gap:6px!important;margin:8px auto 10px!important;padding:0 10px} 1370 .search-chips .chip{padding:6px 12px!important;font-size:10px!important;gap:5px!important} 1371 .search-chips .chip-hot #chip-gacor, 1372 .search-chips .chip-count #chip-total, 1373 .search-chips .chip-top #chip-top{font-size:11px!important;padding:1px 6px!important} 1374} 1375 1376/* ===== GAME GRID â FIXED, PRESISI ===== */ 1377@media(min-width:1281px){#game-list.container{grid-template-columns:repeat(5,minmax(0,1fr))!important}} 1378@media(min-width:961px) and (max-width:1280px){#game-list.container{grid-template-columns:repeat(4,minmax(0,1fr))!important}} 1379@media(min-width:641px) and (max-width:960px){#game-list.container{grid-template-columns:repeat(3,minmax(0,1fr))!important}} 1380@media(max-width:640px){#game-list.container{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:10px!important}} 1381 1382#game-list.container{ 1383 max-width:1400px!important; 1384 margin:12px auto!important; 1385 padding:0 24px!important; 1386 gap:16px!important; 1387 grid-auto-flow:dense!important; 1388} 1389 1390/* Game card proportions polish */ 1391.game-card{ 1392 display:flex!important; 1393 flex-direction:column!important; 1394} 1395.game-card .game-info{flex:1 0 auto} 1396.game-card .simulasi-button{margin-top:auto!important} 1397 1398/* Game title 2-line ellipsis (consistent height) */ 1399.game-card .game-title{ 1400 display:-webkit-box!important; 1401 -webkit-line-clamp:1!important; 1402 -webkit-box-orient:vertical!important; 1403 overflow:hidden!important; 1404 white-space:nowrap!important; 1405 text-overflow:ellipsis!important; 1406 min-height:22px; 1407} 1408 1409/* Jam gacor single line */ 1410.game-card .jam-gacor-info{ 1411 white-space:nowrap!important; 1412 overflow:hidden!important; 1413} 1414.game-card .jam-gacor-info .jam-value{ 1415 white-space:nowrap!important; 1416} 1417 1418/* ===== SEARCH BAR â MODERN PILL WITH ICON BUTTON INSIDE (unified) ===== */ 1419.header .search{ 1420 position:relative!important; 1421 display:flex!important; 1422 align-items:center!important; 1423 gap:0!important; 1424} 1425.header .search input{ 1426 width:100%!important; 1427 flex:1!important; 1428 padding:0 56px 0 20px!important; 1429 height:46px!important; 1430 min-height:46px!important; 1431 max-height:46px!important; 1432 font-size:14px!important; 1433 border-radius:999px!important; 1434 background:#12121a!important; 1435 border:1.5px solid #2a2a35!important; 1436 color:#fff!important; 1437 font-weight:500!important; 1438 outline:none!important; 1439 transition:border-color .15s,box-shadow .15s!important; 1440 box-sizing:border-box!important; 1441} 1442.header .search input:focus{ 1443 border-color:#fc0!important; 1444 box-shadow:0 0 0 3px rgba(255,204,0,.12)!important; 1445} 1446.header .search input::placeholder{color:#666!important;font-weight:500!important} 1447 1448/* Button jadi icon-only circle di kanan input */ 1449.header .search button{ 1450 position:absolute!important; 1451 right:4px!important; 1452 top:50%!important; 1453 transform:translateY(-50%)!important; 1454 width:38px!important; 1455 height:38px!important; 1456 min-width:38px!important; 1457 min-height:38px!important; 1458 padding:0!important; 1459 border-radius:50%!important; 1460 background:linear-gradient(135deg,#fc0,#ff9500)!important; 1461 color:#000!important; 1462 border:none!important; 1463 cursor:pointer!important; 1464 font-size:0!important; /* hide "Cari" text, replace with icon */ 1465 display:flex!important; 1466 align-items:center!important; 1467 justify-content:center!important; 1468 transition:transform .15s,box-shadow .15s!important; 1469 box-shadow:0 2px 8px rgba(255,204,0,.3)!important; 1470} 1471.header .search button::before{ 1472 content:""; 1473 display:block; 1474 width:18px; 1475 height:18px; 1476 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.35-4.35'/></svg>"); 1477 background-size:contain; 1478 background-repeat:no-repeat; 1479} 1480.header .search button:hover{ 1481 transform:translateY(-50%) scale(1.05)!important; 1482 box-shadow:0 4px 14px rgba(255,204,0,.5)!important; 1483} 1484.header .search button:active{ 1485 transform:translateY(-50%) scale(.95)!important; 1486} 1487 1488/* Remove the old ::before icon on search container (moved into button) */ 1489.header .search::before{display:none!important} 1490 1491/* Desktop size */ 1492@media(min-width:769px){ 1493 .header .search{ 1494 max-width:560px!important; 1495 width:100%!important; 1496 } 1497 .header .search input{ 1498 height:48px!important; 1499 min-height:48px!important; 1500 max-height:48px!important; 1501 padding:0 60px 0 22px!important; 1502 font-size:15px!important; 1503 } 1504 .header .search button{ 1505 width:40px!important; 1506 height:40px!important; 1507 right:4px!important; 1508 } 1509 .header .search button::before{width:19px;height:19px} 1510} 1511 1512/* ===== MOBILE POLISH â stack rapi, proporsi benar ===== */ 1513@media(max-width:768px){ 1514 /* Header stacked clean */ 1515 .header{ 1516 display:flex!important; 1517 flex-direction:column!important; 1518 padding:10px 12px!important; 1519 gap:8px!important; 1520 position:static!important; 1521 } 1522 1523 /* Row 1: logo tengah */ 1524 .logo-container{ 1525 order:1!important; 1526 width:100%; 1527 justify-content:center!important; 1528 margin:0!important; 1529 } 1530 .logo-container img.logo{ 1531 max-width:120px!important; 1532 max-height:60px!important; 1533 } 1534 1535 /* Row 2: buttons masuk/daftar â EQUAL WIDTH, FIXED HEIGHT ===== */ 1536 .header .buttons{ 1537 order:2!important; 1538 display:grid!important; 1539 grid-template-columns:1fr 1fr!important; 1540 gap:10px!important; 1541 width:100%!important; 1542 margin:0!important; 1543 } 1544 .header .buttons a, 1545 .header .buttons a.masuk, 1546 .header .buttons a.daftar{ 1547 height:44px!important; 1548 min-height:44px!important; 1549 max-height:44px!important; 1550 padding:0 12px!important; 1551 font-size:13px!important; 1552 font-weight:800!important; 1553 border-radius:10px!important; 1554 display:flex!important;
1555 align-items:center!important; 1556 justify-content:center!important; 1557 text-align:center!important; 1558 line-height:1!important; 1559 letter-spacing:.5px!important; 1560 white-space:nowrap!important; 1561 text-decoration:none!important; 1562 } 1563 .header .buttons a.masuk{ 1564 background:#2F3645!important; 1565 color:#fff!important; 1566 border:1px solid #3a3a45!important; 1567 } 1568 .header .buttons a.daftar{ 1569 background:linear-gradient(135deg,#fc0,#ff6b00)!important; 1570 color:#000!important; 1571 border:1px solid #fc0!important; 1572 box-shadow:0 3px 12px rgba(255,204,0,.25)!important; 1573 } 1574 1575 /* Row 3: search â unified pill (styling ada di desktop/global block above) */ 1576 .header .search{ 1577 order:3!important; 1578 width:100%!important; 1579 margin:0!important; 1580 } 1581 1582 /* Banner tetap hidden mobile */ 1583 .header>a:has(img.banner){display:none!important} 1584 .header img.banner{display:none!important} 1585 1586 /* Running text + filter row */ 1587 .header-container{ 1588 padding:8px 12px!important; 1589 background:#0f0f18!important; 1590 border-bottom:1px solid #1a1a28!important; 1591 gap:8px!important; 1592 } 1593 .running-text{ 1594 flex:1!important; 1595 min-width:0!important; 1596 padding:6px 12px!important; 1597 font-size:11px!important; 1598 background:#12121a!important; 1599 border-radius:6px!important; 1600 } 1601 .filter-container{flex-shrink:0!important} 1602 .filter-container select{ 1603 padding:6px 24px 6px 10px!important; 1604 font-size:11px!important; 1605 min-width:90px!important; 1606 } 1607 .filter-container label{display:none!important} /* label "Tampilkan" hide on mobile to save space */ 1608 1609 /* Provider nav smooth scroll */ 1610 .nav-wrapper{ 1611 padding:8px 12px!important; 1612 background:#0f0f18!important; 1613 border-bottom:1px solid #1a1a28!important; 1614 } 1615 .nav-container{gap:6px!important} 1616 .nav-menu{ 1617 padding:7px 12px!important; 1618 font-size:11px!important; 1619 border-radius:16px!important; 1620 min-height:32px; 1621 } 1622 1623 /* Sort bar compact with LIVE pill */ 1624 .sort-bar{ 1625 padding:8px 12px!important; 1626 background:#0f0f18!important; 1627 gap:8px!important; 1628 } 1629 .sort-bar select{ 1630 padding:6px 24px 6px 10px!important; 1631 font-size:11px!important; 1632 } 1633 .sort-bar .game-count{font-size:10px!important;white-space:nowrap!important} 1634 #sort-live-pill{ 1635 font-size:9px!important; 1636 padding:3px 8px!important; 1637 margin-left:auto!important; 1638 gap:4px!important; 1639 } 1640 #sort-live-pill .sl-live, 1641 #sort-live-pill .sl-time{font-size:9px!important} 1642 1643 /* Game grid mobile 2-col clean */ 1644 #game-list.container{ 1645 padding:10px!important; 1646 gap:10px!important; 1647 margin:0 auto!important; 1648 } 1649 1650 /* Ad-slot banner mobile â fit properly */ 1651 .banner-adslot{ 1652 aspect-ratio:auto!important; 1653 margin:10px 0!important; 1654 grid-column:1/-1!important; 1655 } 1656 .banner-adslot img{ 1657 max-height:60px!important; 1658 object-fit:cover!important; 1659 } 1660} 1661</style><script id="bet-accuracy-v1"> 1662(function(){ 1663 // Denominasi bet realistis per provider (min 400 perak â batas minimum website) 1664 var BET_TABLES={ 1665 pragmatic_play:[400,600,800,1000,1200,1600,2000,2400,2800,3200,4000,4800,6000,8000,10000,12000,16000,20000], 1666 pg_soft:[400,600,800,1000,1200,1400,1600,1800,2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,40000,60000,100000,160000,200000,500000,1000000], 1667 habanero:[500,1000,2500,5000,7500,10000,25000,50000], 1668 microgaming:[400,800,1600,3200,6400,12800], 1669 joker:[500,1000,2000,5000,10000,20000], 1670 spadegaming:[400,800,1600,3200,6400,12800,25600], 1671 nolimit_city:[400,800,1600,3200,6400,12800], 1672 jili:[400,1000,2000,4000,10000,20000], 1673 yggdrasil:[500,1000,2500,5000,10000,25000], 1674 playstar:[500,1000,2000,5000,10000], 1675 bng:[400,800,1600,3200,6400], 1676 fachai:[500,1000,2000,5000,10000], 1677 fast_spin:[400,800,1600,3200], 1678 advant_play:[500,1000,2000,5000], 1679 top_trend:[400,800,1600,3200], 1680 mimi_gaming:[500,1000,2000,5000], 1681 speed_gaming:[400,800,1600,3200], 1682 pt_game:[500,1000,2000,5000], 1683 '5g_games':[500,1000,2000,5000], 1684 play_tech:[500,1000,2000,5000,10000], 1685 pg:[500,1000,2000,5000,10000], 1686 _default:[400,500,1000,2000,5000,10000] 1687 }; 1688 function getProvider(){ 1689 var m=location.pathname.match(/\\/([^\\/]+)\\/?$/); 1690 if(!m)return '_default'; 1691 return m[1].replace(/-/g,'_').toLowerCase(); 1692 } 1693 function nearestInTable(val,table){ 1694 var best=table[0],bd=Math.abs(val-best); 1695 for(var i=1;i<table.length;i++){ 1696 var d=Math.abs(val-table[i]); 1697 if(d<bd){best=table[i];bd=d;} 1698 } 1699 return best; 1700 } 1701 function nextInTable(val,table){ 1702 for(var i=0;i<table.length;i++){if(table[i]>val)return table[i];} 1703 return table[table.length-1]; 1704 } 1705 function fmt(n){return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g,'.')} 1706 function fixCard(card,provider){ 1707 var table=BET_TABLES[provider]||BET_TABLES._default; 1708 var bets=card.querySelectorAll('.pola-a-bet'); 1709 if(bets.length<3)return;
1710 var key=provider+'|'+Array.from(bets).map(function(b){return b.textContent.trim()}).join(','); 1711 if(card.dataset.betKey===key)return; 1712 // Parse current values 1713 var raw=[]; 1714 bets.forEach(function(b){ 1715 var n=parseInt((b.textContent||'').replace(/[^\\d]/g,''))||0; 1716 raw.push(n); 1717 }); 1718 // Round to nearest, ensure strictly increasing 1719 var rounded=[nearestInTable(raw[0],table)]; 1720 rounded.push(Math.max(nextInTable(rounded[0],table),nearestInTable(raw[1],table))); 1721 if(rounded[1]<=rounded[0])rounded[1]=nextInTable(rounded[0],table); 1722 rounded.push(Math.max(nextInTable(rounded[1],table),nearestInTable(raw[2],table))); 1723 if(rounded[2]<=rounded[1])rounded[2]=nextInTable(rounded[1],table); 1724 // Apply 1725 bets.forEach(function(b,i){b.textContent=fmt(rounded[i]);}); 1726 card.dataset.betKey=key; 1727 } 1728 function fixAll(){ 1729 var provider=getProvider(); 1730 document.querySelectorAll('.game-card').forEach(function(c){fixCard(c,provider);}); 1731 } 1732 function start(){ 1733 fixAll(); 1734 new MutationObserver(function(muts){ 1735 for(var i=0;i<muts.length;i++){ 1736 if(muts[i].type==='childList'||muts[i].type==='characterData'){fixAll();return;} 1737 } 1738 }).observe(document.body,{childList:true,subtree:true,characterData:true}); 1739 setInterval(fixAll,2000); 1740 // Re-fix on nav change 1741 var _p=history.pushState;var _r=history.replaceState; 1742 history.pushState=function(){var r=_p.apply(this,arguments);setTimeout(fixAll,400);setTimeout(fixAll,1200);return r}; 1743 history.replaceState=function(){var r=_r.apply(this,arguments);setTimeout(fixAll,400);setTimeout(fixAll,1200);return r}; 1744 window.addEventListener('popstate',function(){setTimeout(fixAll,400);setTimeout(fixAll,1200)}); 1745 }
1746 if(document.readyState==='complete')start();else window.addEventListener('load',start); 1747})(); 1748</script><style id="revisions-v1"> 1749/* === REVISI 19 (Kang Dedi v4): Pola numbers high-contrast (universal) === 1750 Per-brand CSS sometimes set .pola-a-bet to dark blue/purple which was 1751 unreadable on the dark game-card background. Force a "slot-game" palette 1752 (yellow bet + green multiplier) so all 28 brands have legible, vibrant 1753 numbers regardless of brand accent color. */ 1754.pola-a-bet{ 1755 color:#fc0!important; /* yellow gold â universal "uang" color */ 1756 font-weight:900!important; 1757 text-shadow:0 1px 2px rgba(0,0,0,.6)!important; 1758} 1759.pola-a-x{ 1760 color:#00e676!important; /* bright green â universal "win/+" color */ 1761 font-weight:900!important; 1762 text-shadow:0 1px 2px rgba(0,0,0,.6)!important; 1763} 1764.pola-a-title{ 1765 color:#ffffff!important; 1766 text-shadow:0 1px 2px rgba(0,0,0,.5)!important; 1767} 1768/* "Bet/Naikin/Stabil" verb text â supporting, slightly muted */ 1769.pola-a-step>span:not(.pola-a-num){color:#d8d8e0!important} 1770 1771/* === REVISI 1: POLA SPIN HARI INI smaller text === */ 1772.pola-a-title{ 1773 font-size:8px!important; 1774 letter-spacing:.4px!important; 1775 margin-bottom:6px!important; 1776 opacity:.85; 1777} 1778@media(max-width:768px){ 1779 .pola-a-title{font-size:7px!important;letter-spacing:.3px!important;margin-bottom:5px!important} 1780} 1781 1782/* === REVISI 2: Mobile responsive polish === */ 1783@media(max-width:768px){ 1784 /* Game grid 2 columns on mobile (was 3-4) â bigger card images */ 1785 .container#game-list,#game-list{grid-template-columns:repeat(2,1fr)!important;gap:8px!important;padding:0 8px!important} 1786 1787 /* Pola spin section - tighter padding */ 1788 .pola-a{padding:7px 8px!important;font-size:10px!important;margin-top:4px!important} 1789 .pola-a-step{font-size:10px!important;margin-bottom:4px!important;gap:4px!important;line-height:1.3!important} 1790 .pola-a-num{width:14px!important;height:14px!important;font-size:9px!important;flex-shrink:0!important} 1791 .pola-a-bet{font-size:10px!important} 1792 .pola-a-x{font-size:10px!important} 1793 1794 /* Game title - smaller */ 1795 .game-title{font-size:10px!important;padding:6px 4px!important;letter-spacing:0!important} 1796 1797 /* RTP value text bigger contrast on small */ 1798 .progress-bar-text{font-size:24px!important} 1799 1800 /* Jam Gacor row tighter */ 1801 .game-card .jam-gacor,.game-card .jam{font-size:10px!important;padding:6px 8px!important} 1802 1803 /* Banner promo card â smaller padding */ 1804 .banner{max-height:140px!important;object-fit:cover!important} 1805 1806 /* Empty state pola - tighter on mobile */ 1807 .pola-empty{padding:10px 8px!important;margin:4px 0!important} 1808 .pola-empty-icon{font-size:18px!important;margin-bottom:4px!important} 1809 .pola-empty-title{font-size:10px!important;letter-spacing:.4px!important} 1810 .pola-empty-desc{font-size:9px!important;line-height:1.3!important} 1811 1812 /* Simulasi button compact */ 1813 .simulasi-button{padding:8px!important;font-size:11px!important;letter-spacing:0!important} 1814} 1815 1816/* === REVISI 3: Tighter desktop pola too (consistency) === */ 1817.pola-a{padding:8px 10px!important;font-size:11px!important} 1818.pola-a-step{margin-bottom:5px!important} 1819 1820/* === REVISI 4 v3 (Kang Dedi): compact & symmetric â stretch via flex === */ 1821/* Card di same row equal height (CSS grid default) â content stretch alami */ 1822 1823#game-list{align-items:stretch!important} 1824 1825.game-card{ 1826 display:flex!important; 1827 flex-direction:column!important; 1828 height:100%!important; 1829 box-sizing:border-box!important; 1830} 1831 1832.game-card img{ 1833 aspect-ratio:1/1!important; 1834 object-fit:cover!important; 1835} 1836 1837.game-card .game-title{ 1838 min-height:30px!important; 1839 display:flex!important; 1840 align-items:center!important; 1841 justify-content:center!important; 1842 text-align:center!important; 1843 flex-shrink:0!important; 1844} 1845 1846.game-card .progress-bar, 1847.game-card .progress, 1848.game-card .jam-gacor,.game-card .jam{flex-shrink:0!important} 1849 1850/* Pola section â flex stretch (fill remaining card space) bukan fixed height */ 1851/* Min-height 130px supaya content pola-empty ga ke-squeeze */ 1852.game-card .pola-a, 1853.game-card .pola-empty{ 1854 flex:1 1 auto!important; 1855 min-height:130px!important; 1856 display:flex!important; 1857 flex-direction:column!important; 1858 justify-content:center!important; 1859 box-sizing:border-box!important; 1860 margin:6px 0!important; 1861} 1862 1863/* Simulasi button bottom */ 1864.game-card .simulasi-button, 1865.game-card button.simulasi-button{ 1866 margin-top:auto!important; 1867 flex-shrink:0!important; 1868} 1869 1870@media(max-width:768px){ 1871 .game-card .pola-a, 1872 .game-card .pola-empty{min-height:110px!important} 1873 .game-card .game-title{min-height:28px!important;font-size:10px!important} 1874} 1875 1876/* === REVISI 5 (Kang Dedi): Simulasi popup lebih besar === */ 1877.popup-overlay,#simulasi-popup{ 1878 display:flex!important; 1879 align-items:center!important; 1880 justify-content:center!important; 1881 padding:20px!important; 1882 box-sizing:border-box!important; 1883} 1884.popup-content{ 1885 width:90%!important; 1886 max-width:560px!important; 1887 max-height:90vh!important; 1888 overflow-y:auto!important; 1889 padding:30px 26px!important; 1890 border-radius:14px!important; 1891} 1892.popup-content h2,.popup-content h3,.popup-content .popup-title{ 1893 font-size:18px!important; 1894 margin-bottom:14px!important; 1895} 1896.popup-content input,.popup-content button{ 1897 font-size:14px!important; 1898} 1899.popup-content button.simulasi-button, 1900.popup-content .simulasi-action{ 1901 padding:12px 16px!important; 1902 font-size:14px!important; 1903 letter-spacing:.5px!important; 1904} 1905@media(max-width:600px){ 1906 .popup-content{ 1907 width:95%!important; 1908 max-width:none!important; 1909 padding:20px 16px!important; 1910 } 1911 .popup-content h2,.popup-content h3,.popup-content .popup-title{font-size:16px!important} 1912} 1913 1914/* === REVISI 6 (Kang Dedi): HOT badge readable text + size === */ 1915.hot-badge{ 1916 font-size:10px!important; 1917 padding:2px 7px!important; 1918 letter-spacing:.5px!important; 1919 font-weight:900!important; 1920 margin-left:4px!important; 1921 border-radius:6px!important; 1922 background:#ff1744!important; /* solid red â universal readable */ 1923 color:#fff!important; 1924 text-shadow:0 1px 0 rgba(0,0,0,.4)!important; 1925 box-shadow:0 1px 3px rgba(255,23,68,.4)!important; 1926 vertical-align:middle!important; 1927 line-height:1.2!important; 1928 display:inline-block!important; 1929} 1930@media(max-width:768px){ 1931 .hot-badge{font-size:9px!important;padding:1px 5px!important} 1932} 1933 1934/* === REVISI 7 (Kang Dedi v2): Banner ad-slot full-width row (no grid break) === */ 1935.game-card.banner-adslot, 1936.banner-adslot{ 1937 grid-column:1 / -1!important; 1938 width:100%!important; 1939 max-width:none!important; 1940 aspect-ratio:auto!important; 1941 height:auto!important; 1942 max-height:200px!important; 1943 margin:8px 0!important; 1944} 1945.banner-adslot img{ 1946 width:100%!important; 1947 height:auto!important; 1948 max-height:200px!important; 1949 object-fit:cover!important; 1950 border-radius:10px!important; 1951} 1952 1953/* === REVISI 8 (Kang Dedi v2): Progress bar OVERLAY ke game image === */ 1954.game-card{position:relative!important} 1955.game-card .game-img-wrapper{position:relative!important;overflow:hidden!important;border-radius:8px 8px 0 0!important} 1956.game-card .progress-bar-container{ 1957 position:absolute!important; 1958 bottom:0!important; 1959 left:0!important; 1960 right:0!important; 1961 height:6px!important; 1962 background:rgba(0,0,0,.5)!important; 1963 border-radius:0!important; 1964 margin:0!important; 1965 z-index:2!important; 1966 overflow:hidden!important; 1967} 1968/* Hide RTP text from inside bar (already shown on image as overlay 50%) */ 1969.game-card .progress-bar-container .progress-bar-text{display:none!important} 1970.game-card .progress-bar-container .progress-bar{ 1971 height:100%!important; 1972 border-radius:0!important; 1973 transition:width .3s ease!important; 1974} 1975/* Move progress-bar-container into image-wrapper visually via z-index trick */ 1976.game-card .game-img-wrapper{margin-bottom:0!important} 1977.game-card .game-img-wrapper + .game-title{margin-top:0!important} 1978 1979/* Hide separate progress-bar-container that's NOT the overlay (legacy below title) */ 1980.game-card>.progress-bar-container{ 1981 position:relative!important; 1982 height:4px!important; 1983 margin:0!important; 1984 background:rgba(0,0,0,.3)!important; 1985 display:none!important; /* hide karena udah ada overlay di image */ 1986} 1987 1988/* === REVISI 11 (Kang Dedi v2): Marquee text (header running text) GLOBAL === */ 1989.running-text{ 1990 flex:1!important; 1991 min-width:0!important; 1992 background:rgba(0,0,0,.4)!important; 1993 border-radius:6px!important; 1994 padding:8px 14px!important; 1995 overflow:hidden!important; 1996 border:1px solid rgba(255,255,255,.08)!important; 1997 white-space:nowrap!important; 1998 position:relative!important; 1999} 2000.marquee-text{ 2001 display:inline-block!important; 2002 white-space:nowrap!important; 2003 animation:marqueeMoveGlobal 22s linear infinite!important; 2004 font-size:13px!important; 2005 font-weight:700!important; 2006 letter-spacing:.3px!important; 2007} 2008@keyframes marqueeMoveGlobal{ 2009 0%{transform:translateX(100%)} 2010 100%{transform:translateX(-100%)} 2011} 2012.running-text:hover .marquee-text{animation-play-state:paused!important} 2013 2014@media(max-width:768px){ 2015 .marquee-text{font-size:11px!important;animation-duration:18s!important} 2016} 2017 2018/* === REVISI 10 (Kang Dedi v2): Ticker animation GLOBAL (semua theme + semua screen size) === */ 2019.ticker-bar{ 2020 display:block!important; 2021 position:relative!important; 2022 overflow:hidden!important; 2023 width:100%!important; 2024 background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(255,255,255,.05),rgba(0,0,0,.4))!important; 2025 padding:8px 0!important; 2026 margin-bottom:8px!important; 2027 border-radius:6px!important; 2028 border:1px solid rgba(255,255,255,.08)!important; 2029 white-space:nowrap!important; 2030} 2031.ticker-track{ 2032 display:inline-flex!important; 2033 flex-wrap:nowrap!important; 2034 white-space:nowrap!important; 2035 animation:tickerScrollGlobal 40s linear infinite!important; 2036 gap:48px!important; 2037 width:max-content!important; 2038} 2039.ticker-item{ 2040 font-size:12px!important; 2041 font-weight:600!important; 2042 white-space:nowrap!important; 2043 flex-shrink:0!important; 2044 display:inline-flex!important; 2045 align-items:center!important; 2046 gap:6px!important; 2047} 2048@keyframes tickerScrollGlobal{ 2049 0%{transform:translateX(0)} 2050 100%{transform:translateX(-50%)} 2051} 2052/* Pause animation on hover supaya user bisa baca */ 2053.ticker-bar:hover .ticker-track{animation-play-state:paused!important} 2054 2055@media(max-width:768px){ 2056 .ticker-bar{padding:5px 0!important} 2057 .ticker-item{font-size:10px!important} 2058 .ticker-track{animation-duration:30s!important} 2059} 2060 2061/* === REVISI 15 (Kang Dedi v3): Countdown to next RTP refresh === */ 2062.rtp-countdown{ 2063 color:#fc0!important; 2064 font-weight:800!important; 2065 letter-spacing:.3px!important; 2066 font-variant-numeric:tabular-nums!important; 2067 display:inline-block!important; 2068 min-width:36px!important; 2069 text-align:center!important; 2070} 2071.rtp-countdown.is-refresh{color:#00e676!important;animation:rtpRefreshFlash .6s ease-in-out!important} 2072@keyframes rtpRefreshFlash{ 2073 0%,100%{transform:scale(1)} 2074 50%{transform:scale(1.15);text-shadow:0 0 8px rgba(0,230,118,.8)} 2075} 2076 2077/* === REVISI 12 (Kang Dedi v3): Hide jam-gacor element (replaced with RTP live) === */ 2078.game-card .jam-gacor-info, 2079.game-card .jam-gacor, 2080.game-card .jam{display:none!important} 2081 2082/* === REVISI 13 (Kang Dedi v3): RTP LIVE indicator styling === */ 2083.rtp-live-info{ 2084 display:flex!important; 2085 align-items:center!important; 2086 gap:6px!important; 2087 padding:5px 10px!important; 2088 margin:4px 8px 0!important; 2089 background:rgba(0,0,0,.35)!important; 2090 border-radius:14px!important; 2091 font-size:10px!important; 2092 color:#bbb!important; 2093 border:1px solid rgba(255,255,255,.06)!important; 2094} 2095.rtp-live-dot{ 2096 width:6px!important;height:6px!important; 2097 background:#00e676!important;border-radius:50%!important; 2098 animation:rtpLiveDot 1.5s ease-in-out infinite!important; 2099 flex-shrink:0!important; 2100} 2101@keyframes rtpLiveDot{ 2102 0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,230,118,.5)} 2103 50%{opacity:.6;box-shadow:0 0 0 4px rgba(0,230,118,0)} 2104} 2105.rtp-live-label{font-weight:800!important;color:#00e676!important;letter-spacing:.5px!important} 2106.rtp-live-sep{color:#444!important;font-size:8px!important} 2107.rtp-live-update{font-size:9px!important;color:#888!important;font-style:italic!important} 2108@media(max-width:768px){ 2109 .rtp-live-info{font-size:9px!important;padding:4px 8px!important;gap:4px!important} 2110 .rtp-live-update{font-size:8px!important} 2111} 2112 2113/* === REVISI 14 (Kang Dedi v3): Simulasi popup rapikan â 2 column grid === */ 2114.popup-content{ 2115 width:92%!important; 2116 max-width:520px!important; 2117 padding:24px!important; 2118 border-radius:16px!important; 2119 background:linear-gradient(180deg,#1a1a28,#0f0f18)!important; 2120} 2121.popup-content h2,.popup-content h3{ 2122 font-size:16px!important; 2123 margin:0 0 16px 0!important; 2124 color:#fc0!important; 2125 text-align:left!important; 2126} 2127/* Group label + input + chip-options vertical, but TWO groups side by side */ 2128.popup-content>label,.popup-content>input,.popup-content>br{ 2129 display:block!important; 2130} 2131.popup-content>label{ 2132 display:block!important; 2133 font-size:11px!important; 2134 font-weight:700!important; 2135 color:#fc0!important; 2136 text-transform:uppercase!important; 2137 letter-spacing:.5px!important; 2138 margin:8px 0 4px!important; 2139} 2140.popup-content>input[type="number"], 2141.popup-content>input[type="text"]{ 2142 width:100%!important; 2143 box-sizing:border-box!important; 2144 padding:10px 12px!important; 2145 font-size:14px!important; 2146 background:rgba(0,0,0,.4)!important; 2147 border:1px solid rgba(255,255,255,.1)!important; 2148 border-radius:8px!important; 2149 color:#fff!important; 2150 margin:0 0 8px 0!important; 2151} 2152.popup-content>br{display:none!important} 2153.popup-content>button{ 2154 margin-top:14px!important; 2155 width:100%!important; 2156 padding:12px 16px!important; 2157 font-size:13px!important; 2158 font-weight:800!important; 2159 letter-spacing:.5px!important; 2160 background:linear-gradient(135deg,#fc0,#ff8c00)!important; 2161 color:#000!important; 2162 border:none!important; 2163 border-radius:10px!important; 2164 cursor:pointer!important; 2165} 2166.popup-content>button:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(255,204,0,.4)!important} 2167.popup-content .close{ 2168 font-size:22px!important; 2169 top:10px!important;right:14px!important; 2170 color:#888!important; 2171 transition:color .2s!important; 2172} 2173.popup-content .close:hover{color:#fc0!important} 2174.popup-content .simulasi-result{ 2175 margin-top:14px!important; 2176 padding:12px!important; 2177 background:rgba(0,0,0,.5)!important; 2178 border-radius:8px!important; 2179 border:1px solid rgba(255,255,255,.05)!important; 2180 color:#ddd!important; 2181 font-size:12px!important; 2182 line-height:1.5!important; 2183} 2184.popup-content .simulasi-result .probability-text{color:#00e676!important;font-weight:800!important} 2185.popup-content .simulasi-result .winning-amount-text{color:#fc0!important;font-weight:800!important} 2186@media(max-width:600px){ 2187 .popup-content{width:95%!important;padding:18px!important} 2188 .popup-content h2,.popup-content h3{font-size:14px!important} 2189} 2190 2191/* === REVISI 18 (Kang Dedi v4-final): Simulasi popup â button ALWAYS visible === */ 2192/* Overlay covers viewport, scroll fallback on container if content > viewport */ 2193.popup{ 2194 position:fixed!important; 2195 inset:0!important; 2196 width:100%!important; 2197 height:100%!important; 2198 background:rgba(0,0,0,.78)!important; 2199 backdrop-filter:blur(2px)!important; 2200 z-index:1001!important; 2201 overflow:hidden!important; 2202 padding:0!important; 2203} 2204/* Container: exactly viewport-sized, flex-center child, scroll if content > viewport */ 2205.popup-container{ 2206 display:flex!important; 2207 align-items:center!important; 2208 justify-content:center!important; 2209 width:100%!important; 2210 height:100vh!important; 2211 min-height:0!important; 2212 max-height:100vh!important; 2213 padding:12px!important; 2214 box-sizing:border-box!important; 2215 overflow-y:auto!important; 2216 scrollbar-width:none!important; 2217} 2218.popup-container::-webkit-scrollbar{display:none!important}
2219/* Content: natural height, never clips its own children */ 2220.popup-content{ 2221 position:relative!important; 2222 width:100%!important; 2223 max-width:420px!important; 2224 max-height:none!important; 2225 margin:auto!important; 2226 padding:14px 14px 12px!important; 2227 border-radius:14px!important; 2228 background:linear-gradient(180deg,#1a1a28,#0f0f18)!important; 2229 overflow:visible!important; 2230 box-sizing:border-box!important; 2231 display:flex!important; 2232 flex-direction:column!important; 2233 gap:7px!important; 2234 flex-shrink:0!important; 2235} 2236.popup-content::-webkit-scrollbar{display:none!important} 2237/* Title â 1 line, no growth */ 2238.popup-content h2{ 2239 font-size:14px!important; 2240 line-height:1.2!important; 2241 margin:0!important; 2242 padding-right:24px!important; 2243 white-space:nowrap!important; 2244 overflow:hidden!important; 2245 text-overflow:ellipsis!important; 2246 flex-shrink:0!important; 2247} 2248.popup-content .close{ 2249 position:absolute!important; 2250 top:10px!important; 2251 right:12px!important; 2252 font-size:20px!important; 2253 color:#888!important; 2254 cursor:pointer!important; 2255 line-height:1!important; 2256} 2257/* Input block â minimal spacing */ 2258.popup-content .sim-input-block{ 2259 margin:0!important; 2260 flex-shrink:0!important; 2261} 2262.popup-content .sim-input-label{ 2263 display:block!important; 2264 font-size:10px!important; 2265 font-weight:700!important; 2266 color:#fc0!important; 2267 letter-spacing:.3px!important; 2268 margin:0 0 3px 0!important; 2269 text-transform:uppercase!important; 2270} 2271.popup-content .sim-input-wrap{position:relative!important} 2272.popup-content .sim-input-wrap::before{ 2273 content:"Rp"!important; 2274 position:absolute!important; 2275 left:10px!important; 2276 top:50%!important; 2277 transform:translateY(-50%)!important; 2278 color:#fc0!important; 2279 font-weight:900!important; 2280 font-size:11px!important; 2281 pointer-events:none!important; 2282} 2283.popup-content .sim-input-wrap input{ 2284 width:100%!important; 2285 padding:7px 10px 7px 32px!important; 2286 font-size:12px!important; 2287 font-weight:700!important; 2288 background:rgba(0,0,0,.4)!important; 2289 color:#fff!important; 2290 border:1px solid rgba(255,255,255,.1)!important; 2291 border-radius:6px!important; 2292 margin:0!important; 2293 box-sizing:border-box!important; 2294} 2295/* Chips â 5-col single row, prefix "Rp" removed (already shown in input). 2296 min-width:0 forces chips to honor 1fr instead of intrinsic content width 2297 (this is what was making text overflow the chip border). */ 2298.popup-content .sim-presets{ 2299 display:grid!important; 2300 grid-template-columns:repeat(5,1fr)!important; 2301 gap:4px!important; 2302 margin:4px 0 0 0!important; 2303} 2304.popup-content .sim-preset-chip{ 2305 min-width:0!important; 2306 padding:6px 2px!important; 2307 font-size:11px!important; 2308 font-weight:800!important; 2309 text-align:center!important; 2310 background:rgba(255,255,255,.08)!important; 2311 color:#fff!important; 2312 border:1px solid rgba(255,255,255,.12)!important; 2313 border-radius:6px!important; 2314 cursor:pointer!important; 2315 line-height:1.2!important; 2316 transition:all .12s!important; 2317 white-space:nowrap!important; 2318 overflow:hidden!important; 2319 text-overflow:ellipsis!important; 2320 box-sizing:border-box!important; 2321} 2322.popup-content .sim-preset-chip:hover{ 2323 background:#fc0!important; 2324 color:#000!important; 2325 border-color:#fc0!important; 2326 transform:translateY(-1px)!important; 2327} 2328/* Helper â HIDDEN to ensure button always visible (info already redundant) */ 2329.popup-content .sim-helper{display:none!important} 2330/* Button â always visible, never shrinks */ 2331.popup-content>button{ 2332 width:100%!important; 2333 padding:10px 14px!important; 2334 margin:4px 0 0 0!important; 2335 font-size:12px!important; 2336 font-weight:900!important; 2337 letter-spacing:.5px!important; 2338 text-transform:uppercase!important; 2339 background:linear-gradient(135deg,#fc0,#ff8c00)!important; 2340 color:#000!important; 2341 border:none!important; 2342 border-radius:8px!important; 2343 cursor:pointer!important; 2344 flex-shrink:0!important; 2345} 2346/* Hide empty simulasi-result placeholder (only show when populated after click) */ 2347.popup-content .simulasi-result:empty{display:none!important} 2348/* Mobile narrow (â¤360px): smaller font, still 5-col 1 row */ 2349@media(max-width:360px){ 2350 .popup-content{padding:12px 10px 10px!important;gap:5px!important} 2351 .popup-content h2{font-size:13px!important}
2352 .popup-content .sim-presets{gap:3px!important} 2353 .popup-content .sim-preset-chip{padding:5px 1px!important;font-size:10px!important} 2354} 2355 2356/* === REVISI 9 (Kang Dedi v2): Hilangkan padding kosong antara jam-gacor & pola === */ 2357.game-card .jam-gacor-info,.game-card .jam-gacor,.game-card .jam{ 2358 margin:0!important; 2359 padding:6px 10px!important; 2360} 2361.game-card .game-info, 2362.game-card .pola-slot{ 2363 margin:0!important; 2364 padding:0!important; 2365} 2366.game-card .pola-a{margin:4px 0 0 0!important} 2367.game-card .pola-empty{margin:4px 0 0 0!important} 2368/* Game info container â no extra space */ 2369.game-card>.game-info{margin-top:0!important;padding-top:0!important} 2370</style> 2371<script id="rtp-countdown-js"> 2372(function(){ 2373 // Countdown to next 10-min boundary. RTP refresh itself is handled in React 2374 // (ProviderPageV2 detects the timeBlock change and recomputes RTP per game), 2375 // so this script only updates the visible "refresh dalam MM:SS" text. 2376 function getRemaining(){ 2377 var sec = Math.floor(Date.now() / 1000); 2378 var rem = sec % 600; 2379 return rem === 0 ? 0 : 600 - rem; // 0-599 (0 only at exact 10-min boundary) 2380 } 2381 function fmt(s){ 2382 var m = Math.floor(s / 60); 2383 var r = s % 60; 2384 return (m < 10 ? '0' + m : m) + ':' + (r < 10 ? '0' + r : r); 2385 } 2386 function tick(){ 2387 var els = document.querySelectorAll('.rtp-countdown[data-rtp-countdown]'); 2388 if(!els.length) return; 2389 var txt = fmt(getRemaining()); 2390 els.forEach(function(e){e.textContent = txt;}); 2391 } 2392 function start(){ 2393 tick(); 2394 setInterval(tick, 1000); 2395 } 2396 if(document.readyState === 'complete') start(); 2397 else window.addEventListener('load', start); 2398})(); 2399</script>`;function o(){let t=(0,n.useRef)(null);return(0,n.useEffect)(()=>{t.current&&function(t){if("1"===t.dataset.injected)return;t.dataset.injected="1";let a=document.createElement("div");a.innerHTML=e,Array.from(a.childNodes).forEach(a=>{if(1!==a.nodeType)return void t.appendChild(a);if("SCRIPT"===a.tagName){let i=document.createElement("script");Array.from(a.attributes).forEach(t=>i.setAttribute(t.name,t.value)),i.textContent=a.textContent||"",t.appendChild(i)}else t.appendChild(a)})}(t.current)},[]),(0,r.jsx)("div",{ref:t,id:"inline-patches",suppressHydrationWarning:!0})}}},t=>{t.O(0,[441,794,358],()=>t(t.s=1996)),_N_E=t.O()}]);
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.