KilatShop Top up game, voucher & pulsa
Segera Buka

KilatShop segera dibuka. Kamu sudah bisa cek harga Mobile Legends, GoPay, dan Token PLN. Pembayaran online sedang disiapkan.

Terlaris
Proses Kilat

Diamond kurang? Gas top up di sini.

Cek harga diamond, voucher, dan token di sini. Pembayaran online segera dibuka.

SEGERA BUKA

Toko Segera Dibuka

Harga sudah bisa dicek sekarang. Pembayaran online sedang kami siapkan.

HARGA BERSAHABAT

Diamond Mulai Rp10 Ribuan

Cek daftar nominal dan harga lengkap di bawah.

HARGA FINAL

Tanpa Biaya Tambahan

Harga yang kamu lihat adalah harga yang kamu bayar nanti.

1Pilih Produk

Urutkan

2Masukkan Data Akun

3Pilih Nominal

4Pilih Pembayaran

Setelah kamu menekan Bayar Sekarang, kode QRIS atau nomor tujuan langsung tampil di halaman ini.

5Kontak untuk Notifikasi

Kami kabari lewat WhatsApp dan email ini saat pembayaran diterima dan saat pesanan selesai.

6Cek Pesananmu

Lengkapi langkah 1 sampai 5 dulu.

Cara Order

  1. Pilih produk, isi ID, nominal, pembayaran, dan kontakmu di halaman ini.
  2. Tekan Bayar Sekarang, lalu bayar lewat QRIS, e-wallet, atau transfer yang tampil.
  3. Kirim bukti bayar lewat WhatsApp. Kabar pesanan selesai dikirim ke WhatsApp dan email-mu.
Langkah 1 dari 5 · Pilih produk
Belum memilih nominal Rp0
// ===== Latar animasi: petir menyambar, lalu diamond berhamburan ===== (function(){ const cv = document.getElementById("storm"); if (!cv || matchMedia("(prefers-reduced-motion: reduce)").matches) { if (cv) cv.remove(); return; } const ctx = cv.getContext("2d"); let W = 0, H = 0, dpr = 1; function size(){ dpr = Math.min(2, window.devicePixelRatio || 1); W = innerWidth; H = innerHeight; cv.width = W * dpr; cv.height = H * dpr; ctx.setTransform(dpr,0,0,dpr,0,0); } size(); addEventListener("resize", size); const GEM_COLORS = [["#E6FDFF","#5BE3FF","#1C7FD6"],["#EAF0FF","#7FA2FF","#3A4FD9"],["#F5E9FF","#C48BFF","#7A3FD9"],["#FFFFFF","#9FF6FF","#22A6C9"]]; let bolts = [], gems = [], flash = 0, next = performance.now() + 1200, last = performance.now(); function path(x0, y0, x1, y1, rough){ const pts = [[x0,y0]], n = 14; for (let i = 1; i < n; i++){ const t = i / n; pts.push([x0 + (x1-x0)*t + (Math.random()-.5) * rough, y0 + (y1-y0)*t + (Math.random()-.5) * rough * .35]); } pts.push([x1,y1]); return pts; } function strike(){ const x1 = W * (.12 + Math.random() * .76), y1 = H * (.28 + Math.random() * .45); const x0 = x1 + (Math.random() - .5) * W * .35; const main = path(x0, -20, x1, y1, Math.min(90, W * .12)); const forks = []; for (let k = 0; k < 2; k++){ const a = main[3 + Math.floor(Math.random() * 7)]; forks.push(path(a[0], a[1], a[0] + (Math.random()-.5) * 160, a[1] + 60 + Math.random() * 90, 40)); } bolts.push({ main, forks, age: 0, life: 520 }); flash = 1; const sky = document.getElementById("sky"); if (sky){ sky.style.setProperty("--fx", (x1 / W * 100).toFixed(1) + "%"); sky.classList.add("flash"); setTimeout(() => sky.classList.remove("flash"), 90); setTimeout(() => sky.classList.add("flash"), 190); setTimeout(() => sky.classList.remove("flash"), 300); } setTimeout(() => burst(x1, y1), 140); } function burst(x, y){ const n = W < 500 ? 16 : 26; for (let i = 0; i < n; i++){ const a = -Math.PI/2 + (Math.random() - .5) * Math.PI * 1.6, v = 2.5 + Math.random() * 5.5; gems.push({ x, y, vx: Math.cos(a) * v, vy: Math.sin(a) * v - 1.5, r: Math.random() * 6.28, vr: (Math.random() - .5) * .25, s: 5 + Math.random() * 8, c: GEM_COLORS[Math.floor(Math.random() * GEM_COLORS.length)], age: 0, life: 1500 + Math.random() * 900 }); } } function line(pts, w, color, blur){ ctx.beginPath(); ctx.moveTo(pts[0][0], pts[0][1]); for (let i = 1; i < pts.length; i++) ctx.lineTo(pts[i][0], pts[i][1]); ctx.lineWidth = w; ctx.strokeStyle = color; ctx.shadowColor = color; ctx.shadowBlur = blur; ctx.stroke(); } function gem(g, alpha){ const s = g.s; ctx.save(); ctx.translate(g.x, g.y); ctx.rotate(g.r); ctx.globalAlpha = alpha; const gr = ctx.createLinearGradient(-s, -s, s, s); gr.addColorStop(0, g.c[0]); gr.addColorStop(.45, g.c[1]); gr.addColorStop(1, g.c[2]); ctx.shadowColor = g.c[1]; ctx.shadowBlur = 12; ctx.beginPath(); ctx.moveTo(-s, -s*.25); ctx.lineTo(-s*.5, -s*.75); ctx.lineTo(s*.5, -s*.75); ctx.lineTo(s, -s*.25); ctx.lineTo(0, s); ctx.closePath(); ctx.fillStyle = gr; ctx.fill(); ctx.shadowBlur = 0; ctx.lineWidth = 1; ctx.strokeStyle = "rgba(255,255,255,.75)"; ctx.beginPath(); ctx.moveTo(-s, -s*.25); ctx.lineTo(s, -s*.25); ctx.moveTo(-s*.5, -s*.75); ctx.lineTo(-s*.15, -s*.25); ctx.lineTo(0, s); ctx.lineTo(s*.15, -s*.25); ctx.lineTo(s*.5, -s*.75); ctx.stroke(); ctx.restore(); } function frame(now){ const dt = Math.min(50, now - last); last = now; if (document.hidden) { requestAnimationFrame(frame); return; } if (now > next){ strike(); next = now + 5500 + Math.random() * 3500; } ctx.clearRect(0, 0, W, H); if (flash > 0){ ctx.fillStyle = `rgba(255,236,170,${flash * .06})`; ctx.fillRect(0, 0, W, H); flash = Math.max(0, flash - dt / 260); } ctx.lineCap = "round"; ctx.lineJoin = "round"; bolts = bolts.filter(b => (b.age += dt) < b.life); for (const b of bolts){ const k = 1 - b.age / b.life, on = b.age < 120 || (b.age > 190 && b.age < 300) || b.age > 360; const a = on ? k : k * .25; line(b.main, 10, `rgba(255,201,60,${a * .35})`, 30); for (const f of b.forks) line(f, 4, `rgba(255,201,60,${a * .3})`, 18); line(b.main, 3, `rgba(255,248,215,${a})`, 16); for (const f of b.forks) line(f, 1.5, `rgba(255,248,215,${a * .8})`, 10); } ctx.shadowBlur = 0; gems = gems.filter(g => (g.age += dt) < g.life); for (const g of gems){ const f = dt / 16.7; g.vy += .16 * f; g.vx *= .992; g.x += g.vx * f; g.y += g.vy * f; g.r += g.vr * f; const k = g.age / g.life, alpha = k < .1 ? k / .1 : 1 - Math.max(0, (k - .55) / .45); gem(g, Math.max(0, alpha) * .9); } requestAnimationFrame(frame); } requestAnimationFrame(frame); })(); // Parallax latar: bergeser pelan saat digulir (function(){ const phs = document.querySelectorAll(".sky .photo"); if (!phs.length || matchMedia("(prefers-reduced-motion: reduce)").matches) return; let tick = false; addEventListener("scroll", () => { if (tick) return; tick = true; requestAnimationFrame(() => { const max = Math.max(1, document.documentElement.scrollHeight - innerHeight); const t = `translateY(${(-scrollY / max * 7).toFixed(2)}vh)`; phs.forEach(ph => ph.style.transform = t); tick = false; }); }, { passive:true }); })();