:root{
  --cream:#FAF7F2; --ivory:#F4EFE6; --sand:#EDE4D3; --gold:#C9A04B; --gold-soft:#E6CE93;
  --emerald:#2D5F4F; --ink:#1A1614;
}
*{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Manrope',sans-serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}
.font-display{ font-family:'Cormorant Garamond', serif; letter-spacing:-.01em; }
.font-italic-soft{ font-family:'Cormorant Garamond', serif; font-style:italic; }

.text-gold-gradient{
  background: linear-gradient(120deg,#946929 0%, #C9A04B 35%, #F2E4C2 55%, #C9A04B 75%, #946929 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.text-emerald-gradient{
  background: linear-gradient(120deg,#1F4E3D, #3E7765 60%, #1F4E3D);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.bg-grain{
  background-image: radial-gradient(rgba(26,22,20,.05) 1px, transparent 1px);
  background-size: 3px 3px;
}
.bg-aurora{
  background:
    radial-gradient(60% 50% at 18% 22%, rgba(217,184,106,.22), transparent 60%),
    radial-gradient(50% 45% at 82% 14%, rgba(123,174,155,.20), transparent 65%),
    radial-gradient(55% 50% at 50% 92%, rgba(242,228,194,.40), transparent 70%),
    linear-gradient(180deg,#FAF7F2 0%, #F4EFE6 100%);
}
.bg-marble{
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(217,184,106,.18), transparent 60%),
    radial-gradient(1000px 600px at 110% 10%, rgba(45,95,79,.10), transparent 60%),
    radial-gradient(900px 700px at 50% 110%, rgba(217,184,106,.10), transparent 60%),
    linear-gradient(180deg,#FAF7F2,#F4EFE6);
}

.glass{
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.55));
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(217,184,106,.22);
}
.glass-strong{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(250,247,242,.78));
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(217,184,106,.28);
}

.hairline{
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(181,133,53,.45), transparent);
}

.btn-gold{
  position:relative;
  background: linear-gradient(180deg,#E6CE93 0%, #C9A04B 100%);
  color:#1F140A;
  border:1px solid rgba(148,105,41,.5);
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 18px 30px -14px rgba(181,133,53,.55);
  transition: transform .35s ease, box-shadow .35s ease, filter .35s ease;
}
.btn-gold:hover{
  transform: translateY(-2px);
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset, 0 26px 40px -16px rgba(181,133,53,.7);
  filter: brightness(1.04);
}
.btn-ghost{
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(10px);
  border:1px solid rgba(31,78,61,.18);
  color:#1F4E3D;
  transition: all .3s ease;
}
.btn-ghost:hover{
  background: rgba(255,255,255,.9);
  border-color: rgba(31,78,61,.35);
  transform: translateY(-2px);
}

.btn-gold::after{
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) 45%, transparent 60%);
  transform: translateX(-120%);
  transition: transform .9s ease;
  border-radius: inherit; pointer-events:none;
}
.btn-gold:hover::after{ transform: translateX(120%); }

.gold-glow{
  box-shadow: 0 0 0 1px rgba(217,184,106,.35), 0 30px 60px -25px rgba(217,184,106,.55);
}
.glow-soft{ position:relative; }
.glow-soft::before{
  content:''; position:absolute; inset:-1px; border-radius:inherit; padding:1px;
  background: linear-gradient(135deg, rgba(242,228,194,.7), rgba(217,184,106,.15) 40%, rgba(123,174,155,.35));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events:none;
}

@keyframes float-y { 0%,100%{ transform:translateY(0)} 50%{ transform:translateY(-10px)} }
.float-y{ animation: float-y 7s ease-in-out infinite; }
.float-y.delay-1{ animation-delay:-1.5s }
.float-y.delay-2{ animation-delay:-3s }
.float-y.delay-3{ animation-delay:-4.5s }

@keyframes shimmer-bg {
  0%{ background-position: 0% 50% } 100%{ background-position: 200% 50% }
}
.shimmer-line{
  background: linear-gradient(90deg, transparent, rgba(217,184,106,.7), transparent);
  background-size: 200% 100%;
  animation: shimmer-bg 4s linear infinite;
}

.reveal{ opacity:0; transform: translateY(28px); }
.reveal-left{ opacity:0; transform: translateX(-32px); }
.reveal-right{ opacity:0; transform: translateX(32px); }
.reveal-scale{ opacity:0; transform: scale(.96); }

.card-lift{ transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s ease; }
.card-lift:hover{ transform: translateY(-8px); box-shadow: 0 40px 60px -30px rgba(31,78,61,.25), 0 0 0 1px rgba(217,184,106,.4); }

@keyframes marquee { 0%{ transform: translateX(0)} 100%{ transform: translateX(-50%) } }
@keyframes marquee-rev { 0%{ transform: translateX(-50%)} 100%{ transform: translateX(0) } }
.marquee-track{ animation: marquee 38s linear infinite; }
.marquee-reverse{ animation: marquee-rev 48s linear infinite; }

.dot{ position:absolute; width:6px; height:6px; border-radius:50%;
      background: radial-gradient(circle, #F2E4C2 0%, rgba(217,184,106,.0) 70%);
      filter: blur(.4px); opacity:.8; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.72rem; letter-spacing:.32em; text-transform:uppercase;
  color:#946929;
}
.eyebrow::before, .eyebrow::after{
  content:''; width:32px; height:1px; background: linear-gradient(90deg, transparent, #C9A04B, transparent);
}
.eyebrow.left-only::after{ display:none }
.eyebrow.left-only::before{ width:24px }

.nav-link{ position:relative; }
.nav-link::after{
  content:''; position:absolute; left:50%; bottom:-6px; width:0; height:1px;
  background: linear-gradient(90deg,#C9A04B,#E6CE93);
  transition: width .35s ease, left .35s ease;
}
.nav-link:hover::after{ width:100%; left:0; }

.num{ font-variant-numeric: tabular-nums; }

.sheen{ position:relative; overflow:hidden; }
.sheen::before{
  content:''; position:absolute; inset:0;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.45) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform .9s ease;
}
.sheen:hover::before{ transform: translateX(120%); }

.parallax-layer{ will-change: transform; }

.dotgrid{
  background-image: radial-gradient(rgba(45,95,79,.08) 1px, transparent 1px);
  background-size: 22px 22px;
}

::-webkit-scrollbar{ width:10px; height:10px }
::-webkit-scrollbar-track{ background:#F4EFE6 }
::-webkit-scrollbar-thumb{ background: linear-gradient(#D9B86A,#946929); border-radius:10px }

.ornament{
  display:flex; align-items:center; justify-content:center; gap:.8rem;
  color:#C9A04B;
}
.ornament .line{ width:80px; height:1px; background: linear-gradient(90deg, transparent, #C9A04B, transparent); }

@keyframes pulse-ring {
  0%{ box-shadow: 0 0 0 0 rgba(217,184,106,.55) }
  70%{ box-shadow: 0 0 0 14px rgba(217,184,106,0) }
  100%{ box-shadow: 0 0 0 0 rgba(217,184,106,0) }
}
.pulse{ animation: pulse-ring 2.4s infinite; }

.star{ color:#C9A04B; }

.footer-link{ color:#5C544A; transition:color .25s ease, letter-spacing .25s ease; }
.footer-link:hover{ color:#1F4E3D; letter-spacing:.02em; }

.h-hero{ font-size: clamp(2.7rem, 6.6vw, 6rem); line-height: 1.02; }
.h-section{ font-size: clamp(2rem, 4.2vw, 3.6rem); line-height: 1.08; }

/* Mobile phone stack */
.phone-frame{
  position:relative;
  border-radius: 36px;
  background: linear-gradient(180deg,#1A1614,#0F2C22);
  padding: 10px;
  box-shadow: 0 50px 80px -30px rgba(15,44,34,.55), 0 0 0 1px rgba(217,184,106,.35), 0 0 30px rgba(217,184,106,.18);
}
.phone-frame img{
  display:block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 28px;
}
.phone-tilt-l{ transform: rotate(-9deg); }
.phone-tilt-r{ transform: rotate(9deg); }
@keyframes float-soft { 0%,100%{ transform: translateY(0) rotate(0)} 50%{ transform: translateY(-14px) rotate(0)} }
.float-soft{ animation: float-soft 9s ease-in-out infinite; }

/* Phone screen carousel */
@keyframes phone-cycle {
  0%   { opacity: 0; transform: scale(1.04); }
  8%   { opacity: 1; transform: scale(1); }
  33%  { opacity: 1; transform: scale(1); }
  41%  { opacity: 0; transform: scale(0.98); }
  100% { opacity: 0; transform: scale(0.98); }
}
.phone-slide{
  opacity: 0;
  will-change: opacity, transform;
  animation: phone-cycle 9s ease-in-out infinite;
  filter: drop-shadow(0 30px 40px rgba(15,44,34,.35)) drop-shadow(0 6px 14px rgba(15,44,34,.25));
}
.phone-slide-1{ animation-delay: 0s; }
.phone-slide-2{ animation-delay: 3s; }
.phone-slide-3{ animation-delay: 6s; }

/* Carousel indicator dots */
@keyframes phone-dot-on {
  0%   { background:#E6CE93; transform: scale(1); }
  4%   { background:#C9A04B; transform: scale(1.6); }
  33%  { background:#C9A04B; transform: scale(1.6); }
  41%  { background:rgba(217,184,106,.35); transform: scale(1); }
  100% { background:rgba(217,184,106,.35); transform: scale(1); }
}
.phone-dot{
  width:7px; height:7px; border-radius:9999px;
  background: rgba(217,184,106,.35);
  display:inline-block;
  animation: phone-dot-on 9s ease-in-out infinite;
}
.phone-dot-1{ animation-delay: 0s; }
.phone-dot-2{ animation-delay: 3s; }
.phone-dot-3{ animation-delay: 6s; }

@media (prefers-reduced-motion: reduce){
  .float-y, .shimmer-line, .marquee-track, .marquee-reverse, .pulse, .float-soft, .phone-slide, .phone-dot{ animation: none !important; }
  .phone-slide{ opacity:1 !important; }
  .phone-slide:not(:first-child){ display:none; }
  .reveal,.reveal-left,.reveal-right,.reveal-scale{ opacity:1 !important; transform:none !important; }
}
