:root{--sand:#F4EDE1;--ivory:#FBF8F2;--linen:#E9DFCE;--teak:#8A5A3B;--palm:#1E3A2E;--palm-deep:#0F1F18;--volcanic:#262421;--gold:#C4A46A;--gold-2:#E8CF98;--lagoon:#5E8F82;--ink:#2B2723;--muted:#7A6F63;--display:'Cormorant Garamond',Georgia,serif;--body:'Jost',system-ui,sans-serif;--wrap:1240px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--body);font-weight:300;color:var(--ink);background:var(--ivory);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden}
/* surreal backdrop: drifting colour fields + grain */
.aura{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.aura i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.28;animation:drift 26s ease-in-out infinite alternate}
.aura i:nth-child(1){width:60vw;height:60vw;left:-20vw;top:-20vw;background:var(--gold-2)}
.aura i:nth-child(2){width:50vw;height:50vw;right:-15vw;top:30vh;background:var(--lagoon);animation-delay:-8s;animation-duration:32s}
.aura i:nth-child(3){width:45vw;height:45vw;left:20vw;bottom:-25vw;background:#E9B8A0;animation-delay:-16s;animation-duration:38s}
@keyframes drift{to{transform:translate(8vw,6vh) scale(1.15)}}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.06}
h2{font-size:clamp(38px,5vw,66px);font-weight:300}
h2 em,h1 em{font-style:italic;background:linear-gradient(100deg,var(--teak),var(--gold) 60%,var(--lagoon));-webkit-background-clip:text;background-clip:text;color:transparent}
h3{font-size:30px}
.lede{font-size:17px;color:var(--muted);max-width:60ch}
.kicker{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--teak);font-weight:500;display:inline-flex;align-items:center;gap:14px;margin-bottom:18px}
.kicker::before{content:"";width:34px;height:1px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;border:1px solid transparent;transition:transform .3s,background .25s,color .25s,box-shadow .3s;white-space:nowrap;border-radius:2px}
.btn:hover{transform:translateY(-2px)}
.btn-solid{background:var(--palm);color:var(--ivory)}.btn-solid:hover{background:var(--palm-deep);box-shadow:0 14px 30px rgba(30,58,46,.25)}
.btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--ivory)}
.btn-light{border-color:rgba(255,255,255,.6);color:#fff;backdrop-filter:blur(6px)}.btn-light:hover{background:#fff;color:var(--palm)}
.btn-gold{background:linear-gradient(120deg,var(--gold),var(--gold-2));color:var(--volcanic)}.btn-gold:hover{box-shadow:0 14px 30px rgba(196,164,106,.4)}
.link{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;border-bottom:1px solid var(--gold);padding-bottom:4px}
/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.12s}.rv-d2{transition-delay:.24s}.rv-d3{transition-delay:.36s}
/* NAV */
.topbar{background:var(--palm-deep);color:rgba(251,248,242,.72);font-size:12px;letter-spacing:.06em}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:36px}
.topbar span+span{margin-left:22px}
.nav{position:sticky;top:0;z-index:50;background:rgba(251,248,242,.78);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid rgba(233,223,206,.7)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand img{height:52px;width:auto}
.nav-links{display:flex;gap:30px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.nav-links a{color:var(--muted);position:relative;padding:6px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .3s}
.nav-links a:hover::after,.nav-links a.on::after{width:100%}
.nav-links a:hover,.nav-links a.on{color:var(--ink)}
.nav-links a.new{color:var(--teak)}
.nav-cta{display:flex;align-items:center;gap:22px}
.menu-btn{display:none;background:none;border:0;width:40px;height:40px}
.menu-btn span{display:block;height:1.5px;background:var(--ink);margin:7px 0}
.dd{position:relative}.dd>a i{font-style:normal;font-size:9px;margin-left:4px}.dd-menu{position:absolute;top:100%;left:-16px;min-width:240px;background:rgba(251,248,242,.97);backdrop-filter:blur(14px);border:1px solid var(--linen);box-shadow:0 24px 60px rgba(43,39,35,.12);padding:10px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s}.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}.dd-menu a{display:block;padding:10px 18px;text-transform:none;letter-spacing:0;font-size:15px;font-family:var(--display);font-size:19px;color:var(--ink)}.dd-menu a b{display:block;font-family:var(--body);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teak);font-weight:500}.dd-menu a::after{display:none}
/* HERO SLIDER */
.slider{position:relative;height:96vh;min-height:620px;overflow:hidden;color:#fff;background:var(--palm-deep)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;display:flex;align-items:flex-end}
.slide.on{opacity:1}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.slide.on img{animation:kb 12s ease-out forwards}
@keyframes kb{to{transform:scale(1.12) translate(-1.5%,-1%)}}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,31,24,.95) 0%,rgba(15,31,24,.45) 45%,rgba(15,31,24,.05) 100%),radial-gradient(60% 60% at 80% 20%,rgba(196,164,106,.25),transparent 70%)}
.slide .wrap{position:relative;z-index:1;padding-bottom:120px;width:100%}
.slide .kicker{color:var(--gold)}.slide .kicker::before{background:var(--gold)}
.slide h1{font-size:clamp(48px,7.6vw,110px);font-weight:300;max-width:13ch;text-shadow:0 10px 40px rgba(0,0,0,.25)}
.slide h1 em{background:linear-gradient(100deg,#fff,var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.slide p{margin-top:22px;font-size:18px;max-width:54ch;opacity:.92}
.slide .acts{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.slide .kicker,.slide h1,.slide p,.slide .acts{opacity:0;transform:translateY(24px);transition:opacity .9s .5s,transform .9s .5s}
.slide h1{transition-delay:.65s}.slide p{transition-delay:.8s}.slide .acts{transition-delay:.95s}
.slide.on .kicker,.slide.on h1,.slide.on p,.slide.on .acts{opacity:1;transform:none}
.slide.on .kicker{opacity:1}
.dots{position:absolute;left:0;right:0;bottom:44px;z-index:2;display:flex;gap:10px;justify-content:center}
.dots button{width:44px;height:2px;border:0;background:rgba(255,255,255,.35);padding:0}
.dots button[aria-current="true"]{background:var(--gold)}
.scroll-cue{position:absolute;right:40px;bottom:40px;z-index:2;font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.7;writing-mode:vertical-rl}
.scroll-cue::after{content:"";display:block;width:1px;height:48px;background:var(--gold);margin:12px auto 0;animation:cue 2s infinite}
@keyframes cue{50%{transform:scaleY(.4);transform-origin:top}}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.has-video .slide img{display:none}.has-video .slide{background:transparent}.has-video .slide::after{background:linear-gradient(to top,rgba(15,31,24,.92) 0%,rgba(15,31,24,.35) 50%,rgba(15,31,24,.08) 100%)}.has-video .slide{pointer-events:none}.has-video .slide.on{pointer-events:auto}
/* MARQUEE */
.marq{background:var(--palm-deep);color:var(--ivory);overflow:hidden;border-top:1px solid rgba(255,255,255,.08)}
.marq div{display:flex;gap:64px;white-space:nowrap;padding:16px 0;animation:mq 40s linear infinite;width:max-content;font-family:var(--display);font-size:20px;font-style:italic}
.marq span::before{content:"◆";color:var(--gold);font-size:9px;vertical-align:middle;margin-right:64px;font-style:normal}
@keyframes mq{to{transform:translateX(-50%)}}
section{padding:120px 0;position:relative}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:64px}
.sec-head p{font-size:17px;color:var(--muted)}
/* PROJECT CARDS */
.pc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.pc{position:relative;background:rgba(255,255,255,.55);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);box-shadow:0 20px 60px rgba(43,39,35,.06);display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;border-radius:4px;overflow:hidden}
.pc:hover{transform:translateY(-8px);box-shadow:0 40px 80px rgba(43,39,35,.14)}
.pc-img{position:relative;aspect-ratio:4/3;overflow:hidden}
.pc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.pc:hover .pc-img img{transform:scale(1.06)}
.badge{position:absolute;top:16px;left:16px;padding:7px 12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;background:rgba(15,31,24,.8);color:var(--gold);backdrop-filter:blur(6px)}
.badge.new{background:linear-gradient(120deg,var(--gold),var(--gold-2));color:var(--volcanic)}
.pc-body{padding:26px 26px 28px;flex:1;display:flex;flex-direction:column}
.pc h3{font-size:30px}
.pc .tag{font-size:13px;color:var(--teak);margin-top:4px;font-style:italic;font-family:var(--display);font-size:18px}
.pc .loc{font-size:14px;color:var(--muted);margin-top:8px}
.pc dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:20px 0 22px;padding-top:18px;border-top:1px solid var(--linen);font-size:14px}
.pc dt{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pc dd{font-family:var(--display);font-size:24px;line-height:1.1}
.pc .acts{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px}
/* ABOUT HOME */
.about-h{background:var(--palm);color:var(--ivory);overflow:hidden}
.about-h .kicker{color:var(--gold)}.about-h .lede{color:rgba(251,248,242,.72)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.about-grid .media{position:relative}
.about-grid .media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.about-grid .media::before{content:"";position:absolute;inset:-18px -18px auto auto;width:60%;height:60%;border:1px solid var(--gold);opacity:.6;z-index:-1}
.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:40px;border-top:1px solid rgba(255,255,255,.18)}
.counters div{padding:22px 16px 0 0}
.counters b{display:block;font-family:var(--display);font-size:52px;font-weight:300;line-height:1;color:var(--gold-2)}
.counters span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.65;display:block;margin-top:8px}
/* PROMISE */
.promise-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.pr{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:4px;color:#fff;display:flex;align-items:flex-end}
.pr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.pr:hover img{transform:scale(1.08)}
.pr::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,31,24,.92),rgba(15,31,24,.1) 60%,transparent)}
.pr div{position:relative;z-index:1;padding:22px}
.pr h4{font-size:24px;font-weight:400}
.pr p{font-size:13px;opacity:.85;margin-top:6px;max-height:0;overflow:hidden;transition:max-height .5s}
.pr:hover p{max-height:120px}
/* GALLERY STRIP */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:12px}
.gal-grid figure{position:relative;overflow:hidden;cursor:zoom-in;border-radius:3px}
.gal-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.gal-grid figure:hover img{transform:scale(1.05)}
.gal-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.55),transparent)}
.gal-grid .wide{grid-column:span 2}.gal-grid .tall{grid-row:span 2}
.video{position:relative;aspect-ratio:16/9;background:#000;border-radius:4px;overflow:hidden}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* PAGE HERO */
.phero{position:relative;min-height:62vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--palm-deep)}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 18s ease-out forwards}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,31,24,.95),rgba(15,31,24,.3) 55%,rgba(15,31,24,.1))}
.phero .wrap{position:relative;z-index:1;padding:120px 32px 64px;width:100%}
.phero .kicker{color:var(--gold)}.phero .kicker::before{background:var(--gold)}
.phero h1{font-size:clamp(46px,7vw,100px);font-weight:300}
.phero h1 em{background:linear-gradient(100deg,#fff,var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.phero p{margin-top:18px;font-size:18px;max-width:56ch;opacity:.9}
.crumb{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;margin-bottom:16px}
.crumb a:hover{color:var(--gold)}
/* GENERIC 2-col */
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.two img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:36px;border-top:1px solid var(--linen)}
.facts div{padding:18px 16px 18px 0;border-bottom:1px solid var(--linen)}
.facts b{display:block;font-family:var(--display);font-size:32px;font-weight:300;line-height:1.1}
.facts span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rera-line{margin-top:22px;font-size:12px;letter-spacing:.08em;color:var(--muted)}
.rera-line b{font-weight:500;color:var(--ink);letter-spacing:.04em}
.sand{background:linear-gradient(180deg,var(--sand),rgba(244,237,225,.4))}
.dark{background:var(--palm);color:var(--ivory)}
.dark .kicker{color:var(--gold)}.dark .lede{color:rgba(251,248,242,.72)}
.volc{background:var(--volcanic);color:var(--ivory)}
.volc .kicker{color:var(--gold)}
/* rooms explorer */
.room-grid{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start}
.stage{position:relative;overflow:hidden;background:var(--palm-deep);border-radius:4px}
.stage img{width:100%;aspect-ratio:16/10;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .6s}
.stage img.on{opacity:1;position:relative}
.stage-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 28px;background:linear-gradient(to top,rgba(15,31,24,.92),transparent)}
.stage-cap h3{font-size:34px;font-weight:300}
.stage-cap ul{list-style:none;font-size:14px;opacity:.9;margin-top:6px;display:flex;flex-wrap:wrap;gap:4px 18px}
.stage-cap li::before{content:"·";color:var(--gold);margin-right:8px}
.tabs{list-style:none;border-top:1px solid rgba(255,255,255,.2)}
.tabs button{width:100%;text-align:left;background:none;border:0;color:var(--ivory);border-bottom:1px solid rgba(255,255,255,.2);padding:15px 4px;display:flex;justify-content:space-between;align-items:center;transition:padding .25s}
.tabs button .n{font-family:var(--display);font-size:23px}
.tabs button .s{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.55}
.tabs button[aria-selected="true"]{padding-left:18px;border-left:1px solid var(--gold)}
.tabs button[aria-selected="true"] .s{opacity:1;color:var(--gold)}
.tabs-light{border-top-color:var(--linen)}.tabs-light button{color:var(--ink);border-bottom-color:var(--linen)}
/* amenities & specs */
.amen{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.amen div{padding:24px 22px;background:rgba(255,255,255,.55);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.8);border-radius:4px;transition:transform .4s}
.amen div:hover{transform:translateY(-4px)}
.amen b{font-family:var(--display);font-size:22px;font-weight:400;display:block}
.amen span{font-size:13px;color:var(--muted)}
.spec-tabs{display:flex;gap:6px;margin-bottom:40px;border-bottom:1px solid #D8CDB8;overflow-x:auto}
.spec-tabs button{background:none;border:0;padding:14px 22px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--muted);border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap}
.spec-tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--ink)}
.spec-panel{display:none;columns:2;column-gap:64px}
.spec-panel.on{display:block}
.spec-panel li{list-style:none;padding:12px 0;border-bottom:1px solid #D8CDB8;font-size:15px;break-inside:avoid;display:grid;grid-template-columns:20px 1fr;gap:10px}
.spec-panel li::before{content:"";width:12px;height:1px;background:var(--gold);margin-top:14px}
.dl{list-style:none;border-top:1px solid var(--linen)}
.dl li{border-bottom:1px solid var(--linen)}
.dl a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:15px}
.dl a:hover{color:var(--teak)}
.dl a span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.map{aspect-ratio:1;background:var(--linen);border-radius:4px;overflow:hidden}
.map iframe{width:100%;height:100%;border:0}
/* team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px}
.team div{padding:28px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);border-radius:4px}
.team h4{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-family:var(--body);font-weight:500;color:var(--teak);margin-bottom:10px}
.team b{font-family:var(--display);font-size:24px;font-weight:400;display:block}
.team p{font-size:14px;color:var(--muted);margin-top:4px;line-height:1.7}
.clients ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 28px;font-family:var(--display);font-size:24px;margin-top:14px}
/* contact */
.form{background:rgba(255,255,255,.6);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.8);padding:36px;border-radius:4px}
.form h3{font-size:30px;margin-bottom:6px;font-weight:300}
.form>p{font-size:14px;color:var(--muted);margin-bottom:24px}
.field{margin-bottom:18px}
.field label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;margin-bottom:8px;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;padding:13px 0;border:0;border-bottom:1px solid #C9BFAE;font:inherit;background:transparent;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--palm);outline:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form .btn{width:100%;margin-top:10px}
.form-ok{display:none;padding:18px;background:var(--palm);color:var(--ivory)}
.form-ok.show{display:block}
.info{margin-top:28px;font-size:15px;line-height:1.9;color:var(--muted)}
.info b{display:block;font-size:26px;font-family:var(--display);font-weight:400;color:var(--ink);margin-top:18px}
/* CTA band */
.cta{background:linear-gradient(120deg,var(--palm-deep),var(--palm) 60%,#2B5546);color:var(--ivory);text-align:center;padding:100px 0;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,rgba(196,164,106,.35),transparent 60%);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.cta h2{position:relative}
.cta h2 em{background:linear-gradient(100deg,#fff,var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.cta p{position:relative;margin:18px auto 32px;max-width:52ch;opacity:.85}
/* FOOTER */
footer{background:var(--palm-deep);color:var(--ivory);padding:72px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot-grid p{font-size:14px;opacity:.6;max-width:40ch;margin-top:16px}
.foot-grid h4{font-family:var(--body);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--gold);margin-bottom:16px}
.foot-grid ul{list-style:none;font-size:15px}
.foot-grid li{margin-bottom:10px;opacity:.85}
.foot-grid li a:hover{color:var(--gold)}
.disc{margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;opacity:.55;line-height:1.8;max-width:110ch}
.foot-bottom{margin-top:24px;display:flex;justify-content:space-between;font-size:12px;opacity:.5;flex-wrap:wrap;gap:10px}
.wa{position:fixed;right:24px;bottom:24px;z-index:70;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.wa svg{width:28px;height:28px;fill:#fff}
.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:rgba(251,248,242,.9);backdrop-filter:blur(12px);border-top:1px solid var(--linen);padding:10px 16px;gap:10px}
.mobile-bar .btn{flex:1;padding:13px}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(15,31,24,.95);display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:90vh}
.lightbox button{position:absolute;top:18px;right:18px;background:var(--ivory);border:0;border-radius:50%;width:44px;height:44px;font-size:22px}

/* ===== premium layer ===== */
h1,h2{letter-spacing:-.01em}
h2{font-size:clamp(42px,5.6vw,78px)}
.slide h1{font-size:clamp(54px,8.6vw,124px)}
.phero h1{font-size:clamp(52px,8vw,118px)}
.lede{font-size:18px;line-height:1.75}
section{padding:140px 0}
@media (max-width:860px){section{padding:84px 0}}
/* preloader */
.pre{position:fixed;inset:0;z-index:200;background:var(--palm-deep);display:flex;align-items:center;justify-content:center;transition:opacity .7s ease,visibility .7s}
.pre.off{opacity:0;visibility:hidden}
.pre .mark{font-family:var(--display);font-size:34px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);font-weight:300;position:relative;padding-bottom:18px}
.pre .mark::after{content:"";position:absolute;left:50%;bottom:0;height:1px;width:0;background:var(--gold);animation:preline 1.4s cubic-bezier(.2,.7,.2,1) forwards;transform:translateX(-50%)}
@keyframes preline{to{width:100%}}
/* page transition curtain */
.curtain{position:fixed;inset:0;z-index:190;background:var(--palm-deep);transform:translateY(101%);pointer-events:none;transition:transform .6s cubic-bezier(.76,0,.24,1)}
.curtain.on{transform:translateY(0)}
/* cursor */
@media (hover:hover) and (pointer:fine){
body{cursor:none}a,button{cursor:none}
.cur{position:fixed;left:0;top:0;z-index:300;pointer-events:none;width:10px;height:10px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);transition:width .3s,height .3s,background .3s,opacity .3s;mix-blend-mode:difference}
.cur.ring{width:44px;height:44px;background:transparent;border:1px solid var(--gold);mix-blend-mode:normal}
.cur.view{width:84px;height:84px;background:var(--gold);mix-blend-mode:normal;color:var(--volcanic);font-size:10px;letter-spacing:.24em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;font-family:var(--body);font-weight:500}
.cur.view::after{content:"View"}
}
/* magnetic buttons */
.btn{transition:transform .35s cubic-bezier(.2,.7,.2,1),background .25s,color .25s,box-shadow .35s}
/* image scale on scroll reveal */
.gal-grid figure img,.pc-img img,.two>img,.about-grid .media img{will-change:transform}
.rv img{transform:scale(1.06);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.rv.in img{transform:none}
/* word-by-word headline draw */
.rv h2 em,.rv h1 em{display:inline-block}
/* chapter nav on long pages */
.chapters{position:sticky;top:84px;z-index:40;background:rgba(251,248,242,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--linen)}
.chapters .wrap{display:flex;gap:28px;overflow-x:auto;height:52px;align-items:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.chapters a{color:var(--muted);white-space:nowrap}.chapters a:hover{color:var(--ink)}
/* ===== Vistara dark cinematic theme ===== */
body.theme-dark{background:#0E1A15;color:#EDE6D8}
body.theme-dark .aura i{opacity:.16}
body.theme-dark .grain{opacity:.09}
body.theme-dark .nav{background:rgba(14,26,21,.72);border-bottom-color:rgba(196,164,106,.18)}
body.theme-dark .nav-links a{color:rgba(237,230,216,.65)}body.theme-dark .nav-links a:hover,body.theme-dark .nav-links a.on{color:#fff}
body.theme-dark .brand img{background:#fff;padding:6px 8px;border-radius:3px}
body.theme-dark .btn-solid{background:var(--gold);color:var(--volcanic)}
body.theme-dark .btn-ghost{border-color:rgba(237,230,216,.5);color:#EDE6D8}body.theme-dark .btn-ghost:hover{background:#EDE6D8;color:var(--palm-deep)}
body.theme-dark .lede,body.theme-dark .facts span,body.theme-dark .rera-line{color:rgba(237,230,216,.62)}
body.theme-dark .kicker{color:var(--gold)}
body.theme-dark .facts,body.theme-dark .facts div{border-color:rgba(196,164,106,.22)}
body.theme-dark section.sand,body.theme-dark section.dark,body.theme-dark section.volc{background:transparent}
body.theme-dark section+section{border-top:1px solid rgba(196,164,106,.14)}
body.theme-dark .dd-menu{background:rgba(14,26,21,.97);border-color:rgba(196,164,106,.2)}body.theme-dark .dd-menu a{color:#EDE6D8}
body.theme-dark .tabs-light{border-top-color:rgba(196,164,106,.22)}body.theme-dark .tabs-light button{color:#EDE6D8;border-bottom-color:rgba(196,164,106,.22)}
body.theme-dark .chapters{background:rgba(14,26,21,.85);border-bottom-color:rgba(196,164,106,.18)}body.theme-dark .chapters a{color:rgba(237,230,216,.6)}body.theme-dark .chapters a:hover{color:#fff}
body.theme-dark .gal-grid figure{outline:1px solid rgba(196,164,106,.15)}
body.theme-dark .amen div{background:rgba(255,255,255,.04);border-color:rgba(196,164,106,.18);color:#EDE6D8}body.theme-dark .amen span{color:rgba(237,230,216,.6)}
body.theme-dark .curtain,body.theme-dark .pre{background:#0E1A15}
/* masterplan */
.mp{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start}
.mp-stage{position:relative;overflow:hidden;border-radius:4px}
.mp-stage img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.mp-stage svg{position:absolute;inset:0;width:100%;height:100%}
.mp-stage polygon{fill:rgba(196,164,106,0);stroke:rgba(196,164,106,.0);stroke-width:.35;transition:fill .35s,stroke .35s;cursor:pointer}
.mp-stage polygon:hover,.mp-stage polygon.on{fill:rgba(196,164,106,.28);stroke:rgba(232,207,152,.9)}
.mp-stage text{font-family:var(--body);font-size:2.2px;letter-spacing:.3px;fill:#fff;text-transform:uppercase;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.5);stroke-width:.4px}
.mp-panel{position:sticky;top:150px}
.mp-panel img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;outline:1px solid rgba(196,164,106,.25)}
.mp-panel .k{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:22px 0 8px;font-weight:500}
.mp-panel h3{font-size:34px;font-weight:300}
.mp-panel p{margin-top:10px;font-size:15px;opacity:.75;line-height:1.7}
.mp-list{list-style:none;margin-top:22px;display:flex;flex-wrap:wrap;gap:8px}
.mp-list button{background:none;border:1px solid rgba(196,164,106,.35);color:inherit;padding:8px 14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;border-radius:2px}
.mp-list button[aria-pressed="true"]{background:var(--gold);color:var(--volcanic);border-color:var(--gold)}
@media (max-width:860px){.mp{grid-template-columns:1fr}.mp-panel{position:static}}
/* floor-plan viewer */
.pv{position:fixed;inset:0;z-index:150;background:rgba(14,26,21,.96);display:none;flex-direction:column}
.pv.open{display:flex}
.pv-bar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;color:#EDE6D8;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.pv-bar div{display:flex;gap:10px}
.pv-bar button{background:none;border:1px solid rgba(196,164,106,.4);color:#EDE6D8;width:40px;height:40px;border-radius:50%;font-size:18px}
.pv-body{flex:1;overflow:hidden;position:relative;cursor:grab}
.pv-body img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);transform-origin:center;max-width:90%;max-height:90%;user-select:none;transition:transform .2s}

@media (max-width:1024px){.pc-grid{grid-template-columns:1fr 1fr}.promise-grid{grid-template-columns:repeat(3,1fr)}.amen{grid-template-columns:1fr 1fr}.team{grid-template-columns:1fr}.counters{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.topbar{display:none}.two,.about-grid,.room-grid,.sec-head{grid-template-columns:1fr}.pc-grid{grid-template-columns:1fr}.promise-grid{grid-template-columns:1fr 1fr}.spec-panel{columns:1}.gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}.foot-grid{grid-template-columns:1fr 1fr}.nav-links,.nav-cta{display:none}.menu-btn{display:block}.nav.open .nav-links{display:flex;flex-direction:column;position:absolute;top:84px;left:0;right:0;background:var(--ivory);padding:20px 32px 28px;border-bottom:1px solid var(--linen);gap:18px}.nav.open .dd-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:6px 0 0 14px;background:none}section{padding:76px 0}.slider{height:88vh}.slide .wrap{padding-bottom:100px}.scroll-cue{display:none}.mobile-bar{display:flex}.wa{bottom:84px}body{padding-bottom:70px}}
@media (max-width:560px){.form-row,.facts,.amen,.promise-grid{grid-template-columns:1fr}.gal-grid{grid-template-columns:1fr;grid-auto-rows:220px}.gal-grid .wide,.gal-grid .tall{grid-column:auto;grid-row:auto}.foot-grid{grid-template-columns:1fr}}
/* Current project media */
.video-slider .slide{pointer-events:none}.video-slider .slide.on{pointer-events:auto}
.video-slider .hero-video,.video-hero .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner-controls{position:absolute;z-index:3;bottom:38px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:24px}
.banner-controls .dots{position:static;transform:none;display:flex;gap:12px}
.video-toggle{border:1px solid #ffffff70;background:#10251dcc;color:#fff;padding:10px 18px;border-radius:40px;font:500 12px Jost,sans-serif;letter-spacing:.06em;cursor:pointer;white-space:nowrap}
.video-toggle:hover,.video-toggle:focus-visible{background:#fff;color:#18382b;outline:2px solid var(--gold);outline-offset:3px}
.video-hero>.video-toggle{position:absolute;z-index:3;right:32px;bottom:24px}
.project-video{display:block;width:100%;height:auto;max-height:80vh;background:#10251d;object-fit:contain}
.film-frame{overflow:hidden;border-radius:4px;background:#10251d;border:1px solid #c4a46a40}
.card-video{display:block;width:100%;height:100%;object-fit:cover}
.supplied-gallery{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:300px}
.supplied-gallery figure{background:#163a2c}
.supplied-gallery figure:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.project-gallery:nth-of-type(even){background:var(--sand)}
body.theme-dark .project-gallery{background:#132820}
@media(max-width:860px){.supplied-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:240px}.video-slider{height:82svh;min-height:650px}.video-slider .slide h1{font-size:clamp(46px,9vw,74px)}.video-slider .slide .wrap{padding-bottom:110px}.video-slider .slide p{font-size:16px}.video-hero>.video-toggle{right:20px;bottom:18px}.video-hero .wrap{padding-bottom:80px}}
@media(max-width:560px){.supplied-gallery{grid-template-columns:1fr;grid-auto-rows:280px}.banner-controls{bottom:28px}.video-slider .slide .acts{gap:10px}.video-slider .slide .acts .btn{padding:13px 19px}.video-slider .slide .kicker{font-size:10px}}

@media(min-width:861px){.video-slider{height:calc(100svh - 120px);min-height:620px}}

/* Company story and milestones, from the 2026 company brochure. */
.pc-img{display:block}
.company-story{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:80px;align-items:center}
.company-story .lede{margin-top:24px}
.founder{margin:0;text-align:center;justify-self:center;max-width:320px}
.founder img{display:block;width:274px;max-width:100%;height:auto;border-radius:3px;outline:1px solid var(--linen);outline-offset:12px}
.founder figcaption{margin-top:30px;line-height:1.5}
.founder strong{font-size:17px;font-weight:500;display:block}
.founder figcaption span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:7px;opacity:.7}
.company-home .acts{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.company-home .founder img{outline-color:rgba(255,255,255,.2)}
.company-timeline{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;padding:0}
.company-timeline li{border-top:1px solid var(--gold);padding-top:24px}
.company-timeline .year{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.company-timeline h3{font-size:28px;margin:14px 0}
.company-timeline p{line-height:1.8;color:var(--muted);margin-bottom:20px}
.status-pill{font-size:11px;letter-spacing:.13em;text-transform:uppercase;background:var(--palm);color:var(--ivory);padding:6px 12px;display:inline-block}
.company-clients{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.company-clients li{padding:22px 0;border-top:1px solid var(--linen);font-size:17px;line-height:1.6}
@media(max-width:1024px){.company-story{gap:40px}.company-timeline{grid-template-columns:1fr 1fr}}
@media(max-width:860px){.company-story{grid-template-columns:1fr;gap:55px}.company-clients{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.company-timeline,.company-clients{grid-template-columns:1fr}.company-story .founder{max-width:260px}.founder img{width:240px}}

/* Mobile navigation, touch controls and enquiry review. */
.banner-controls .dots button{height:44px;background:transparent;position:relative}
.banner-controls .dots button::after{content:"";position:absolute;left:0;right:0;top:21px;height:2px;background:rgba(255,255,255,.35)}
.banner-controls .dots button[aria-current="true"]::after{background:var(--gold)}
.video-toggle{min-height:44px}
.two>* , .room-grid>* , .sec-head>*{min-width:0}
.info a,footer a{overflow-wrap:anywhere}
.form-ok{margin-top:24px}.form-ok pre{font:inherit;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;padding:18px 0}
@media(max-width:860px){
  .nav.open .nav-links{max-height:calc(100vh - 154px);max-height:calc(100dvh - 154px);overflow-y:auto;overscroll-behavior:contain;gap:8px;padding-bottom:24px}
  .nav.open .nav-links>a,.nav.open .dd>a{min-height:44px;display:flex;align-items:center}
  .nav.open .dd-menu{min-width:0}
  .nav.open .dd-menu a{min-height:44px}
  body.theme-dark .nav.open .nav-links{background:#0E1A15;border-color:rgba(196,164,106,.25)}
  body.theme-dark .menu-btn span{background:#EDE6D8}
  .menu-btn{width:44px;height:44px}
  .pc .acts{flex-wrap:wrap}
  .btn{max-width:100%;white-space:normal;text-align:center}
  .chapters a{min-height:44px;display:flex;align-items:center}
  .field input,.field select,.field textarea{font-size:16px}
}
@media(max-width:560px){
  .form{padding:24px 18px}.form-row{gap:0}
  .banner-controls{gap:16px}.banner-controls .dots{gap:8px}
  .stage-cap{padding:16px}.stage-cap h3{font-size:26px}.stage-cap ul{font-size:12px;gap:2px 10px}
  .map{min-height:280px}
}
.pre.off{pointer-events:none}
p,.disc,.rera-line{overflow-wrap:anywhere}
.map{width:100%;max-width:100%;min-width:0}

.pv-body{touch-action:none}.pv-bar button{width:44px;height:44px}
body.theme-dark .mobile-bar .btn-ghost{color:var(--palm-deep);border-color:var(--palm-deep)}
body.theme-dark .mobile-bar .btn-ghost:hover{color:var(--ivory);background:var(--palm-deep)}
