// Landing page sections — Pine Stage system function HeroDashPanel() { return (
Permohonan Aktif Live
Sheriff: Narko-Integriti 2
A2026/04/0892
18
Dune: Part Three
A2026/04/0871
P12
Upin & Ipin: Lagenda Pulau
A2026/03/0661
U
Polis Evo 4 · trailer 90s
BP2026/03/0728
Disemak
Hari ini
47
permohonan dalam talian
Memerlukan tindakan
3
menjelang tarikh akhir
); } function HeroEditorialTicker() { const rows = [ { t: "02 min", b: "Permohonan diluluskan", x: "Tayangan Panggung", tag: "P13", c: "appr" }, { t: "05 min", b: "Permohonan dihantar", x: "Bahan Publisiti", tag: "Baharu", c: "subm" }, { t: "08 min", b: "Panel ALPF", x: "memulakan sesi · 3 ahli", tag: "Sesi", c: "subm" }, { t: "18 min", b: "Sijil A dikeluarkan", x: "A2026/05/1247", tag: "Selesai", c: "appr" }, { t: "24 min", b: "Permohonan dihantar", x: "Iklan komersial", tag: "Baharu", c: "subm" }, { t: "31 min", b: "Permohonan diluluskan", x: "Pita & DVD", tag: "16", c: "appr" }, ]; return ( ); } function HeroPine({ vibe = "pine" }) { React.useEffect(() => { var canvas = document.getElementById('ilpf-wave-bg'); if (!canvas) return; var gl = canvas.getContext('webgl', { antialias: true }); if (!gl) return; var vsSource = "attribute vec4 aVertexPosition;void main(){gl_Position=aVertexPosition;}"; var fsSource = ` precision highp float; uniform vec2 iResolution; uniform float iTime; const float overallSpeed = 0.2; const float gridSmoothWidth = 0.015; const float minLineWidth = 0.005; const float maxLineWidth = 0.08; const float lineSpeed = 1.0 * overallSpeed; const float lineAmplitude = 1.0; const float lineFrequency = 0.2; const float warpSpeed = 0.2 * overallSpeed; const float warpFrequency = 0.5; const float warpAmplitude = 0.4; const float offsetFrequency = 0.5; const float offsetSpeed = 1.33 * overallSpeed; const float minOffsetSpread = 0.6; const float maxOffsetSpread = 2.0; const int linesPerGroup = 9; const float scale = 5.0; const vec4 lineColor = vec4(0.04, 0.45, 0.65, 1.0); #define drawCircle(pos,radius,coord) smoothstep(radius+gridSmoothWidth,radius,length(coord-(pos))) #define drawSmoothLine(pos,hw,t) smoothstep(hw,0.0,abs(pos-(t))) #define drawCrispLine(pos,hw,t) smoothstep(hw+gridSmoothWidth,hw,abs(pos-(t))) float random(float t){return(cos(t)+cos(t*1.3+1.3)+cos(t*1.4+1.4))/3.0;} float getPlasmaY(float x,float hf,float off){ return random(x*lineFrequency+iTime*lineSpeed)*hf*lineAmplitude+off; } void main(){ vec2 uv = gl_FragCoord.xy/iResolution.xy; vec2 space = (gl_FragCoord.xy-iResolution.xy/2.0)/iResolution.x*2.0*scale; float hFade = 1.0-(cos(uv.x*6.28)*0.5+0.5); float vFade = 1.0-(cos(uv.y*6.28)*0.5+0.5); space.y += random(space.x*warpFrequency+iTime*warpSpeed)*warpAmplitude*(0.5+hFade); space.x += random(space.y*warpFrequency+iTime*warpSpeed+2.0)*warpAmplitude*hFade; vec4 lines = vec4(0.0); vec4 bgColor1 = vec4(0.06, 0.09, 0.16, 1.0); vec4 bgColor2 = vec4(0.12, 0.23, 0.37, 1.0); for(int l=0;l { cancelAnimationFrame(rafId); window.removeEventListener('resize', resize); if (ro) ro.disconnect(); }; }, []); return (
Pejabat Penapisan Filem · v2 dilancarkan

Menepati nilai
estetika budaya & moral negara

Platform rasmi Lembaga Penapisan Filem Malaysia. Tapisan, klasifikasi, dan pensijilan filem — semuanya dalam satu ruang kerja digital.

Akta 620 Keputusan 5 hari Disahkan KDN
{vibe === "editorial" ? : }
); } function HebahanStrip() { const [tab, setTab] = React.useState("pengumuman"); const tabs = [ { id: "pengumuman", label: "Pengumuman", count: 4 }, { id: "pemberitahuan", label: "Pemberitahuan", count: 4 }, { id: "peringatan", label: "Peringatan", count: 4 }]; const heb = { pengumuman: [ { d: "12 MAY 2026", t: "Pelancaran rasmi iLPF v2", p: "Sistem baharu kini beroperasi penuh. Akaun pengedar sedia dipindahkan. Log masuk seperti biasa." }, { d: "8 MAY 2026", t: "Pindaan Garis Panduan Penapisan 2026", p: "Versi 2026 berkuat kuasa pada 1 Jun. Muat turun salinan penuh di portal." }, { d: "30 APR 2026", t: "Sesi taklimat industri Mei 2026", p: "Pengedar dan stesen TV dijemput hadir taklimat sistem baharu pada 22 Mei di KDN Putrajaya." }], pemberitahuan: [ { d: "11 MAY 2026", t: "Penyelenggaraan sistem 15 Mei, 11mlm – 5pg", p: "Modul tapisan TV tidak dapat diakses sepanjang tempoh ini. Tiada kesan kepada permohonan sedia ada." }, { d: "5 MAY 2026", t: "Yuran tapisan dikemas kini 1 Julai 2026", p: "Rujuk Peraturan-Peraturan Penapisan (Fi) Filem 1984 pindaan 2026. Kalkulator akan dikemas kini." }, { d: "2 MAY 2026", t: "Borang Permohonan ALPF dalam talian sepenuhnya", p: "Tiada lagi borang kertas. Hantar permohonan dan lampiran terus melalui portal." }], peringatan: [ { d: "10 MAY 2026", t: "Hantar bahan publisiti 2 hari sebelum tayangan", p: "Piagam Pelanggan baharu: tempoh pemprosesan 2 hari bekerja. Jangan tunggu hari terakhir." }, { d: "7 MAY 2026", t: "Pastikan filem yang dihantar adalah salinan master", p: "Salinan rendah resolusi atau pratonton tidak akan dilayan. Rujuk panduan teknikal di FAQ." }, { d: "3 MAY 2026", t: "Sijil A wajib bagi setiap tayangan pawagam", p: "Tiada Sijil A bermakna tiada tayangan. Semak status sijil sebelum hari tayangan." }] }; return (
Hebahan Terkini

Pengumuman, pemberitahuan, peringatan.

{tabs.map((t) => )}
{heb[tab].map((it, i) =>
{it.d}

{it.t}

{it.p}

Baca
)}
); } function LiveStats() { return (
Statistik Hari Ini

Sistem yang sentiasa hidup.

Lihat statistik penuh
Permohonan hari ini
47
dalam talian
▲ 12% vs semalam
Sedang disemak
18
oleh ALPF
~ 22 minit anggaran
Diluluskan minggu ini
312
sijil dikeluarkan
96% mencapai SLA
Disenaraikan 2026
1,847
sepanjang tahun
+203 bulan ini
); } function ServicesPantas() { const svcs = [ { i: "search", t: "Semak Senarai Filem", p: "Cari filem yang telah diluluskan dan klasifikasinya.", h: "senarai-filem.html" }, { i: "calculator", t: "Kalkulator Yuran", p: "Anggaran yuran tapisan mengikut tempoh tayangan.", h: "kalkulator.html" }, { i: "shield-check", t: "Klasifikasi Filem", p: "Maksud U, P12, 13, 16, dan 18.", h: "klasifikasi.html" }, { i: "scroll-text", t: "Piagam Pelanggan", p: "Komitmen kami pada anda, disukat dalam hari.", h: "piagam-pelanggan.html" }, { i: "bar-chart-3", t: "Statistik Tapisan", p: "Data permohonan dan keputusan secara terbuka.", h: "statistik.html" }, { i: "user-plus", t: "Daftar Akaun Pengedar", p: "Untuk pengedar filem dan stesen TV.", h: "daftar.html" }, { i: "gavel", t: "Permohonan Ahli Lembaga", p: "Mohon menjadi ALPF di bawah Akta 620.", h: "permohonan-alpf.html" }, { i: "help-circle", t: "Soalan Lazim", p: "Jawapan ringkas, terus pada isunya.", h: "faq.html" }]; return (
Perkhidmatan Pantas

Apa yang anda perlukan?

{svcs.map((s, i) =>

{s.t}

{s.p}

Buka
)}
); } function ClassificationsTeaser() { const cls = window.iLPFData.classifications; const summaries = { u: "Sesuai untuk semua peringkat umur.", p12: "Bimbingan ibu bapa untuk bawah 12 tahun.", 13: "Sesuai 13 tahun ke atas.", 16: "Sesuai 16 tahun ke atas.", 18: "Hanya untuk penonton dewasa." }; return (
Klasifikasi Filem

Lima keputusan. Satu sistem.

Baca selengkapnya
{cls.map((c) => {c.id === "p12" ? "P12" : c.id.toUpperCase()}

{c.t}

{summaries[c.id]}

)}
); } function PiagamStrip() { return (
Piagam Pelanggan

Janji kami. Disukat dalam hari.

Baca penuh
{window.iLPFData.piagam.map((p, i) =>
{p.dur}hari
{p.svc}
{p.state === "down" ? "▼ " : "✓ "}{p.pct}
Dahulu: {p.was}
)}

Tempoh dikira dari tarikh permohonan lengkap diterima. Rujuk Piagam Pelanggan penuh untuk syarat dan pengecualian.

); } function FAQTeaser() { const top = window.iLPFData.faqs.slice(0, 5); const [open, setOpen] = React.useState(0); return (
Soalan Lazim

Jawapan yang anda cari.

Lihat semua soalan
{top.map((f, i) =>
setOpen(open === i ? -1 : i)}> {f.q}

{f.a}

)}
); } window.HeroPine = HeroPine; window.HebahanStrip = HebahanStrip; window.LiveStats = LiveStats; window.ServicesPantas = ServicesPantas; window.ClassificationsTeaser = ClassificationsTeaser; window.PiagamStrip = PiagamStrip; window.FAQTeaser = FAQTeaser;