/* ============================================================ GlowMerald — Data & copy Tone: educated, empowering, calm, genuine. No hyperbole. ============================================================ */ const formatRp = (n) => 'Rp ' + Math.round(n).toLocaleString('id-ID'); /* ---- Ingredient glossary (tooltips) ---- */ const INGREDIENTS = { 'Niacinamide': 'Membantu menyamarkan tampilan noda dan mendukung kecerahan kulit secara merata.', 'Retinol': 'Mendukung regenerasi kulit dan membantu menyamarkan tampilan garis halus.', 'Vitamin C': 'Antioksidan yang membantu kulit tampak lebih cerah dan bercahaya.', 'Triple Hyaluronic Acid': 'Tiga ukuran molekul untuk hidrasi berlapis dari permukaan hingga lapisan lebih dalam.', 'Soluble Collagen': 'Mendukung elastisitas dan membantu kulit tampak lebih kenyal.', 'Probiotic Ferment': 'Membantu menenangkan dan mendukung keseimbangan skin barrier.', 'Galactomyces Ferment':'Ferment yang membantu menghaluskan tekstur dan menghadirkan kesan glowing.', 'Bifida Ferment': 'Mendukung ketahanan kulit dan membantu menenangkan tampilan kemerahan.', 'Collagen': 'Membantu kulit tampak lebih plump dan terhidrasi.', 'Hydrolyzed Hyaluronic Acid':'Hyaluronic acid terhidrolisa untuk hidrasi yang ringan dan cepat menyerap.', 'Adenosine': 'Membantu menjaga tampilan kulit tetap halus dan kenyal.', }; /* ---- Products ---- */ const PRODUCTS = [ { id:'serum', type:'Serum', name:'6 in 1 Phyto Complex Serum', tagline:'Enam bahan aktif, satu ritual.', price:650000, size:'40 ml', bpom:'NA11262000011', rating:4.8, reviews:1243, sold:'8.4rb', bestSeller:true, visual:'serum', concerns:['Brightening','Anti-Aging','Hydration','Barrier'], ingredients:['Niacinamide','Retinol','Vitamin C','Triple Hyaluronic Acid','Soluble Collagen','Probiotic Ferment'], chips:['Niacinamide','Retinol','Vitamin C'], benefits:['Brightening','Anti-aging','Hidrasi berlapis','Barrier support','Antioksidan','Menenangkan'], desc:'Diformulasikan dengan enam bahan aktif yang bekerja sinergis dalam satu botol. Tekstur ringan yang cepat menyerap untuk mendukung kulit tampak lebih cerah, kenyal, dan terjaga kelembapannya — sebuah ritual yang efisien untuk keseharian.', howto:['Gunakan pada kulit yang bersih, pagi dan/atau malam.','Teteskan 2–3 tetes, ratakan lembut dengan gerakan menepuk.','Lanjutkan dengan pelembap.','Wajib gunakan SPF 30+ di pagi hari.'], variants:[{label:'40 ml', price:650000}], expect:[ {range:'Minggu 1–2', text:'Kulit terasa lebih lembap dan kenyal; tekstur mulai tampak lebih halus.'}, {range:'Minggu 4', text:'Warna kulit tampak lebih merata dan bercahaya secara bertahap.'}, {range:'Minggu 8', text:'Tampilan garis halus tersamarkan; kulit tampak lebih sehat dan terawat.'}, ], }, { id:'mask', type:'Mask', name:'Luminous Skin Indulgence Hydrogel Mask', tagline:'Hidrasi intensif dengan sensasi sejuk.', price:265000, unitPrice:70000, size:'25 ml / lembar', bpom:'NA11260200061', rating:4.9, reviews:876, sold:'12.1rb', bestSeller:true, visual:'mask', concerns:['Hydration','Brightening'], ingredients:['Galactomyces Ferment','Bifida Ferment','Niacinamide','Collagen','Hydrolyzed Hyaluronic Acid','Adenosine'], chips:['Galactomyces','Bifida Ferment','Collagen'], benefits:['Hidrasi intensif','Luminositas','Sensasi sejuk','Efek plumping'], desc:'Masker hydrogel dengan teknologi slow-release yang memeluk kontur wajah. Diformulasikan dengan ferment dan hyaluronic acid untuk menghadirkan hidrasi mendalam, kesan glowing, dan sensasi menyejukkan dalam satu sesi me-time.', howto:['Aplikasikan pada kulit yang bersih.','Diamkan 1–2 jam — tanpa perlu dibilas.','Lanjutkan dengan pelembap.'], variants:[{label:'Box isi 4', price:265000},{label:'Sachet (1 pcs)', price:70000}], expect:[ {range:'Seketika', text:'Kulit terasa sejuk, kenyal, dan tampak lebih segar setelah pemakaian.'}, {range:'Pemakaian rutin', text:'Hidrasi yang terjaga membantu kulit tampak lebih bercahaya dari waktu ke waktu.'}, ], }, ]; /* ---- Bundles ---- */ const BUNDLES = [ { id:'starter-duo', type:'Bundle', name:'Starter Duo', sub:'Serum + Mask Box', price:865000, was:915000, visual:'bundle', concerns:['Brightening','Hydration'], chips:['Serum 40ml','Mask Box 4'], rating:4.9, reviews:402, desc:'Titik awal ideal untuk mengenal ritual GlowMerald: serum harian dipadukan dengan masker hydrogel untuk perawatan mingguan.' }, { id:'glow-ritual', type:'Bundle', name:'Glow Ritual', sub:'Serum + 2 Sachet Mask', price:760000, was:790000, visual:'bundle', concerns:['Brightening','Hydration','Anti-Aging'], chips:['Serum 40ml','2 Sachet'], rating:4.8, reviews:178, desc:'Serum lengkap dengan dua sachet masker untuk momen perawatan intensif di akhir pekan.' }, { id:'double-glow', type:'Bundle', name:'Double Glow', sub:'2 Serum', price:1240000, was:1300000, visual:'bundle', concerns:['Brightening','Anti-Aging','Barrier'], chips:['2× Serum 40ml'], rating:4.9, reviews:96, desc:'Persediaan serum untuk ritual berkelanjutan — atau berbagi dengan orang terdekat.' }, ]; const ALL_ITEMS = [...PRODUCTS, ...BUNDLES]; const findItem = (id) => ALL_ITEMS.find(p => p.id === id); const CONCERNS = ['Brightening','Hydration','Anti-Aging','Barrier']; const TYPES = ['Serum','Mask','Bundle']; /* ---- Why GlowMerald ---- */ const WHY = [ { icon:'shield', title:'Terdaftar BPOM', text:'Setiap produk melalui proses dan pengawasan BPOM.' }, { icon:'layers', title:'Efisiensi 6-in-1', text:'Enam bahan aktif yang bekerja sinergis dalam satu langkah.' }, { icon:'gem', title:'Masstige Pricing', text:'Kualitas terasa premium dengan harga yang dapat dijangkau.' }, { icon:'leaf', title:'Formula Bersih', text:'Diformulasikan untuk kebutuhan kulit Asia.' }, ]; /* ---- Testimonials ---- */ const TESTIMONIALS = [ { name:'Anindhita', city:'Jakarta', concern:'Brightening', rating:5, quote:'Teksturnya ringan dan cepat menyerap. Setelah beberapa minggu, warna kulit saya tampak lebih merata.' }, { name:'Rara', city:'Surabaya', concern:'Anti-Aging', rating:5, quote:'Suka sekali jadi ritual me-time. Kulit terasa lebih kenyal dan terawat sepanjang hari.' }, { name:'Gisela', city:'Bandung', concern:'Hydration', rating:4, quote:'Mulai dari maskernya dulu, sensasinya sejuk dan bikin kulit kelihatan lebih segar. Sekarang lanjut ke serum.' }, { name:'Maharani', city:'Depok', concern:'Barrier', rating:5, quote:'Kulit saya cenderung sensitif, tapi formula ini terasa menenangkan dan tidak bikin perih.' }, ]; /* ---- Before / After ---- */ const BEFORE_AFTER = [ { name:'Anindhita, 28', concern:'Brightening', stages:['Before','After — Minggu 4','After — Minggu 8'] }, { name:'Rara, 34', concern:'Anti-Aging', stages:['Before','After — Minggu 4','After — Minggu 8'] }, ]; /* ---- Beauty Insight articles ---- */ const ARTICLES = [ { id:'a1', category:'Ingredient Science', read:'6 menit', featured:true, title:'Memahami Niacinamide: Bahan Multitugas untuk Kulit Tampak Cerah', excerpt:'Mengapa niacinamide menjadi salah satu bahan paling serbaguna dalam skincare modern — dan bagaimana ia bekerja mendukung skin barrier.' }, { id:'a2', category:'Skin Routine', read:'4 menit', title:'Layering Serum dengan Benar: Urutan yang Mendukung Kerja Bahan Aktif', excerpt:'Panduan sederhana menyusun rutinitas pagi dan malam agar setiap tetes serum bekerja maksimal.' }, { id:'a3', category:'Ingredient Science', read:'5 menit', title:'Triple Hyaluronic Acid: Tiga Lapis Hidrasi dalam Satu Formula', excerpt:'Bagaimana tiga ukuran molekul hyaluronic acid bekerja dari permukaan hingga lapisan kulit yang lebih dalam.' }, { id:'a4', category:'Product Tips', read:'3 menit', title:'Cara Memaksimalkan Hydrogel Mask untuk Hasil yang Optimal', excerpt:'Tips kecil — dari persiapan kulit hingga durasi pemakaian — untuk pengalaman masker yang lebih maksimal.' }, { id:'a5', category:'Skin Stories', read:'7 menit', title:'Ritual Pagi Anindhita: Skincare di Tengah Jadwal yang Padat', excerpt:'Bagaimana seorang marketing manager merawat kulitnya dengan rutinitas yang praktis namun bermakna.' }, { id:'a6', category:'Skin Routine', read:'5 menit', title:'Mengenalkan Retinol ke Rutinitas Tanpa Membuat Kulit Stres', excerpt:'Pendekatan bertahap memperkenalkan retinol agar kulit tetap nyaman dan terjaga.' }, ]; const ARTICLE_CATS = ['Semua','Ingredient Science','Skin Routine','Product Tips','Skin Stories']; /* ---- UGC ---- */ const UGC = ['@anindhita.r','@rara.beauty','@gisela.glows','@maharani.skin','@glowmeraldofficial','@skinwithdita']; /* ---- Account / Orders / Loyalty ---- */ const USER = { name:'Anindhita Pramesti', email:'anindhita.p@email.com', phone:'+62 812 1008 4421', tier:'Loyal Glow', points:1840, initials:'AP', }; const TIERS = [ { name:'New Glow', min:0 }, { name:'Loyal Glow', min:1000 }, { name:'Inner Circle', min:3000 }, { name:'Ambassador', min:6000 }, ]; const ORDERS = [ { id:'GM-2406-00318', date:'2 Jun 2026', status:'Diproses', total:865000, items:[{name:'Starter Duo', qty:1, price:865000, visual:'bundle'}] }, { id:'GM-2405-00204', date:'18 Mei 2026', status:'Dikirim', total:650000, items:[{name:'6 in 1 Phyto Complex Serum', qty:1, price:650000, visual:'serum'}] }, { id:'GM-2504-00087', date:'27 Apr 2026', status:'Selesai', total:335000, items:[{name:'Luminous Hydrogel Mask — Box', qty:1, price:265000, visual:'mask'},{name:'Sachet (1 pcs)', qty:1, price:70000, visual:'mask'}] }, ]; const ADDRESSES = [ { id:1, label:'Rumah', def:true, name:'Anindhita Pramesti', phone:'+62 812 1008 4421', detail:'Jl. Senopati No. 84, Kebayoran Baru', city:'Jakarta Selatan', prov:'DKI Jakarta', post:'12190' }, { id:2, label:'Kantor', def:false, name:'Anindhita Pramesti', phone:'+62 812 1008 4421', detail:'Menara BCA Lt. 21, Jl. M.H. Thamrin No. 1', city:'Jakarta Pusat', prov:'DKI Jakarta', post:'10310' }, ]; /* ---- Checkout ---- */ const SHIPPING = [ { id:'jne', name:'JNE Reguler', eta:'2–3 hari', price:18000 }, { id:'jnt', name:'J&T Express', eta:'2–3 hari', price:16000 }, { id:'sicepat', name:'SiCepat HALU', eta:'3–4 hari', price:14000 }, ]; const PAYMENTS = [ { group:'Transfer Bank / Virtual Account', options:['BCA','Mandiri','BNI','BRI'] }, { group:'E-Wallet', options:['GoPay','OVO','Dana'] }, { group:'Lainnya', options:['QRIS'] }, ]; const PROVINCES = ['DKI Jakarta','Jawa Barat','Jawa Tengah','Jawa Timur','Banten','DI Yogyakarta','Bali','Sumatra Utara']; Object.assign(window, { formatRp, INGREDIENTS, PRODUCTS, BUNDLES, ALL_ITEMS, findItem, CONCERNS, TYPES, WHY, TESTIMONIALS, BEFORE_AFTER, ARTICLES, ARTICLE_CATS, UGC, USER, TIERS, ORDERS, ADDRESSES, SHIPPING, PAYMENTS, PROVINCES, });