PageSourceSearch

https://verlunix.com/_next/static/chunks/app/layout-6f2d37cacfe27e0a.js

js verlunix.com collected 2026-10-09 23:16:58 UTC 97,500 bytes, 2,399 lines download raw bytes

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.