<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>LUMÉRA — Your Glow, Uncomplicated</title>
<meta name="description" content="LUMÉRA — premium, cruelty-free beauty. Skincare, makeup and hair rituals that solve real problems." />

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,600;1,700&family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet">

<script src="https://cdn.tailwindcss.com"></script>
<script>
  tailwind.config = {
    theme: {
      extend: {
        fontFamily: {
          display: ['"Playfair Display"', 'serif'],
          body: ['Poppins', 'sans-serif'],
        },
        colors: {
          rose:    '#FF2E87',
          coral:   '#FF5C5C',
          lavender:'#B98CFF',
          sky:     '#3FC1FF',
          mint:    '#3FE0A5',
          gold:    '#E8B923',
          peach:   '#FFB25E',
          ink:     '#241221',
        },
      }
    }
  }
</script>

<style>
  html{ scroll-behavior:smooth; }
  body{ background:#241221; }
  ::selection{ background:#FF2E87; color:#fff; }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  }
  a:focus-visible, button:focus-visible{ outline:2px solid #FFB25E; outline-offset:3px; border-radius:8px; }

  /* Vibrant animated gradient backdrop */
  .aurora{
    position:absolute; inset:-20%;
    background:
      radial-gradient(38% 45% at 15% 20%, #FF2E87 0%, transparent 60%),
      radial-gradient(42% 50% at 85% 15%, #3FC1FF 0%, transparent 60%),
      radial-gradient(45% 55% at 75% 85%, #E8B923 0%, transparent 60%),
      radial-gradient(40% 45% at 20% 85%, #3FE0A5 0%, transparent 60%),
      radial-gradient(35% 40% at 50% 50%, #B98CFF 0%, transparent 65%);
    filter: blur(10px) saturate(1.3);
    animation: auroraShift 16s ease-in-out infinite alternate;
  }
  @keyframes auroraShift{
    0%{ transform: rotate(0deg) scale(1); }
    100%{ transform: rotate(8deg) scale(1.12); }
  }

  /* Signature: Glow Ribbon — a single vivid gradient stroke that threads through the hero */
  .glow-ribbon path{
    stroke:url(#ribbonGradient); stroke-width:3; fill:none;
    filter: drop-shadow(0 0 22px rgba(255,46,135,.55));
    animation: ribbonFloat 12s ease-in-out infinite;
  }
  @keyframes ribbonFloat{
    0%,100%{ transform:translateY(0) scaleX(1); }
    50%{ transform:translateY(-16px) scaleX(1.02); }
  }

  .blob{ position:absolute; border-radius:9999px; filter:blur(50px); opacity:.65; animation: blobFloat 9s ease-in-out infinite; }
  @keyframes blobFloat{
    0%,100%{ transform: translate(0,0) scale(1); }
    50%{ transform: translate(18px,-22px) scale(1.1); }
  }

  .btn-ripple{ position:relative; overflow:hidden; }
  .btn-ripple span.ripple{
    position:absolute; border-radius:9999px; background:rgba(255,255,255,.55);
    transform:scale(0); animation: rippleAnim .6s ease-out forwards; pointer-events:none;
  }
  @keyframes rippleAnim{ to{ transform:scale(3); opacity:0; } }

  .fade-up{ opacity:0; transform:translateY(22px); animation: fadeUp .8s ease forwards; }
  @keyframes fadeUp{ to{ opacity:1; transform:translateY(0); } }

  .shine-card::before{
    content:""; position:absolute; inset:0;
    background: radial-gradient(120% 120% at 20% 10%, rgba(255,255,255,.5), transparent 55%);
    mix-blend-mode: overlay; pointer-events:none;
  }
</style>
</head>
<body class="font-body antialiased text-white">

<section id="top" class="relative min-h-screen overflow-hidden flex flex-col">

  <!-- vibrant animated aurora backdrop -->
  <div class="aurora" aria-hidden="true"></div>
  <div class="absolute inset-0 bg-ink/35" aria-hidden="true"></div>

  <!-- floating gradient blobs -->
  <div class="blob w-72 h-72 bg-lavender -top-10 -left-10"></div>
  <div class="blob w-96 h-96 bg-peach top-24 -right-16" style="animation-delay:2s"></div>
  <div class="blob w-60 h-60 bg-mint bottom-10 left-1/4" style="animation-delay:4s"></div>
  <div class="blob w-52 h-52 bg-sky bottom-0 right-1/4" style="animation-delay:6s"></div>

  <!-- signature glow ribbon -->
  <div class="absolute inset-0 pointer-events-none" aria-hidden="true">
    <svg class="glow-ribbon w-full h-full" viewBox="0 0 1440 900" preserveAspectRatio="none">
      <defs>
        <linearGradient id="ribbonGradient" x1="0%" y1="0%" x2="100%" y2="100%">
          <stop offset="0%" stop-color="#FF2E87"/>
          <stop offset="30%" stop-color="#B98CFF"/>
          <stop offset="60%" stop-color="#3FC1FF"/>
          <stop offset="100%" stop-color="#E8B923"/>
        </linearGradient>
      </defs>
      <path d="M -100 220 C 250 100, 450 380, 750 260 S 1250 60, 1550 240" />
      <path d="M -100 460 C 300 540, 500 280, 800 460 S 1300 600, 1550 440" opacity="0.5" />
    </svg>
  </div>

  <!-- minimal top bar -->
  <header class="relative z-10 max-w-7xl mx-auto w-full px-5 sm:px-8 h-20 flex items-center justify-between">
    <a href="#top" class="font-display text-2xl sm:text-3xl font-700 tracking-wide">
      LUM<span class="text-rose">É</span>RA
    </a>
    <nav class="hidden md:flex items-center gap-8 text-sm font-medium text-white/85">
      <a href="#" class="hover:text-gold transition-colors">Shop</a>
      <a href="#" class="hover:text-gold transition-colors">Skincare</a>
      <a href="#" class="hover:text-gold transition-colors">Makeup</a>
      <a href="#" class="hover:text-gold transition-colors">Journal</a>
    </nav>
    <a href="#" class="p-2.5 rounded-full bg-white/10 hover:bg-white/20 transition-colors" aria-label="Cart">
      <svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.8"><path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l2.4 12.4a2 2 0 0 0 2 1.6h7.2a2 2 0 0 0 2-1.6L20 8H6"/><circle cx="9" cy="20" r="1"/><circle cx="17" cy="20" r="1"/></svg>
    </a>
  </header>

  <!-- hero content -->
  <div class="relative z-10 flex-1 max-w-7xl mx-auto w-full px-5 sm:px-8 grid lg:grid-cols-2 gap-14 items-center py-10 sm:py-14">
    <div>
      <p class="fade-up inline-flex items-center gap-2 text-xs font-semibold tracking-[0.2em] uppercase bg-white/10 border border-white/20 px-4 py-1.5 rounded-full mb-6" style="animation-delay:.05s">
        <span class="w-1.5 h-1.5 rounded-full bg-gold animate-pulse"></span> New Season Edit is Live
      </p>

      <h1 class="fade-up font-display text-5xl sm:text-6xl lg:text-7xl leading-[1.05]" style="animation-delay:.15s">
        Your glow,
        <span class="italic bg-gradient-to-r from-rose via-coral to-gold bg-clip-text text-transparent">uncomplicated.</span>
      </h1>

      <p class="fade-up mt-6 text-lg text-white/80 max-w-md" style="animation-delay:.3s">
        Skincare, makeup and hair rituals built around real problems — dullness, damage, dryness, downtime — not another 12-step routine you'll abandon by Friday.
      </p>

      <div class="fade-up mt-9 flex flex-wrap items-center gap-4" style="animation-delay:.45s">
        <a href="#" onclick="ripple(event)" class="btn-ripple relative bg-gradient-to-r from-rose to-coral text-white px-8 py-4 rounded-full font-semibold text-sm tracking-wide hover:brightness-110 transition-all shadow-[0_15px_45px_-10px_rgba(255,46,135,.6)]">
          Shop Best Sellers
        </a>
        <a href="#" onclick="ripple(event)" class="btn-ripple relative border-2 border-white/40 px-8 py-4 rounded-full font-semibold text-sm tracking-wide hover:border-gold hover:text-gold transition-colors">
          Explore Collection
        </a>
      </div>

      <div class="fade-up mt-10 flex flex-wrap gap-x-8 gap-y-3 text-xs font-medium text-white/70" style="animation-delay:.6s">
        <span class="flex items-center gap-1.5">🌿 Cruelty-free</span>
        <span class="flex items-center gap-1.5">🔬 Derm-tested</span>
        <span class="flex items-center gap-1.5">★ 4.8 avg / 38,000+ reviews</span>
      </div>
    </div>

    <div class="fade-up relative" style="animation-delay:.4s">
      <div class="aspect-[4/5] rounded-[2rem] bg-gradient-to-br from-rose via-lavender to-sky shadow-[0_25px_70px_-15px_rgba(255,46,135,.55)] relative overflow-hidden shine-card">
        <div class="absolute inset-0 flex items-center justify-center">
          <span class="font-display italic text-3xl text-white drop-shadow-lg text-center px-10">"The serum that finally fixed my 2am doom-scroll skin."</span>
        </div>
      </div>
      <div class="absolute -bottom-8 -left-8 bg-ink/90 backdrop-blur rounded-3xl shadow-2xl p-5 w-52 hidden sm:block border border-white/10">
        <p class="text-xs text-white/50 mb-1">This week's hero</p>
        <p class="font-display text-lg leading-tight">Cloud Dew Hyaluronic Serum</p>
        <div class="flex items-center gap-1 text-gold text-sm mt-1" aria-label="4.9 out of 5 stars">★★★★★ <span class="text-white/50 text-xs ml-1">4.9</span></div>
      </div>
    </div>
  </div>

  <!-- scroll cue -->
  <div class="relative z-10 flex justify-center pb-6">
    <div class="w-6 h-10 rounded-full border-2 border-white/40 flex items-start justify-center p-1.5">
      <span class="w-1.5 h-1.5 rounded-full bg-gold animate-bounce"></span>
    </div>
  </div>
</section>

<script>
  function ripple(evt){
    evt.preventDefault();
    const btn = evt.currentTarget;
    const rect = btn.getBoundingClientRect();
    const span = document.createElement('span');
    span.className = 'ripple';
    const size = Math.max(rect.width, rect.height);
    span.style.width = span.style.height = size+'px';
    span.style.left = (evt.clientX - rect.left - size/2)+'px';
    span.style.top = (evt.clientY - rect.top - size/2)+'px';
    btn.appendChild(span);
    setTimeout(()=>span.remove(), 650);
  }
</script>
</body>
</html>

Scroll to Top