:root{
  --cream:#F8F4EC;
  --ivory:#FFFDF8;
  --beige:#E8DCCB;
  --champagne:#DCC7A8;
  --gold:#B8863B;
  --bronze:#8B6B3F;
  --dark:#2C241B;
  --text:#5B5145;
  --white:#FFFFFF;
}

*{font-family:'Outfit',sans-serif;}
.font-display{font-family:'Cormorant Garamond',serif;}
body{background:var(--cream); color:var(--dark);}

/* ---------- Reveal-on-scroll ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}

@keyframes fadeUp{
  from{opacity:0; transform:translateY(22px);}
  to{opacity:1; transform:translateY(0);}
}
.hero-reveal{opacity:0; animation:fadeUp .9s ease-out forwards;}
.hero-reveal.d1{animation-delay:.15s;}
.hero-reveal.d2{animation-delay:.35s;}
.hero-reveal.d3{animation-delay:.55s;}
.hero-reveal.d4{animation-delay:.75s;}

/* ---------- Shared bits ---------- */
.eyebrow::before{
  content:'';
  display:inline-block;
  width:28px; height:1px;
  background:var(--gold);
  margin-right:10px;
  vertical-align:middle;
}

.hairline{ background:var(--gold); }

.btn-gold{ background:var(--gold); color:var(--ivory); transition:all .3s ease; }
.btn-gold:hover{ background:var(--bronze); transform:translateY(-2px); box-shadow:0 10px 24px -8px rgba(139,107,63,.55); }

.btn-outline-dark{ border:1.5px solid var(--gold); color:var(--dark); transition:all .3s ease; }
.btn-outline-dark:hover{ background:var(--gold); color:var(--ivory); }

.btn-outline-light{ border:1.5px solid var(--ivory); color:var(--ivory); transition:all .3s ease; }
.btn-outline-light:hover{ background:var(--ivory); color:var(--dark); }

.card-premium{
  background:var(--ivory);
  border:1px solid var(--champagne);
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.card-premium:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px -20px rgba(44,36,27,.25);
  border-color:var(--gold);
}

.icon-badge{
  background:var(--beige);
  color:var(--gold);
  transition:background .3s ease, color .3s ease;
}
.card-premium:hover .icon-badge{ background:var(--gold); color:var(--ivory); }

.paper{
  background-color:var(--ivory);
  background-image:
    radial-gradient(circle at 20% 20%, rgba(184,134,59,0.05) 0%, transparent 45%),
    radial-gradient(circle at 80% 80%, rgba(44,36,27,0.04) 0%, transparent 45%);
}

/* ---------- Mobile nav ---------- */
.mobile-nav{ transform:translateY(-12px); opacity:0; pointer-events:none; transition:all .25s ease; }
.mobile-nav.open{ transform:translateY(0); opacity:1; pointer-events:auto; }

/* ---------- Lightbox ---------- */
#lightbox{ background:rgba(44,36,27,.92); }

@media (prefers-reduced-motion: reduce){
  .reveal, .hero-reveal{ animation:none !important; opacity:1 !important; transform:none !important; transition:none !important; }
}
