:root{
  --bg:#141416;
  --fg:#f7f4ee;
  --muted:#b9b3a6;
  --gold:#d4af37;
  --gold-deep:#aa7c11;
  --gold-soft:#e8cf7d;
  --gradient-gold:linear-gradient(135deg,#d4af37 0%,#e8cf7d 50%,#aa7c11 100%);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background-color:var(--bg);
  color:var(--fg);
  font-family:'Plus Jakarta Sans', sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(212,175,55,.08), transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 100%, rgba(212,175,55,.05), transparent 60%);
  background-attachment:fixed;
}
.font-serif{font-family:'Playfair Display', serif;}
.gold-text{background:var(--gradient-gold); -webkit-background-clip:text; background-clip:text; color:transparent;}
.gold-hairline{background:linear-gradient(90deg, transparent 0%, rgba(212,175,55,.6) 50%, transparent 100%); height:1px; width:100%; margin:1.5rem 0;}
.glass-panel{background-color:rgba(255,255,255,.04); backdrop-filter:blur(14px) saturate(140%); border:1px solid rgba(255,255,255,.08); border-radius:1.1rem;}
.glass-strong{background-color:rgba(255,255,255,.06); backdrop-filter:blur(20px) saturate(160%); border:1px solid rgba(255,255,255,.1); border-radius:1.4rem;}
.hover-lift{transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, border-color .45s ease;}
.hover-lift:hover{transform:translateY(-6px) scale(1.015); box-shadow:0 30px 60px -20px rgba(212,175,55,.18), 0 10px 30px -15px rgba(0,0,0,.6); border-color:rgba(212,175,55,.35);}
.gold-border{position:relative;}
.gold-border::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--gradient-gold);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
.btn-gold{background:var(--gradient-gold); color:#151312; border-radius:999px; padding:.9rem 1.9rem; font-weight:500; letter-spacing:.02em; display:inline-flex; align-items:center; gap:.6rem; transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease; text-decoration:none; position:relative; overflow:hidden;}
.btn-gold:hover{transform:scale(1.04); box-shadow:0 12px 30px -8px rgba(212,175,55,.5);}
.btn-gold:active{transform:scale(.98);}
.btn-outline{border:1px solid rgba(255,255,255,.15); border-radius:999px; padding:.9rem 1.9rem; color:var(--fg); text-decoration:none; transition:border-color .3s ease, background .3s ease; display:inline-flex; align-items:center;}
.btn-outline:hover{border-color:rgba(212,175,55,.5); background:rgba(212,175,55,.06);}
.container-xl{max-width:80rem; margin:0 auto; padding:0 1.5rem;}
@media(min-width:1024px){.container-xl{padding:0 2.5rem;}}
.eyebrow{display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem;}
.eyebrow .line{height:1px; width:3rem; background:var(--gold);}
.eyebrow .label{font-size:11px; text-transform:uppercase; letter-spacing:.35em; color:var(--gold-soft);}
section{position:relative; padding:6rem 0; overflow:hidden;}
@media(min-width:1024px){section{padding:8rem 0;}}
img.cover{width:100%; height:100%; object-fit:cover; display:block;}
.icon-circle{display:grid; place-items:center; width:3rem; height:3rem; border-radius:999px; border:1px solid rgba(212,175,55,.3); color:var(--gold-soft); flex-shrink:0;}
.icon-circle i{width:20px; height:20px;}

/* progress bar + cursor glow */
.progress-bar{position:fixed; top:0; left:0; height:2px; width:0%; background:var(--gradient-gold); z-index:200; transition:width .1s linear;}
.cursor-glow{position:fixed; width:420px; height:420px; border-radius:50%; pointer-events:none; z-index:1; background:radial-gradient(circle, rgba(212,175,55,.06), transparent 70%); transform:translate(-50%,-50%); left:-500px; top:-500px; transition:left .3s ease, top .3s ease; display:none;}
@media(min-width:1024px){.cursor-glow{display:block;}}

/* HEADER */
header{position:fixed; inset-inline:0; top:0; z-index:100; padding:1.4rem 0; border-bottom:1px solid transparent; transition:.35s;}
header.scrolled{background:rgba(20,20,22,.78); backdrop-filter:blur(20px) saturate(160%); border-bottom:1px solid rgba(255,255,255,.1); padding:.8rem 0;}
.header-inner{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; text-decoration:none;}
.brand .logo{height:52px; width:auto; display:block; transition:height .35s ease;}
header.scrolled .brand .logo{height:40px;}
.navlinks{display:none; align-items:center; gap:2.5rem;}
@media(min-width:1024px){.navlinks{display:flex;}}
nav a{color:var(--muted); text-decoration:none; font-size:11px; text-transform:uppercase; letter-spacing:.3em; position:relative; padding-bottom:4px;}
nav a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold-soft); transition:width .3s ease;}
nav a:hover{color:var(--gold-soft);}
nav a:hover::after{width:100%;}
.btn-gold-nav{display:none;}
@media(min-width:1024px){.btn-gold-nav{display:inline-flex;}}

.menu-toggle{display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.5rem; z-index:120;}
@media(min-width:1024px){.menu-toggle{display:none;}}
.menu-toggle span{width:24px; height:2px; background:var(--fg); transition:.3s ease;}
.menu-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.active span:nth-child(2){opacity:0;}
.menu-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{position:fixed; inset:0; background:rgba(15,15,17,.98); backdrop-filter:blur(20px); z-index:99; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem; opacity:0; pointer-events:none; transition:opacity .35s ease;}
.mobile-nav.active{opacity:1; pointer-events:auto;}
.mobile-nav a{color:var(--fg); text-decoration:none; font-size:1.3rem; font-family:'Playfair Display',serif; letter-spacing:.05em;}

/* HERO */
.hero{min-height:100vh; display:flex; align-items:flex-end; padding-bottom:5rem; padding-top:10rem;}
.hero-bg-wrap{position:absolute; inset:0; z-index:-2; overflow:hidden;}
.hero-bg{position:absolute; inset:-5%; background-size:cover; background-position:center; transform:scale(1.08);}
.hero-overlay{position:absolute; inset:0; z-index:-1; background:linear-gradient(to bottom, rgba(20,20,22,.35), rgba(20,20,22,.7) 55%, var(--bg));}
.hero-grain{position:absolute; inset:0; z-index:-1; opacity:.03; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' /%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)'/%3E%3C/svg%3E");}
.hero-content{width:100%;}
.hero-title{max-width:56rem; font-size:2.6rem; line-height:1.08; color:var(--fg); margin:0; overflow:hidden;}
@media(min-width:768px){.hero-title{font-size:4rem;}}
.reveal-line{display:block; overflow:hidden;}
.reveal-inner{display:inline-block; transform:translateY(110%);}
.hero-sub{max-width:34rem; margin-top:2rem; color:var(--muted); font-size:1.05rem; line-height:1.7;}
.hero-ctas{margin-top:2.5rem; display:flex; flex-wrap:wrap; gap:1rem;}
.stats-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-top:4rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.1);}
@media(min-width:640px){.stats-grid{grid-template-columns:repeat(4,1fr);}}
.stat-v{font-family:'Playfair Display',serif; font-size:1.9rem;}
.stat-u{margin-top:.25rem; font-size:10px; text-transform:uppercase; letter-spacing:.3em; color:var(--muted);}

.scroll-cue{position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.6rem; z-index:2;}
.scroll-cue span{width:1px; height:40px; background:linear-gradient(to bottom, var(--gold-soft), transparent); animation:scrollpulse 2s ease infinite;}
.scroll-cue-label{font-size:9px; text-transform:uppercase; letter-spacing:.4em; color:var(--muted);}
@keyframes scrollpulse{0%,100%{opacity:.2;}50%{opacity:1;}}

/* NARRATIVE ZIGZAG */
.narrative-section{padding-top:5rem;}
.zigzag-row{display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; margin-bottom:5rem;}
.zigzag-row:last-child{margin-bottom:0;}
@media(min-width:1024px){
  .zigzag-row{grid-template-columns:1.1fr .9fr; gap:4rem;}
  .zigzag-row.reverse{grid-template-columns:.9fr 1.1fr;}
  .zigzag-row.reverse .zigzag-media{order:2;}
  .zigzag-row.reverse .zigzag-copy{order:1;}
}
.zigzag-media{position:relative;}
.img-frame{border-radius:1.2rem; overflow:hidden; border:1px solid rgba(255,255,255,.08); aspect-ratio:4/3; box-shadow:0 40px 80px -30px rgba(0,0,0,.6);}
.media-tag{position:absolute; bottom:-1rem; left:1.5rem; background:var(--gradient-gold); color:#151312; font-size:10px; text-transform:uppercase; letter-spacing:.3em; padding:.6rem 1.2rem; border-radius:999px; font-weight:500;}
.chapter-num{font-size:3rem; color:rgba(212,175,55,.25); line-height:1; margin-bottom:.5rem;}
.zigzag-copy h2{font-size:1.9rem; margin:0;}
@media(min-width:768px){.zigzag-copy h2{font-size:2.2rem;}}
.zigzag-copy p{color:var(--muted); line-height:1.75; margin-top:1rem;}

/* BUNGALOW BENTO */
.bungalow-panel{padding:2.5rem; overflow:hidden;}
@media(min-width:768px){.bungalow-panel{padding:3.5rem;}}
.bungalow-panel h2{font-size:2rem; margin-top:.3rem;}
@media(min-width:768px){.bungalow-panel h2{font-size:2.4rem;}}
.bungalow-lead{color:var(--muted); margin-top:1.2rem; max-width:34rem; line-height:1.75;}
.link-arrow{color:var(--gold-soft); text-decoration:none; font-size:.9rem; display:inline-flex; align-items:center; gap:.5rem; margin-top:1.2rem; transition:gap .3s ease;}
.link-arrow:hover{gap:.9rem;}

.bento-grid{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:2.5rem;}
@media(min-width:768px){
  .bento-grid{grid-template-columns:repeat(4,1fr); grid-template-rows:auto auto; gap:1.2rem;}
  .bento-hero{grid-column:span 2; grid-row:span 2;}
  .bento-tall{grid-column:span 2; grid-row:span 2;}
  .bento-fact{grid-column:span 1;}
}
.bento-item{border-radius:1rem; overflow:hidden; position:relative; min-height:180px; border:1px solid rgba(255,255,255,.08);}
.bento-hero{min-height:280px;}
.bento-tall{min-height:280px;}
.bento-caption{position:absolute; bottom:0; left:0; right:0; padding:1.2rem; background:linear-gradient(to top, rgba(0,0,0,.75), transparent); font-size:.9rem; color:var(--fg);}
.bento-fact{background:rgba(20,20,22,.6); padding:1.3rem; display:flex; flex-direction:column; justify-content:center; min-height:120px;}
.fact-label{font-size:10px; text-transform:uppercase; letter-spacing:.3em; color:var(--muted);}
.fact-value{margin-top:.6rem; font-size:1.1rem;}

/* LIFESTYLE SHOWCASE */
.lifestyle-section{padding-top:0; padding-bottom:0;}
.lifestyle-grid{display:grid; grid-template-columns:1fr; gap:1rem;}
@media(min-width:768px){.lifestyle-grid{grid-template-columns:1fr 1fr 1fr; gap:1.2rem;}}
.lifestyle-media{border-radius:1.1rem; overflow:hidden; aspect-ratio:4/5; border:1px solid rgba(255,255,255,.08);}
.lifestyle-media-tall{aspect-ratio:3/4;}
@media(min-width:768px){
  .lifestyle-media-tall{transform:translateY(-2rem);}
}
.lifestyle-media img{transition:transform .8s cubic-bezier(.16,1,.3,1);}
.lifestyle-media:hover img{transform:scale(1.08);}

/* COMMUNITY MASONRY */
.community-section .community-title{font-size:2rem; max-width:34rem;}
@media(min-width:768px){.community-section .community-title{font-size:2.2rem;}}
.masonry-grid{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3rem;}
@media(min-width:768px){.masonry-grid{grid-template-columns:1.1fr 1fr 1fr;}}
.masonry-item{border-radius:1.1rem; overflow:hidden; border:1px solid rgba(255,255,255,.08); aspect-ratio:3/4; background:#1c1c1e;}
.masonry-item.tall{aspect-ratio:3/4;}
@media(min-width:768px){.masonry-item.tall{aspect-ratio:auto; height:100%;}}
.masonry-item.short{aspect-ratio:4/3;}
.masonry-item img{object-fit:contain; background:#1c1c1e; padding:1rem;}
.masonry-item:not(.short):not(.tall) img{object-fit:cover; padding:0;}

/* AMENITIES */
.amenities-head{margin-bottom:3rem; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:1.5rem;}
.amenities-head h2{font-size:2rem;}
@media(min-width:768px){.amenities-head h2{font-size:2.2rem;}}
.amenities-desc{max-width:26rem; color:var(--muted); font-size:.9rem; line-height:1.7;}

.amenities-showcase{display:grid; grid-template-columns:1fr; gap:1rem; margin-bottom:3rem;}
@media(min-width:640px){.amenities-showcase{grid-template-columns:repeat(3,1fr);}}
.showcase-img{border-radius:1.1rem; overflow:hidden; aspect-ratio:16/10; border:1px solid rgba(255,255,255,.08);}
.showcase-img img{transition:transform .8s cubic-bezier(.16,1,.3,1);}
.showcase-img:hover img{transform:scale(1.08);}

.amenities-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem;}
@media(min-width:768px){.amenities-grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1024px){.amenities-grid{grid-template-columns:repeat(4,1fr);}}
.amenity{padding:1.5rem; display:flex; flex-direction:column; justify-content:space-between; min-height:160px;}
.amenity .idx{font-size:10px; text-transform:uppercase; letter-spacing:.3em; color:var(--muted);}
.amenity .label{margin-top:.5rem; font-family:'Playfair Display',serif; font-size:1.1rem;}
.col-span-2{grid-column:span 2;}

/* HIGHLIGHTS TIMELINE */
.highlights-section{overflow:hidden;}
.highlights-bg{position:absolute; inset:0; background-size:cover; background-position:center; opacity:.08; z-index:-1;}
.highlights-head{max-width:38rem; margin-bottom:4rem;}
.highlights-head h2{font-size:2rem;}
@media(min-width:768px){.highlights-head h2{font-size:2.2rem;}}
.highlights-head p{color:var(--muted); margin-top:1rem; font-size:.9rem;}

.timeline{position:relative; padding-left:2rem;}
@media(min-width:768px){.timeline{padding-left:0;}}
.timeline-line{position:absolute; left:1rem; top:0; bottom:0; width:1px; background:linear-gradient(to bottom, transparent, rgba(212,175,55,.4) 10%, rgba(212,175,55,.4) 90%, transparent);}
@media(min-width:768px){.timeline-line{left:50%; transform:translateX(-50%);}}
.timeline-item{position:relative; display:flex; align-items:center; margin-bottom:1.5rem;}
@media(min-width:768px){
  .timeline-item{width:50%; margin-bottom:2rem;}
  .timeline-item:nth-child(odd){margin-left:0; padding-right:3rem;}
  .timeline-item:nth-child(even){margin-left:50%; padding-left:3rem;}
}
.timeline-dot{position:absolute; left:-2rem; width:2rem; height:2rem; border-radius:50%; background:var(--bg); border:1px solid var(--gold); display:grid; place-items:center; font-size:.7rem; color:var(--gold-soft); z-index:2;}
@media(min-width:768px){
  .timeline-item:nth-child(odd) .timeline-dot{left:auto; right:-1rem;}
  .timeline-item:nth-child(even) .timeline-dot{left:-1rem;}
}
.timeline-card{padding:1.5rem; display:flex; align-items:center; gap:1.2rem; width:100%;}
.timeline-card p{font-size:.9rem; line-height:1.6; margin:0;}

/* LOCATION */
.location-title{font-size:2rem; max-width:40rem;}
@media(min-width:768px){.location-title{font-size:2.2rem;}}
.location-gallery{display:grid; grid-template-columns:1fr; gap:1rem; margin:2.5rem 0 3rem;}
@media(min-width:768px){.location-gallery{grid-template-columns:1.4fr 1fr;}}
.loc-img{border-radius:1.1rem; overflow:hidden; aspect-ratio:16/10; border:1px solid rgba(255,255,255,.08);}
.loc-img-b{aspect-ratio:4/5;}
@media(min-width:768px){.loc-img-b{aspect-ratio:auto;}}

.location-grid{margin-top:0;}
.grid-2{display:grid; gap:2rem;}
@media(min-width:1024px){.grid-2{grid-template-columns:1fr 1fr; gap:3rem;}}
.location-cards{display:flex; flex-direction:column; gap:1.2rem;}
.loc-card{padding:1.6rem;}
.loc-card-head{display:flex; align-items:center; gap:.7rem;}
.loc-card-head i{width:18px; height:18px; color:var(--gold-soft); flex-shrink:0;}
.loc-card-head h3{font-size:1.2rem; margin:0;}
.loc-card p{color:var(--muted); font-size:.9rem; line-height:1.6; margin:0;}

.distance-panel{padding:2rem; align-self:start;}
.distance-head{display:flex; justify-content:space-between; align-items:baseline;}
.distance-label{font-size:10px; text-transform:uppercase; letter-spacing:.35em; color:var(--muted);}
.distance-from{font-style:italic; font-size:.8rem; color:var(--gold-soft);}
.distances{list-style:none; padding:0; margin:0;}
.distances li{display:flex; justify-content:space-between; padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.05); transition:padding-left .3s ease;}
.distances li:hover{padding-left:.5rem;}

/* ENQUIRE */
.enquire-section{padding-bottom:0; padding-top:6rem;}
.enquire-bg{position:absolute; inset:0; background-size:cover; background-position:center; opacity:.06; z-index:-1;}
.enquire-panel{padding:2.5rem;}
@media(min-width:768px){.enquire-panel{padding:3.5rem;}}
.enquire-panel h2{font-size:2rem;}
@media(min-width:768px){.enquire-panel h2{font-size:2.2rem;}}
.enquire-lead{color:var(--muted); margin-top:1.2rem; max-width:26rem; line-height:1.7; font-size:.95rem;}
.contact-block{margin-top:2.2rem; display:flex; flex-direction:column; gap:1.2rem; font-size:.9rem; color:var(--muted);}
.contact-label{font-size:10px; text-transform:uppercase; letter-spacing:.35em; color:var(--gold-soft);}
.contact-value{color:var(--fg); font-size:1.1rem; display:block; margin-top:.25rem; text-decoration:none; transition:color .3s ease;}
.contact-value:hover{color:var(--gold-soft);}

form label{display:block; margin-bottom:1.1rem;}
form span{font-size:10px; text-transform:uppercase; letter-spacing:.35em; color:black;}
form input, form select{margin-top:.6rem; width:100%; border-radius:.6rem; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.05); color:var(--fg); padding:.85rem 1rem; font-family:inherit; font-size:.9rem; transition:border-color .3s ease, background .3s ease;}
form input:focus, form select:focus{outline:none; border-color:rgba(212,175,55,.5); background:rgba(255,255,255,.07);}
form input::placeholder{color:rgba(247,244,238,.3);}

/* FOOTER */
.footer{margin-top:6rem; padding-bottom:4rem;}
.footer-grid{display:grid; gap:2.5rem; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
.footer-brand{grid-column:span 2;}
@media(max-width:640px){.footer-brand{grid-column:span 1;}}
.footer-title{font-size:1.4rem; letter-spacing:.2em;}
.footer-sub{margin-top:.25rem; font-size:10px; text-transform:uppercase; letter-spacing:.4em; color:var(--muted);}
.footer-brand p{max-width:26rem; margin-top:1.2rem; color:var(--muted); font-size:.9rem; line-height:1.7;}
.footer-label{font-size:10px; text-transform:uppercase; letter-spacing:.35em; color:var(--gold-soft);}
.footer-text{margin-top:.9rem; color:var(--muted); font-size:.9rem; line-height:1.7;}
.footer-list{list-style:none; padding:0; margin-top:.9rem; display:flex; flex-direction:column; gap:.5rem; font-size:.9rem;}
footer a{color:var(--muted); text-decoration:none; transition:color .3s ease;}
footer a:hover{color:var(--fg);}
.footer-bottom{margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.05); display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem;}
.footer-copy{font-size:11px; text-transform:uppercase; letter-spacing:.3em; color:var(--muted);}
.footer-rera{font-size:11px; text-transform:uppercase; letter-spacing:.3em; color:var(--gold-soft);}

.rounded-full-btn{border-radius:999px;}

/* Submit button loading state */
.btn-gold:disabled{ cursor:not-allowed; opacity:.85; }
.btn-gold:disabled:hover{ transform:none; box-shadow:none; }
.btn-spinner{
  display:none;
  width:14px; height:14px;
  border-radius:50%;
  border:2px solid rgba(21,19,18,.35);
  border-top-color:#151312;
  animation:btn-spin .7s linear infinite;
  flex-shrink:0;
}
@keyframes btn-spin{ to{ transform:rotate(360deg); } }
.btn-gold.is-loading .btn-spinner{ display:inline-block; }
.btn-gold.is-loading #submitArrow{ display:none; }

/* GSAP reveal base states */
.reveal-up, .reveal-left, .reveal-right, .reveal-img{will-change:transform, opacity;}

/* =====================
   CONTACT FORM MODAL
   ===================== */
.contact-modal-overlay{
  position:fixed;
  inset:0;
  z-index:300;
  display:none;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  background:rgba(0,0,0,.6);
  -webkit-backdrop-filter:blur(8px) saturate(120%);
  backdrop-filter:blur(8px) saturate(120%);
}
.contact-modal-overlay.active{ display:flex; }
.contact-modal-overlay.closing{ pointer-events:none; }
body.contact-modal-lock{ overflow:hidden; }

.contact-modal{
  position:relative;
  width:95%;
  max-width:650px;
  max-height:88vh;
  overflow-y:auto;
  padding:2.25rem 1.5rem 2rem;
  background-color:rgba(20,20,22,.94);
  will-change:transform, opacity;
}
@media(min-width:640px){
  .contact-modal{ padding:2.75rem 2.75rem 2.5rem; }
}

.contact-modal-close{
  position:absolute;
  top:1rem;
  right:1rem;
  width:2.5rem;
  height:2.5rem;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  color:var(--fg);
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:2;
  transition:transform .35s cubic-bezier(.16,1,.3,1), background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.contact-modal-close:hover{
  background:var(--gradient-gold);
  color:#151312;
  border-color:transparent;
  transform:rotate(90deg) scale(1.08);
  box-shadow:0 10px 25px -8px rgba(212,175,55,.5);
}
.contact-modal-close:focus-visible{ outline:2px solid var(--gold-soft); outline-offset:2px; }
.contact-modal-close i{ width:18px; height:18px; }

.contact-modal-head{ margin-bottom:1.6rem; padding-right:2rem; }
.contact-modal-head h2{ font-size:1.4rem; margin:.4rem 0 0; }
@media(min-width:640px){ .contact-modal-head h2{ font-size:1.7rem; } }
.contact-modal-head p{ color:var(--muted); margin-top:.8rem; font-size:.88rem; line-height:1.65; }

.contact-modal-form-slot form{ margin:0; }
