:root{--ink:#17232e;--gold:#f0cca0;--slate:#334250;--muted:#6f7d8c;--paper:#f6f5f1;--line:rgba(23,35,46,.17);font-family:Montserrat,'Avenir Next','Century Gothic',sans-serif;color:var(--ink);background:var(--ink);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #b78445;outline-offset:5px}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}em{font-weight:300;font-style:normal;color:#92704d}p{line-height:1.8;font-size:16px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:.19em;line-height:1.7}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--gold);padding:16px}.skip:focus{top:12px}.header{position:fixed;top:0;left:0;width:100%;height:92px;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;background:rgba(23,35,46,var(--header-opacity,0));border-bottom:1px solid rgba(240,204,160,var(--border-opacity,0));color:var(--gold)}.brand{width:160px;height:56px;display:block}.brand img{position:fixed;top:0;left:0;width:996px;height:346px;max-width:none;transform-origin:0 0;will-change:transform;pointer-events:auto}.header nav{display:flex;gap:36px;align-items:center;font-size:13px;opacity:var(--nav-opacity,0);visibility:var(--nav-visibility,hidden)}.header nav a:not(.nav-cta){padding:12px 0;position:relative}.header nav a:not(.nav-cta):after{content:'';height:1px;position:absolute;bottom:4px;left:0;width:0;background:var(--gold);transition:width .3s}.header nav a:hover:after{width:100%}.nav-cta{border:1px solid #f0cca060;padding:13px 23px}.menu-toggle{display:none;background:none;border:0;padding:12px}.menu-toggle span{display:block;width:23px;height:1px;background:var(--gold);margin:6px 0}.mobile-menu{position:fixed;z-index:29;top:76px;background:var(--ink);color:var(--gold);width:100%;padding:25px 7vw}.mobile-menu a{display:block;padding:16px 0;border-bottom:1px solid #ffffff15}.intro{height:165svh;position:relative}.hero{height:100svh;min-height:600px;position:sticky;top:0;overflow:hidden;color:var(--gold)}.skyline{position:absolute;inset:-5% 0;background:var(--slate) url('assets/skyline.webp') center 58%/cover no-repeat;will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,22,32,.5),rgba(9,22,32,.12) 40%,rgba(9,22,32,.82))}.hero-top{position:absolute;top:42px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.22em;opacity:var(--intro-opacity,1)}.hero-bottom{position:absolute;left:5vw;right:5vw;bottom:96px;display:flex;justify-content:space-between;align-items:end;opacity:var(--intro-opacity,1);transform:translateY(var(--copy-y,0px))}.hero-bottom .eyebrow{margin-bottom:20px;font-size:10px}h1{font-size:clamp(36px,4vw,66px);line-height:1.12;letter-spacing:-.04em}.scroll-cue{display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:.18em;padding:15px 0}.scroll-line{display:block;width:1px;height:55px;background:linear-gradient(transparent,var(--gold));animation:breathe 2s ease-in-out infinite}.city-labels{position:absolute;bottom:28px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;opacity:var(--intro-opacity,1)}.city-labels i{font-style:normal;color:#ffffff70;font-size:9px;margin-left:14px}.section{padding:110px 6vw;background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:52px}.section-heading>.eyebrow,.section-heading .eyebrow,.about .eyebrow,.enquiry .eyebrow{margin-bottom:25px}h2{font-size:clamp(35px,4vw,62px);letter-spacing:-.045em;line-height:1.18}.section-heading>p{max-width:320px;color:#5b646b;font-size:14px}.property-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:34px;gap:20px}.filters{display:flex;gap:8px}.filters button{border:1px solid transparent;background:transparent;padding:11px 18px;font-size:13px;border-radius:30px}.filters button.active{background:var(--ink);color:var(--gold)}.filters button:hover{border-color:var(--ink)}.result-count{font-size:10px;letter-spacing:.16em}.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.property-card[hidden]{display:none}.property-card{min-width:0;animation:fade-in .5s ease}.property-photo{aspect-ratio:4/4.4;position:relative;overflow:hidden;background:#d2d3d1}.property-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.property-card:hover img{transform:scale(1.045)}.card-tag{position:absolute;left:16px;top:16px;background:var(--paper);padding:9px 12px;font-size:10px;letter-spacing:.12em}.card-open{position:absolute;bottom:18px;right:18px;background:var(--ink);color:var(--gold);border:0;padding:13px 17px;font-size:12px}.property-meta{padding:22px 0 0}.property-meta .eyebrow{font-size:10px;color:#6b737a;margin-bottom:12px}.property-meta h3{font-size:22px;letter-spacing:-.03em}.property-price{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:15px;padding-top:15px;border-top:1px solid var(--line);font-size:14px}.property-price span:last-child{font-size:12px;color:#697079}.demo-note{font-size:11px;color:#68747f;margin-top:24px;line-height:1.7}.project{min-height:720px;position:relative;color:var(--gold);display:flex;align-items:center;overflow:hidden}.project-image{position:absolute;inset:0;background:var(--slate) url('assets/villa.jpg') center/cover}.project-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,25,36,.96),rgba(12,25,36,.66) 45%,rgba(12,25,36,.15))}.project-content{position:relative;margin:90px 8vw;max-width:540px}.project-content .eyebrow{margin-bottom:54px}.project-location{font-size:11px;letter-spacing:.18em;display:block;margin-bottom:18px}.project h2 em,.enquiry h2 em{color:var(--gold)}.project-content>p:not(.eyebrow){max-width:450px;color:#e3ded8;margin:25px 0;font-size:14px}.project-facts{display:flex;gap:45px;margin:32px 0}.project-facts span{font-size:23px}.project-facts small{display:block;font-size:9px;letter-spacing:.18em;margin-top:10px;color:#e3ded8}.button{border:0;display:inline-flex;justify-content:center;align-items:center;padding:18px 25px;font-size:13px;font-weight:500;transition:background .25s,transform .25s}.button:hover{transform:translateY(-2px)}.gold{background:var(--gold);color:var(--ink)}.gold:hover{background:#ffdfb8}.about{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw}.about-copy .lead{font-size:23px;line-height:1.6;letter-spacing:-.02em;margin-bottom:25px}.about-copy>p:not(.lead){color:#5b646b;font-size:14px}.approach-list{margin-top:38px}.approach-list>div{padding:22px 0 22px 48px;position:relative;border-top:1px solid var(--line)}.approach-list span{position:absolute;left:0;top:27px;font-size:11px;color:#92704d}.approach-list h3{font-size:17px;margin-bottom:5px}.approach-list p{font-size:13px;color:#6b737a}.neighbourhoods{padding-top:0}.neighbour-layout{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.neighbour-tabs{padding-right:5vw}.neighbour-tabs button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:28px 0;border:0;border-bottom:1px solid var(--line);font-size:30px;text-align:left;background:transparent;color:#899096;font-weight:300}.neighbour-tabs button:last-child{border:0}.neighbour-tabs button[aria-selected=true]{color:var(--ink)}.neighbour-tabs button span{font-size:12px;color:#92704d}#neighbour-panel{background:#eae9e3;padding:42px}#neighbour-panel h3{font-size:28px;line-height:1.4;margin:20px 0}#neighbour-panel>p:not(.eyebrow){font-size:14px;color:#5b646b}.text-link{font-size:13px;display:inline-block;margin-top:25px;padding-bottom:6px;border-bottom:1px solid currentColor}.enquiry{background:var(--ink);color:var(--gold);display:grid;grid-template-columns:1fr 1fr;gap:8vw}.enquiry>div>p:not(.eyebrow){color:#b8bfc5;font-size:14px;max-width:360px;margin-top:25px}.enquiry-location{margin-top:65px}.enquiry-location span{font-size:10px;letter-spacing:.2em;color:#abb5bd}.enquiry-location p{font-size:18px;margin-top:10px}form label{display:block;color:#d3d7da;font-size:12px;line-height:1.7;margin-bottom:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}input,select,textarea{display:block;width:100%;background:transparent;color:var(--gold);border:0;border-bottom:1px solid #ffffff35;border-radius:0;padding:12px 0;font-size:14px;min-width:0}input::placeholder,textarea::placeholder{color:#8f9ba5;opacity:1}select option{background:var(--ink)}textarea{resize:vertical}.optional{color:#8f9ba5;font-size:10px}.form-disclaimer{font-size:11px;color:#9fabb5;margin-top:15px}#form-status{margin-top:18px;border-left:2px solid var(--gold);padding:12px 18px;font-size:14px;line-height:1.7;background:#ffffff08}footer{padding:50px 6vw 25px;background:#111d27;color:var(--gold)}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:45px}.footer-main img{width:220px}.footer-main p{font-size:13px;color:#a4afb8}.footer-main>a{font-size:12px;border-bottom:1px solid #f0cca060;padding-bottom:6px}.footer-bottom{border-top:1px solid #ffffff15;padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#98a5b0;letter-spacing:.06em}dialog{padding:0;border:0;width:min(840px,92vw);max-height:90svh;background:var(--paper);color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#07121dcc;backdrop-filter:blur(6px)}dialog>img{width:100%;height:300px;object-fit:cover}.dialog-close{position:absolute;right:15px;top:15px;border:0;background:var(--paper);width:44px;height:44px;font-size:28px;z-index:1}.dialog-content{padding:35px}.dialog-content h2{font-size:36px;margin-top:12px}.dialog-content>p:not(.eyebrow){font-size:14px;margin-top:15px}#dialog-specs{display:flex;gap:30px;padding:22px 0;margin:20px 0;border-block:1px solid var(--line);font-size:14px}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.motion-ready .reveal.visible{opacity:1;transform:none}@keyframes breathe{50%{opacity:.3;transform:translateY(8px)}}@keyframes fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(min-width:1800px){.section{padding-left:max(6vw,calc((100vw - 1580px)/2));padding-right:max(6vw,calc((100vw - 1580px)/2))}}@media(max-width:900px){.header nav{gap:20px}.property-grid{gap:18px}.property-meta h3{font-size:19px}.property-price{align-items:start;flex-direction:column;gap:6px}.about,.enquiry{gap:5vw}.section{padding:80px 6vw}.neighbourhoods{padding-top:0}.enquiry h2{font-size:36px}.city-labels i{display:none}.footer-main img{width:180px}}@media(max-width:640px){html{scroll-padding-top:90px}.header{height:76px;padding:0 6vw}.brand{width:125px;height:44px}.header nav{display:none}.menu-toggle{display:block;opacity:var(--nav-opacity,0);visibility:var(--nav-visibility,hidden)}.intro{height:150svh}.hero{min-height:560px}.skyline{background-position:48% center}.hero-top{top:30px;font-size:8px;letter-spacing:.1em;left:6vw;right:6vw}.hero-top span:last-child{text-align:right;max-width:110px;line-height:1.8}.hero-bottom{left:6vw;right:6vw;bottom:95px}.hero-bottom .eyebrow{font-size:8px;max-width:180px;line-height:1.9}h1{font-size:40px}.scroll-cue{writing-mode:vertical-rl;font-size:8px;gap:14px}.scroll-line{height:38px}.city-labels{font-size:8px;left:6vw;right:6vw;bottom:30px}.section{padding:65px 6vw}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:25px;font-size:13px}.section-heading .eyebrow{margin-bottom:20px}h2{font-size:36px}.property-toolbar{gap:10px;align-items:start;flex-direction:column}.filters{gap:3px}.filters button{padding:11px 14px;font-size:12px}.result-count{margin-top:8px}.property-grid{grid-template-columns:1fr;gap:35px}.property-photo{aspect-ratio:1.1}.property-meta h3{font-size:24px}.property-price{flex-direction:row;font-size:15px}.property-price span:last-child{font-size:12px}.project{min-height:680px}.project-content{margin:65px 6vw}.project-content .eyebrow{margin-bottom:65px;font-size:10px}.project-overlay{background:linear-gradient(90deg,#0c1924eb,#0c192477)}.project h2{font-size:43px}.about,.enquiry{grid-template-columns:1fr;gap:40px}.about-copy .lead{font-size:21px}.neighbourhoods{padding-top:0}.neighbour-layout{grid-template-columns:1fr}.neighbour-tabs{padding:0}.neighbour-tabs button{font-size:26px;padding:22px 0}#neighbour-panel{padding:28px;margin-top:15px}#neighbour-panel h3{font-size:25px}.enquiry-location{margin-top:30px}.form-row{grid-template-columns:1fr;gap:0}.enquiry h2{font-size:36px}.footer-main{align-items:start;flex-wrap:wrap;gap:25px}.footer-main img{width:170px}.footer-main p{width:100%;order:3}.footer-bottom{flex-direction:column;font-size:9px}dialog>img{height:210px}.dialog-content{padding:24px}.dialog-content h2{font-size:28px}#dialog-specs{gap:15px;flex-wrap:wrap}.button{min-height:48px}}
.intro{height:auto}.hero{position:relative}.skyline{background-position:85% center}.header nav,.filters button,.card-open,.button,.text-link,form label,.footer-main>a{font-size:14px}.hero-top,.hero-bottom .eyebrow,.scroll-cue,.city-labels,.city-labels i,.result-count,.card-tag,.property-meta .eyebrow,.demo-note,.project-location,.project-facts small,.approach-list span,.enquiry-location span,.optional,.form-disclaimer,.footer-bottom{font-size:12px}.section-heading>p,.project-content>p:not(.eyebrow),.about-copy>p:not(.lead),.approach-list p,#neighbour-panel>p:not(.eyebrow),.enquiry>div>p:not(.eyebrow),.dialog-content>p:not(.eyebrow){font-size:16px}input,select,textarea{font-size:16px}.footer-main p{font-size:14px}
@media(max-width:640px){.skyline{background-image:none}.skyline:before,.skyline:after{content:'';position:absolute;top:0;bottom:0;width:50%;background-image:url('assets/skyline.webp');background-size:auto 100%;background-repeat:no-repeat}.skyline:before{left:0;background-position:13% center}.skyline:after{right:0;background-position:95% center;mask-image:linear-gradient(90deg,transparent,#000 15%)}.hero-top{font-size:10px;letter-spacing:.09em}.hero-top span:last-child{max-width:145px}.hero-bottom .eyebrow{font-size:11px}.city-labels{font-size:11px}.scroll-cue{font-size:10px}.filters button{font-size:14px}.project-content .eyebrow{font-size:12px}.footer-bottom{font-size:11px}}
@media(max-width:640px){.skyline:before{width:70%;background-position:11% center}.skyline:after{width:75%;background-position:94% center;mask-image:linear-gradient(90deg,transparent,#000 55%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.skyline{will-change:auto}.brand img{will-change:auto}}

/* A brief ivory-gold meteor across the upper sky, followed by a quiet pause. */
.shooting-star{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:var(--intro-opacity,1)}
.shooting-star span{position:absolute;left:78%;top:12%;width:clamp(70px,12vw,180px);height:2px;background:linear-gradient(90deg,#fff8ec,var(--gold) 22%,transparent);border-radius:50%;opacity:0;transform-origin:left center;filter:drop-shadow(0 0 4px #f0cca099);animation:shooting-star 5s linear .2s infinite}
.shooting-star span:before{content:'';position:absolute;left:0;top:-1px;width:4px;height:4px;border-radius:50%;background:#fff8ec;box-shadow:0 0 6px 2px #f0cca080}
@keyframes shooting-star{0%{opacity:0;transform:translate3d(0,0,0) rotate(-22deg) scaleX(.35)}5%{opacity:1}28%{opacity:.9}38%,100%{opacity:0;transform:translate3d(-42vw,17vw,0) rotate(-22deg) scaleX(1)}}
@media(max-width:640px){.shooting-star span{top:15%}}
@media(prefers-reduced-motion:reduce){.shooting-star{display:none}}
/* Lights share the panorama's crop and parallax; motion uses transforms/opacity with a slow colour cycle. */
.landmark-lights{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.landmark-map{position:absolute;max-width:none;overflow:hidden}
.tower-light{color:#ff5466;animation:tower-colours 20s ease-in-out infinite}
.tower-sweep{animation:tower-rise 10s linear infinite;transform:translateY(604px);opacity:0}
.tower-crown{opacity:.35;animation:tower-arrival 10s ease-in-out infinite}
.stadium-light{opacity:.8;animation:stadium-breathe 8s ease-in-out infinite}
@keyframes tower-colours{0%,35%,100%{color:#ff164e}50%,85%{color:#147dff}}
@keyframes tower-rise{0%,5%{transform:translateY(604px);opacity:0}7%{opacity:1}32%{transform:translateY(110px);opacity:1}36%,100%{transform:translateY(50px);opacity:0}}
@keyframes tower-arrival{0%,19%,44%,100%{opacity:.8}23%,30%{opacity:1}}
@keyframes stadium-breathe{0%,100%{opacity:.7}50%{opacity:1}}
.lights-paused .tower-light,.lights-paused .tower-sweep,.lights-paused .tower-crown,.lights-paused .stadium-light{animation-play-state:paused}
@media(max-width:640px){.landmark-lights{left:25%;mask-image:linear-gradient(90deg,transparent,#000 55%)}}
@media(prefers-reduced-motion:reduce){.tower-light{color:#147dff}.tower-sweep{display:none}.tower-crown{opacity:.5}.stadium-light{opacity:.8}}
/* Small translucent ripple layers move only over the water, never the skyline. */
.water-shimmer{position:absolute;left:0;right:0;bottom:0;top:67%;overflow:hidden;pointer-events:none;z-index:2}
.water-shimmer span{position:absolute;inset:-8px -12px;background:radial-gradient(ellipse 65px 95% at var(--tower-reflection,92%) 0%,#327aff66,transparent 95%),radial-gradient(ellipse 85px 65% at var(--stadium-reflection,85%) 0%,#4e9bffaa,transparent 95%),radial-gradient(ellipse 24% 110% at 17% 0%,#f0cca080,transparent 95%),radial-gradient(ellipse 16% 90% at 45% 0%,#edbb7455,transparent 95%);mask-image:repeating-linear-gradient(178deg,transparent 0 5px,#0008 6px,#000 7px,transparent 9px 17px);opacity:.46;animation:water-drift 9s ease-in-out infinite alternate}
.water-shimmer span+span{mask-image:repeating-linear-gradient(182deg,transparent 0 11px,#000 12px,transparent 14px 27px);animation:water-drift-back 12s ease-in-out -4s infinite alternate;opacity:.3}
@keyframes water-drift{from{transform:translate3d(-5px,-2px,0) scaleX(.995);opacity:.3}to{transform:translate3d(5px,3px,0) scaleX(1.005);opacity:.62}}
@keyframes water-drift-back{from{transform:translate3d(6px,2px,0);opacity:.4}to{transform:translate3d(-6px,-2px,0);opacity:.18}}
.lights-paused .water-shimmer span{animation-play-state:paused}
@media(max-width:640px){.water-shimmer span{opacity:.4}}
@media(prefers-reduced-motion:reduce){.water-shimmer{display:none}}

.landmark-reflection{animation:reflection-sway 7s ease-in-out infinite alternate;transform-origin:center}
.reflection-blue{animation-delay:-3s}
@keyframes reflection-sway{from{transform:translateX(-3px);opacity:.65}to{transform:translateX(3px);opacity:1}}
.lights-paused .landmark-reflection{animation-play-state:paused}
