
:root{
  --ink:#070814;
  --navy:#0e1026;
  --navy2:#171634;
  --lav:#cdb7ff;
  --amethyst:#8f63e8;
  --rose:#f7dbe7;
  --gold:#d8b86a;
  --cream:#fff9fb;
  --muted:#c9bfd1;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Inter, Arial, Helvetica, sans-serif;
  background:
    radial-gradient(circle at 15% 15%, rgba(143,99,232,.18), transparent 24rem),
    radial-gradient(circle at 85% 40%, rgba(216,184,106,.12), transparent 24rem),
    linear-gradient(180deg,#070814 0%,#0d0d20 45%,#080914 100%);
  color:var(--cream);
}
a{text-decoration:none;color:inherit}
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 5vw;
  background:rgba(7,8,20,.78);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(216,184,106,.22);
}
.logo{font-family:Georgia,serif;font-size:24px;letter-spacing:.18em}
.logo span{color:var(--gold)}
.navlinks{display:flex;gap:28px;font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.navlinks a:hover{color:var(--lav)}
.hero{
  min-height:88vh;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  padding:7vw 6vw 5vw;
  gap:5vw;
  overflow:hidden;
  position:relative;
}
.stars{position:absolute;inset:0;pointer-events:none;opacity:.6;
 background-image:radial-gradient(circle,#fff 1px,transparent 1px);
 background-size:42px 42px;
 mask-image:linear-gradient(to bottom,black,transparent 80%);
}
.hero-copy{position:relative;z-index:1}
.eyebrow{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.hero h1{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(66px,9vw,145px);
  line-height:.78;
  margin:22px 0;
  letter-spacing:-.05em;
}
.hero h1 .doll{font-style:italic;color:var(--rose)}
.tagline{font-family:Georgia,serif;font-size:22px;color:var(--lav);font-style:italic;margin:18px 0 32px}
.blurb{max-width:560px;color:#d5cede;line-height:1.8;font-size:15px}
.buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{
  padding:15px 23px;
  border:1px solid var(--gold);
  border-radius:999px;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.17em;
  transition:.25s ease;
}
.btn.primary{background:var(--gold);color:#17131c}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 25px rgba(205,183,255,.25)}
.hero-art{
  position:relative;
  height:640px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.moon{
  width:470px;height:470px;border-radius:50%;
  position:absolute;
  background:radial-gradient(circle at 35% 30%,#eee4ff 0,#c6a9ef 30%,#6a4b98 68%,#241b3e 100%);
  box-shadow:0 0 80px rgba(166,123,231,.38), inset -40px -50px 70px rgba(24,14,42,.4);
}
.moon:after{
  content:"";
  position:absolute;
  width:390px;height:390px;border-radius:50%;
  background:#090a17;
  top:-35px;left:120px;
}
.product-fan{position:absolute;inset:0}
.card{
  position:absolute;
  width:270px;
  border:1px solid rgba(216,184,106,.36);
  border-radius:22px;
  overflow:hidden;
  background:#161326;
  box-shadow:0 18px 60px rgba(0,0,0,.45);
}
.card img{width:100%;display:block}
.card.one{left:5%;top:9%;transform:rotate(-7deg)}
.card.two{right:0;top:18%;transform:rotate(8deg)}
.card.three{left:28%;bottom:0;transform:rotate(1deg);width:290px}
.section{padding:90px 6vw}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}
.kicker{color:var(--gold);font-size:11px;letter-spacing:.3em;text-transform:uppercase}
.section h2{font-family:Georgia,serif;font-size:clamp(40px,5vw,72px);font-weight:400;margin:9px 0 0}
.section-note{max-width:430px;color:var(--muted);line-height:1.7;font-size:14px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(min-width:1400px){.grid{grid-template-columns:repeat(4,1fr)}}
.look{
  background:linear-gradient(180deg,#151329,#0d0d1d);
  border:1px solid rgba(216,184,106,.22);
  border-radius:28px;
  overflow:hidden;
  position:relative;
  transition:.3s ease;
}
.look:hover{transform:translateY(-7px);border-color:rgba(205,183,255,.58)}
.look img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.look .meta{padding:22px}
.look h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:0 0 8px}
.look p{margin:0;color:#bdb3c9;font-size:13px}
.ribbon{
 position:absolute;top:16px;left:16px;
 background:rgba(8,8,18,.78);
 border:1px solid rgba(216,184,106,.42);
 border-radius:999px;
 padding:9px 13px;
 font-size:10px;letter-spacing:.16em;text-transform:uppercase;
}
.portal{
  margin:50px 6vw 80px;
  border-radius:36px;
  overflow:hidden;
  border:1px solid rgba(216,184,106,.3);
  background:
    radial-gradient(circle at 80% 20%,rgba(205,183,255,.2),transparent 28rem),
    linear-gradient(120deg,#17152d,#0b0b16);
  display:grid;grid-template-columns:1fr 1fr;
}
.portal-copy{padding:70px}
.portal h2{font-family:Georgia,serif;font-size:58px;font-weight:400;margin:0 0 18px}
.portal p{color:#c8bed2;line-height:1.8}
.steps{padding:70px;display:grid;gap:14px}
.step{
 border:1px solid rgba(205,183,255,.22);
 border-radius:20px;
 padding:20px;
 background:rgba(255,255,255,.025)
}
.step b{color:var(--lav);letter-spacing:.08em}
.footer{
 padding:34px 6vw 50px;
 border-top:1px solid rgba(216,184,106,.18);
 display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;
 color:#a99fb4;font-size:12px
}
.sparkle{color:var(--gold)}
@media(max-width:900px){
 .navlinks{display:none}
 .hero{grid-template-columns:1fr;padding-top:90px}
 .hero-art{height:580px}
 .grid{grid-template-columns:1fr}
 .portal{grid-template-columns:1fr}
}

/* Urban Doll celestial animation */
.shooting-star{
  position:absolute;
  top:8%;
  left:18%;
  width:180px;
  height:2px;
  background:linear-gradient(90deg, rgba(255,255,255,0), #fff6d9 45%, #d9c1ff 75%, rgba(255,255,255,0));
  transform:rotate(-18deg);
  box-shadow:0 0 10px rgba(255,255,255,.9), 0 0 22px rgba(205,183,255,.65);
  animation:shootStar 6s ease-in-out infinite;
  z-index:3;
  pointer-events:none;
}
.shooting-star::after{
  content:"✦";
  position:absolute;
  right:-5px;
  top:-13px;
  font-size:25px;
  color:#fff9df;
  text-shadow:0 0 10px #fff,0 0 20px #cdb7ff,0 0 30px #d8b86a;
}
@keyframes shootStar{
  0%,66%{opacity:0;transform:translate(-90px,-35px) rotate(-18deg) scaleX(.65)}
  70%{opacity:1}
  82%{opacity:1;transform:translate(310px,105px) rotate(-18deg) scaleX(1)}
  86%,100%{opacity:0;transform:translate(390px,140px) rotate(-18deg) scaleX(.8)}
}
.sparkle-field{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
}
.sparkle{
  position:absolute;
  color:#fff9df;
  text-shadow:0 0 8px #fff,0 0 18px #cdb7ff,0 0 24px #d8b86a;
  animation:twinkle 2.8s ease-in-out infinite;
}
.sparkle.s1{top:18%;left:10%;font-size:14px;animation-delay:.2s}
.sparkle.s2{top:30%;left:42%;font-size:20px;animation-delay:1.1s}
.sparkle.s3{top:12%;right:16%;font-size:12px;animation-delay:1.8s}
.sparkle.s4{top:47%;right:10%;font-size:18px;animation-delay:.7s}
.sparkle.s5{bottom:18%;left:22%;font-size:13px;animation-delay:1.4s}
.sparkle.s6{bottom:10%;right:28%;font-size:21px;animation-delay:2.1s}
.sparkle.s7{top:57%;left:5%;font-size:11px;animation-delay:2.4s}
.sparkle.s8{top:22%;right:37%;font-size:16px;animation-delay:.95s}
@keyframes twinkle{
  0%,100%{opacity:.2;transform:scale(.7) rotate(0deg)}
  50%{opacity:1;transform:scale(1.25) rotate(16deg)}
}
.hero{position:relative}

/* Extra cosmic drama */
.comet-burst{
  position:absolute;
  top:7%;
  right:18%;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  box-shadow:
    0 0 10px #fff,
    0 0 24px #fff4c8,
    0 0 42px #d8b86a,
    0 0 70px #cdb7ff;
  animation:burstPulse 4.8s ease-in-out infinite;
  z-index:4;
  pointer-events:none;
}
.comet-burst::before,
.comet-burst::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:linear-gradient(90deg,transparent,#fff,transparent);
  opacity:.9;
}
.comet-burst::before{width:120px;height:2px;}
.comet-burst::after{width:2px;height:120px;background:linear-gradient(180deg,transparent,#fff,transparent);}
@keyframes burstPulse{
  0%,55%,100%{opacity:.35;transform:scale(.7)}
  62%{opacity:1;transform:scale(1.5)}
  70%{opacity:.75;transform:scale(1)}
}

.shooting-star.extra{
  width:220px;
  height:2px;
  animation-duration:8.5s;
}
.shooting-star.extra::after{font-size:20px;}
.shooting-star.star2{
  top:16%;
  left:58%;
  transform:rotate(-28deg);
  animation-delay:1.8s;
}
.shooting-star.star3{
  top:28%;
  left:5%;
  width:140px;
  transform:rotate(-10deg);
  animation-delay:3.1s;
  animation-duration:7.2s;
}
.shooting-star.star4{
  top:4%;
  left:38%;
  width:160px;
  transform:rotate(-22deg);
  animation-delay:4.6s;
  animation-duration:9.2s;
}

.cosmic-dust{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background-image:
    radial-gradient(circle at 18% 25%, rgba(255,255,255,.9) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 18%, rgba(205,183,255,.85) 0 1px, transparent 2px),
    radial-gradient(circle at 84% 44%, rgba(216,184,106,.75) 0 1px, transparent 2px),
    radial-gradient(circle at 42% 72%, rgba(255,255,255,.7) 0 1px, transparent 2px),
    radial-gradient(circle at 61% 55%, rgba(247,219,231,.75) 0 1px, transparent 2px);
  background-size:120px 120px, 160px 160px, 190px 190px, 140px 140px, 210px 210px;
  animation:dustDrift 18s linear infinite;
  opacity:.55;
}
@keyframes dustDrift{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(28px,18px,0)}
}
