Beranda

Segera hadir

Mari bersama ciptakan hal-hal baru

import React, { useState, useEffect, useRef } from ‘react’;
import {
  Wand2,
  Layers,
  Zap,
  Shield,
  Clock,
  Sparkles,
  Image as ImageIcon,
  ChevronRight,
  Star,
  CheckCircle,
  Menu,
  X,
  MessageCircle,
  ArrowRight,
  History,
  Maximize
} from ‘lucide-react’;

const App = () => {
  const [sliderPos, setSliderPos] = useState(50);
  const [isMenuOpen, setIsMenuOpen] = useState(false);
  const [activeFaq, setActiveFaq] = useState(null);
  const sliderRef = useRef(null);

  const handleMove = (e) => {
    if (!sliderRef.current) return;
    const rect = sliderRef.current.getBoundingClientRect();
    const x = e.clientX || (e.touches && e.touches[0].clientX);
    if (!x) return;
    const position = ((x – rect.left) / rect.width) * 100;
    setSliderPos(Math.max(0, Math.min(100, position)));
  };

  const services = [
    {
      title: “Restorasi Foto Tua”,
      icon: <History className=”w-6 h-6″ />,
      desc: “Menghapus noda, memperbaiki bagian sobek, dan menajamkan wajah dari foto tahun 1900-an.”,
      color: “from-blue-500 to-cyan-400”
    },
    {
      title: “AI Upscaling 8K”,
      icon: <Maximize className=”w-6 h-6″ />,
      desc: “Ubah foto kecil/pecah dari HP jadul menjadi resolusi tinggi yang siap cetak ukuran poster.”,
      color: “from-purple-500 to-pink-400”
    },
    {
      title: “Pewarnaan Otomatis”,
      icon: <Layers className=”w-6 h-6″ />,
      desc: “Memberikan warna alami pada foto Hitam Putih dengan akurasi historis berbasis AI.”,
      color: “from-orange-500 to-red-400”
    },
    {
      title: “Retouching Beauty”,
      icon: <Sparkles className=”w-6 h-6″ />,
      desc: “Edit wajah profesional tanpa menghilangkan tekstur kulit alami. Cocok untuk portofolio.”,
      color: “from-emerald-500 to-teal-400”
    }
  ];

  const faqs = [
    { q: “Berapa lama proses pengerjaannya?”, a: “Tergantung tingkat kesulitan, namun rata-rata selesai dalam 3-12 jam kerja.” },
    { q: “Bagaimana cara mengirim fotonya?”, a: “Anda bisa mengirim via WhatsApp dokumen atau link Google Drive untuk menjaga kualitas resolusi.” },
    { q: “Apakah ada jaminan uang kembali?”, a: “Ya, kami memberikan garansi revisi sepuasnya atau uang kembali jika hasil tidak sesuai brief.” }
  ];

  return (
    <div className=”min-h-screen bg-[#020617] text-slate-200 font-sans selection:bg-blue-500/30 selection:text-blue-200″>
     
      {/* Navigation */}
      <nav className=”fixed w-full z-50 bg-[#020617]/80 backdrop-blur-xl border-b border-white/5″>
        <div className=”max-w-7xl mx-auto px-6 h-20 flex items-center justify-between”>
          <div className=”flex items-center gap-3″>
            <div className=”w-10 h-10 bg-gradient-to-tr from-blue-600 to-indigo-600 rounded-xl flex items-center justify-center shadow-lg shadow-blue-500/20″>
              <Wand2 className=”text-white w-6 h-6″ />
            </div>
            <span className=”text-xl font-black tracking-tighter text-white uppercase”>Gem AI</span>
          </div>
         
          <div className=”hidden md:flex items-center gap-10″>
            {[‘Layanan’, ‘Hasil Edit’, ‘Harga’, ‘FAQ’].map(item => (
              <a key={item} href={`#${item.toLowerCase()}`} className=”text-sm font-medium hover:text-blue-400 transition-colors uppercase tracking-widest”>{item}</a>
            ))}
            <button className=”bg-white text-black px-6 py-2.5 rounded-full text-sm font-bold hover:bg-blue-400 hover:text-white transition-all transform hover:-translate-y-0.5 active:scale-95″>
              MULAI EDIT
            </button>
          </div>

          <button className=”md:hidden text-white” onClick={() => setIsMenuOpen(!isMenuOpen)}>
            {isMenuOpen ? <X /> : <Menu />}
          </button>
        </div>
      </nav>

      {/* Hero Section */}
      <section className=”relative pt-40 pb-20 px-6 overflow-hidden”>
        <div className=”absolute top-0 left-1/2 -translate-x-1/2 w-[1000px] h-[600px] bg-blue-600/10 blur-[120px] rounded-full -z-10″></div>
       
        <div className=”max-w-7xl mx-auto grid lg:grid-cols-2 gap-20 items-center”>
          <div className=”space-y-8″>
            <div className=”inline-flex items-center gap-2 px-4 py-2 rounded-full bg-blue-500/10 border border-blue-500/20 text-blue-400 text-xs font-bold uppercase tracking-widest”>
              <Zap className=”w-3 h-3 fill-current” /> Next-Gen Photo Restoration
            </div>
            <h1 className=”text-5xl lg:text-7xl font-bold text-white leading-[1.1]”>
              Sempurnakan <span className=”bg-gradient-to-r from-blue-400 via-indigo-400 to-purple-400 bg-clip-text text-transparent”>Memori Anda</span> Dengan AI.
            </h1>
            <p className=”text-xl text-slate-400 leading-relaxed max-w-lg”>
              Teknologi Neural Engine terbaru kami menghidupkan kembali foto usang dan menyempurnakan setiap piksel dengan presisi luar biasa.
            </p>
            <div className=”flex flex-col sm:flex-row gap-4 pt-4″>
              <button className=”px-8 py-5 bg-blue-600 hover:bg-blue-500 text-white rounded-2xl font-bold text-lg transition-all flex items-center justify-center gap-3 group shadow-2xl shadow-blue-500/20″>
                Pesan Lewat WA <MessageCircle className=”w-6 h-6 group-hover:rotate-12 transition-transform” />
              </button>
              <button className=”px-8 py-5 bg-white/5 hover:bg-white/10 text-white border border-white/10 rounded-2xl font-bold text-lg transition-all”>
                Lihat Portfolio
              </button>
            </div>
           
            <div className=”flex items-center gap-8 pt-6″>
              <div className=”flex -space-x-3″>
                {[1,2,3,4].map(i => (
                  <div key={i} className=”w-10 h-10 rounded-full border-2 border-[#020617] overflow-hidden”>
                    <img src={`https://i.pravatar.cc/100?u=${i}`} alt=”user” />
                  </div>
                ))}
              </div>
              <p className=”text-sm text-slate-500″><span className=”text-white font-bold”>1,200+</span> foto telah direstorasi bulan ini</p>
            </div>
          </div>

          {/* Before/After Slider */}
          <div className=”relative group”>
            <div className=”absolute -inset-1 bg-gradient-to-r from-blue-500 to-purple-600 rounded-[2.5rem] blur opacity-25 group-hover:opacity-40 transition duration-1000″></div>
            <div
              ref={sliderRef}
              className=”relative aspect-[4/5] sm:aspect-square bg-slate-900 rounded-[2rem] overflow-hidden cursor-ew-resize shadow-2xl select-none”
              onMouseMove={handleMove}
              onTouchMove={handleMove}
            >
              {/* After Image */}
              <div className=”absolute inset-0″>
                <img
                  src=”https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&q=80&w=1000&#8243;
                  className=”w-full h-full object-cover”
                  alt=”After Edit”
                />
                <div className=”absolute bottom-6 right-6 bg-blue-600 text-white text-[10px] font-black px-3 py-1 rounded-full uppercase tracking-widest shadow-xl”>SESUDAH GEM AI</div>
              </div>

              {/* Before Image Overlay */}
              <div
                className=”absolute inset-0 overflow-hidden”
                style={{ width: `${sliderPos}%`, borderRight: ‘2px solid white’ }}
              >
                <img
                  src=”https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&q=80&w=1000&#8243;
                  className=”w-[calc(100*100%/var(–pos))] h-full object-cover grayscale brightness-50 contrast-125″
                  style={{ width: `${100 * 100 / sliderPos}%` }}
                  alt=”Before Edit”
                />
                <div className=”absolute bottom-6 left-6 bg-black/50 backdrop-blur-md text-white text-[10px] font-black px-3 py-1 rounded-full uppercase tracking-widest”>FOTO ASLI</div>
              </div>

              {/* Slider Handle */}
              <div
                className=”absolute top-0 bottom-0 w-1 bg-white z-10 flex items-center justify-center”
                style={{ left: `${sliderPos}%` }}
              >
                <div className=”w-10 h-10 bg-white rounded-full flex items-center justify-center shadow-2xl”>
                  <div className=”flex gap-0.5″>
                    <div className=”w-1 h-3 bg-blue-600 rounded-full”></div>
                    <div className=”w-1 h-3 bg-blue-600 rounded-full”></div>
                  </div>
                </div>
              </div>
            </div>
            <p className=”text-center mt-4 text-xs text-slate-500 font-medium uppercase tracking-[0.2em]”>Geser lingkaran untuk melihat keajaiban</p>
          </div>
        </div>
      </section>

      {/* Services Grid */}
      <section id=”layanan” className=”py-32 px-6″>
        <div className=”max-w-7xl mx-auto”>
          <div className=”flex flex-col md:flex-row md:items-end justify-between gap-6 mb-16″>
            <div className=”max-w-2xl”>
              <h2 className=”text-4xl md:text-5xl font-bold text-white mb-6 tracking-tight”>Apa yang Bisa Kami Lakukan?</h2>
              <p className=”text-lg text-slate-400″>Dari masalah teknis seperti resolusi rendah hingga masalah estetika seperti warna yang kusam.</p>
            </div>
            <button className=”text-blue-400 font-bold flex items-center gap-2 hover:gap-3 transition-all mb-2″>
              LIHAT SEMUA LAYANAN <ArrowRight className=”w-5 h-5″ />
            </button>
          </div>

          <div className=”grid md:grid-cols-2 lg:grid-cols-4 gap-6″>
            {services.map((item, idx) => (
              <div key={idx} className=”group p-8 rounded-[2rem] bg-white/5 border border-white/5 hover:bg-white/[0.08] hover:border-white/10 transition-all duration-500″>
                <div className={`w-14 h-14 rounded-2xl bg-gradient-to-tr ${item.color} flex items-center justify-center text-white mb-8 shadow-lg group-hover:scale-110 transition-transform duration-500`}>
                  {item.icon}
                </div>
                <h3 className=”text-xl font-bold text-white mb-4″>{item.title}</h3>
                <p className=”text-slate-400 text-sm leading-relaxed”>{item.desc}</p>
              </div>
            ))}
          </div>
        </div>
      </section>

      {/* Trust Badges */}
      <div className=”bg-white/5 py-10 border-y border-white/5″>
        <div className=”max-w-7xl mx-auto px-6 overflow-hidden flex flex-wrap justify-center md:justify-between items-center gap-12 opacity-30 grayscale hover:opacity-60 transition-opacity”>
           <div className=”flex items-center gap-2 font-bold text-2xl tracking-tighter italic”>FUJIFILM</div>
           <div className=”flex items-center gap-2 font-bold text-2xl tracking-tighter italic”>ADOBE</div>
           <div className=”flex items-center gap-2 font-bold text-2xl tracking-tighter italic”>KODAK</div>
           <div className=”flex items-center gap-2 font-bold text-2xl tracking-tighter italic”>EPSON</div>
           <div className=”flex items-center gap-2 font-bold text-2xl tracking-tighter italic”>CANON</div>
        </div>
      </div>

      {/* Pricing Section */}
      <section id=”harga” className=”py-32 px-6 relative”>
        <div className=”absolute bottom-0 right-0 w-[500px] h-[500px] bg-purple-600/5 blur-[120px] rounded-full -z-10″></div>
        <div className=”max-w-7xl mx-auto text-center mb-20″>
          <h2 className=”text-4xl font-bold text-white mb-4″>Investasi Kenangan</h2>
          <p className=”text-slate-400″>Harga transparan tanpa biaya tersembunyi.</p>
        </div>

        <div className=”max-w-5xl mx-auto grid md:grid-cols-3 gap-8″>
          {[
            {
              name: “Essential”,
              price: “45K”,
              features: [“1 Foto Restoration”, “Natural Upscaling”, “Selesai 12 Jam”, “1x Revisi”],
              highlight: false
            },
            {
              name: “Professional”,
              price: “125K”,
              features: [“3 Foto Restoration”, “Advanced Retouching”, “Colorization”, “Selesai 6 Jam”, “Unlimited Revisi”],
              highlight: true
            },
            {
              name: “Family Heritage”,
              price: “350K”,
              features: [“10 Foto Restoration”, “Full HD Upscaling”, “Format Cetak Ready”, “Express 3 Jam”, “Priority Support”],
              highlight: false
            }
          ].map((plan, i) => (
            <div key={i} className={`p-10 rounded-[2.5rem] border ${plan.highlight ? ‘bg-blue-600 border-blue-500 shadow-2xl shadow-blue-500/20 scale-105’ : ‘bg-white/5 border-white/10’} transition-all`}>
              <h4 className={`text-lg font-bold mb-1 ${plan.highlight ? ‘text-white’ : ‘text-blue-400’}`}>{plan.name}</h4>
              <div className=”flex items-baseline gap-1 mb-8″>
                <span className=”text-4xl font-black text-white”>Rp {plan.price}</span>
                <span className={plan.highlight ? ‘text-blue-100’ : ‘text-slate-500’}>/paket</span>
              </div>
              <ul className=”space-y-4 mb-10 text-left”>
                {plan.features.map((f, j) => (
                  <li key={j} className=”flex items-center gap-3 text-sm”>
                    <CheckCircle className={`w-4 h-4 ${plan.highlight ? ‘text-blue-200’ : ‘text-blue-500’}`} />
                    <span className={plan.highlight ? ‘text-white’ : ‘text-slate-400’}>{f}</span>
                  </li>
                ))}
              </ul>
              <button className={`w-full py-4 rounded-2xl font-black uppercase tracking-widest text-sm transition-all ${plan.highlight ? ‘bg-white text-blue-600 hover:shadow-xl’ : ‘bg-white/10 text-white hover:bg-white/20’}`}>
                Pilih Paket
              </button>
            </div>
          ))}
        </div>
      </section>

      {/* FAQ Section */}
      <section id=”faq” className=”py-32 px-6″>
        <div className=”max-w-3xl mx-auto”>
          <h2 className=”text-3xl font-bold text-white text-center mb-12″>Pertanyaan Populer</h2>
          <div className=”space-y-4″>
            {faqs.map((faq, i) => (
              <div key={i} className=”border border-white/5 rounded-2xl overflow-hidden bg-white/[0.02]”>
                <button
                  onClick={() => setActiveFaq(activeFaq === i ? null : i)}
                  className=”w-full p-6 text-left flex justify-between items-center hover:bg-white/[0.03] transition-colors”
                >
                  <span className=”font-bold text-white”>{faq.q}</span>
                  <ChevronRight className={`w-5 h-5 text-blue-500 transition-transform ${activeFaq === i ? ‘rotate-90’ : ”}`} />
                </button>
                {activeFaq === i && (
                  <div className=”px-6 pb-6 text-slate-400 text-sm leading-relaxed animate-in slide-in-from-top-2 duration-300″>
                    {faq.a}
                  </div>
                )}
              </div>
            ))}
          </div>
        </div>
      </section>

      {/* Final CTA */}
      <section className=”py-24 px-6″>
        <div className=”max-w-7xl mx-auto rounded-[3rem] bg-gradient-to-br from-indigo-600 to-blue-700 p-12 lg:p-24 text-center relative overflow-hidden shadow-3xl”>
          <div className=”absolute top-0 left-0 w-full h-full opacity-10 pointer-events-none”>
            <svg width=”100%” height=”100%” viewBox=”0 0 100 100″ preserveAspectRatio=”none”>
              <pattern id=”grid” width=”10″ height=”10″ patternUnits=”userSpaceOnUse”>
                <path d=”M 10 0 L 0 0 0 10″ fill=”none” stroke=”white” strokeWidth=”0.5″/>
              </pattern>
              <rect width=”100″ height=”100″ fill=”url(#grid)” />
            </svg>
          </div>
          <h2 className=”text-4xl lg:text-6xl font-black text-white mb-8 tracking-tighter”>FOTO RUSAK? KAMI PERBAIKI.</h2>
          <p className=”text-blue-100 text-xl max-w-2xl mx-auto mb-12″>
            Jangan biarkan kenangan berharga Anda pudar dimakan waktu. Klik tombol di bawah dan konsultasikan foto Anda gratis sekarang juga.
          </p>
          <div className=”flex flex-col sm:flex-row justify-center gap-4″>
            <button className=”px-10 py-5 bg-white text-blue-600 rounded-2xl font-black text-xl hover:scale-105 active:scale-95 transition-all shadow-2xl”>
              KONSULTASI VIA WA
            </button>
            <div className=”flex items-center justify-center gap-2 text-white/80 font-bold px-6″>
              <Star className=”w-5 h-5 fill-yellow-400 text-yellow-400″ /> 4.9/5 Rating Pelanggan
            </div>
          </div>
        </div>
      </section>

      {/* Footer */}
      <footer className=”pt-20 pb-10 px-6 border-t border-white/5″>
        <div className=”max-w-7xl mx-auto”>
          <div className=”grid grid-cols-2 md:grid-cols-4 gap-12 mb-20″>
            <div className=”col-span-2 md:col-span-1 space-y-6″>
              <div className=”flex items-center gap-3″>
                <div className=”w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center”>
                  <Wand2 className=”text-white w-5 h-5″ />
                </div>
                <span className=”text-xl font-black text-white tracking-tighter uppercase”>Gem AI</span>
              </div>
              <p className=”text-sm text-slate-500 leading-relaxed”>
                Platform restorasi foto berbasis AI yang menggabungkan presisi mesin dengan estetika manusia.
              </p>
            </div>
           
            <div>
              <h5 className=”font-bold text-white mb-6 uppercase text-xs tracking-[0.2em]”>Navigasi</h5>
              <ul className=”space-y-4 text-sm text-slate-500 font-medium”>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Portofolio</a></li>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Cara Kerja</a></li>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Harga Paket</a></li>
              </ul>
            </div>

            <div>
              <h5 className=”font-bold text-white mb-6 uppercase text-xs tracking-[0.2em]”>Legal</h5>
              <ul className=”space-y-4 text-sm text-slate-500 font-medium”>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Privacy Policy</a></li>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Terms of Service</a></li>
                <li><a href=”#” className=”hover:text-blue-400 transition-colors”>Cookie Policy</a></li>
              </ul>
            </div>

            <div>
              <h5 className=”font-bold text-white mb-6 uppercase text-xs tracking-[0.2em]”>Ikuti Kami</h5>
              <div className=”flex gap-4″>
                {[1,2,3].map(i => (
                  <div key={i} className=”w-10 h-10 rounded-xl bg-white/5 border border-white/10 flex items-center justify-center hover:border-blue-500/50 hover:text-blue-400 transition-all cursor-pointer”>
                    <Star className=”w-4 h-4″ />
                  </div>
                ))}
              </div>
            </div>
          </div>
         
          <div className=”flex flex-col md:flex-row justify-between items-center pt-8 border-t border-white/5 gap-4″>
            <p className=”text-xs text-slate-600 font-medium”>© 2024 GEM AI PHOTO STUDIO. ALL RIGHTS RESERVED.</p>
            <div className=”flex items-center gap-2 text-xs text-slate-600″>
               MADE WITH <Zap className=”w-3 h-3 text-yellow-500 fill-current” /> IN INDONESIA
            </div>
          </div>
        </div>
      </footer>

      {/* Mobile Floating Action Button */}
      <div className=”fixed bottom-6 right-6 md:hidden z-50″>
        <button className=”w-16 h-16 bg-blue-600 rounded-full flex items-center justify-center shadow-2xl text-white”>
          <MessageCircle className=”w-8 h-8″ />
        </button>
      </div>

    </div>
  );
};

export default App;