@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

:root{
  --navy:#0B1F3A;
  --navy-light:#142C50;
  --gold:#C9A227;
  --gold-light:#E0C158;
  --cream:#FAF8F4;
  --text-dark:#16213E;
  --text-muted:#5B6478;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--cream);
  color:var(--text-dark);
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-display{
  font-family:'Cinzel',serif;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}

/* Reveal on scroll */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.25s;}
.reveal-delay-3{transition-delay:.4s;}

/* Nav */
.nav-link{position:relative;}
.nav-link::after{
  content:'';
  position:absolute;
  left:0; bottom:-4px;
  width:0; height:2px;
  background:var(--gold);
  transition:width .3s ease;
}
.nav-link:hover::after, .nav-link.active::after{width:100%;}

/* Buttons */
.btn-gold{
  background:var(--gold);
  color:var(--navy);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.btn-gold:hover{
  background:var(--gold-light);
  transform:translateY(-2px);
  box-shadow:0 12px 24px -8px rgba(201,162,39,.5);
}
.btn-outline{
  border:1px solid rgba(255,255,255,.5);
  transition:all .25s ease;
}
.btn-outline:hover{
  background:#fff;
  color:var(--navy);
}

/* Card hover */
.property-card{
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease;
}
.property-card:hover{
  transform:translateY(-8px);
  box-shadow:0 30px 60px -20px rgba(11,31,58,.35);
}
.property-card img{
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.property-card:hover img{
  transform:scale(1.08);
}

/* Hero video */
.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,31,58,.55) 0%, rgba(11,31,58,.65) 55%, rgba(11,31,58,.92) 100%);
}

/* Marquee stats */
@keyframes countup{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* Skeleton shimmer for lazy images */
.img-shimmer{
  background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);
  background-size:400% 100%;
  animation:shimmer 1.4s ease infinite;
}
@keyframes shimmer{0%{background-position:100% 0;}100%{background-position:0 0;}}

/* Mobile menu */
#mobile-menu{
  transition:max-height .35s ease, opacity .35s ease;
}

/* Form focus */
input:focus, textarea:focus, select:focus{
  outline:2px solid var(--gold);
  outline-offset:1px;
}

/* Scrollbar accent */
::selection{background:var(--gold); color:var(--navy);}

/* Gallery thumb active */
.thumb-active{
  outline:2px solid var(--gold);
  outline-offset:2px;
}

/* Line clamp utility */
.line-clamp-2{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
