/* An architectural window opens into the city; property pages turn in layers. */
:root{--paper:#f1eee6;--ink:#173b4e;--muted:#4b6069;--line:#b8c4c1}
body{background:var(--paper)}
.header{color:var(--blue);border-bottom-color:#173b4e26;height:100px}
.brand img{background:transparent;padding:0;width:48px;height:48px}
.header-contact{border-color:#123b5d66;background:transparent}
.opening{height:100svh;min-height:760px;background:var(--paper)}
.motion-ready .opening{height:190svh;min-height:1300px}
.scene{position:sticky;top:0;height:100svh;min-height:700px;isolation:isolate;overflow:hidden}
.city-type{position:absolute;bottom:-.16em;left:3vw;font:500 19vw/.9 var(--serif);letter-spacing:-.075em;color:#d4dad3;white-space:nowrap;transform:translateX(var(--city-x,0px));opacity:var(--intro-opacity,1);pointer-events:none}
.scene-frame{inset:0;clip-path:inset(var(--window-top,17%) var(--window-right,6%) var(--window-bottom,10%) var(--window-left,53%));will-change:clip-path;z-index:1}
.architecture{transform:scale(var(--architecture-scale,1.08));object-position:64% center}
.shade{background:linear-gradient(0deg,#061f35a6,transparent 70%);opacity:var(--shade-opacity,.3)}
.hero-content{z-index:2;left:var(--gutter);top:22%;width:50%;color:var(--blue);opacity:var(--intro-opacity,1);transform:translateY(var(--intro-y,0px));pointer-events:auto}
.hero-eyebrow{font-size:13px;font-weight:600;letter-spacing:.15em;margin-bottom:23px}
.hero-content h1{max-width:none;font-size:clamp(88px,min(9vw,16vh),170px);line-height:.89;font-weight:400;letter-spacing:-.05em;text-wrap:nowrap}
.hero-content h1>span{display:block;transform:translateX(var(--line-x,0px))}
.hero-content h1>span:nth-child(2){transform:translateX(var(--line-reverse-x,0px));padding-left:.29em}
.hero-content h1 em{color:var(--blue);font-style:italic}
.hero-content .hero-last{font-size:.54em;letter-spacing:-.025em;margin-top:.27em}
.hero-bottom{display:block;margin-top:32px}
.hero-bottom p{font-size:18px;line-height:1.55;max-width:390px}
.hero-bottom .button{font-size:18px;min-height:58px;padding:15px 24px;margin-top:24px}
.portfolio-seal{position:absolute;z-index:3;top:63%;left:47%;width:154px;height:154px;background:#dac49e;color:#173b4e;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.2;transform:translateY(var(--seal-y,0px)) rotate(var(--seal-rotation,-8deg));opacity:var(--intro-opacity,1);box-shadow:0 5px 32px #0a253121}
.portfolio-seal strong{font:500 49px/.95 var(--serif)}
.portfolio-seal span{font-size:15px;margin-top:5px}.portfolio-seal svg{width:20px;height:20px;margin-top:8px}
.scene-story{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff;text-align:center;opacity:var(--story-opacity,0);transform:translateY(var(--story-y,70px));pointer-events:none;text-shadow:0 3px 32px #08243580}
.scene-story>span{font-size:15px;letter-spacing:.16em;margin-bottom:28px}
.scene-story p{font:400 clamp(80px,10vw,176px)/.88 var(--serif);letter-spacing:-.04em}.scene-story em{font-style:italic;color:#e6d7ba}
.scene-caption{z-index:4;left:auto;right:7.5%;bottom:12%;font-size:13px;opacity:1;color:white;gap:24px;transform:translateY(var(--caption-y,0px))}
.scene-caption span:first-child{display:none}.scene-caption span:last-child{background:#15394bcc;padding:4px 10px}
.scroll-cue{z-index:3;left:var(--gutter);right:auto;bottom:24px;font-size:15px;color:var(--blue);opacity:var(--intro-opacity,1);display:flex;gap:18px}.scroll-cue svg{width:25px;height:25px}
.scene-progress{height:3px;position:absolute;z-index:4;bottom:0;left:0;right:0;background:#ffffff38}.scene-progress span{display:block;height:100%;width:100%;background:#d9c196;transform:scaleX(var(--scene-progress,0));transform-origin:left}
.motion-ready .hero-content h1>span{animation:opening-line .85s cubic-bezier(.2,.7,.2,1) both}.motion-ready .hero-content h1>span:nth-child(2){animation-delay:.1s}.motion-ready .hero-content h1>span:nth-child(3){animation-delay:.2s}
@keyframes opening-line{from{opacity:0;translate:0 35px}to{opacity:1;translate:0 0}}
.catalogue{position:relative;z-index:4;background:var(--paper)}
.catalogue-intro{padding-top:85px;padding-bottom:45px;gap:60px}.catalogue-intro h2{font-size:clamp(54px,5.8vw,92px)}.catalogue-intro h2 em{font-style:italic}.catalogue-intro div>p{margin-top:24px}.catalogue-total{border-left:1px solid #97aaa8;padding-left:32px}.catalogue-total strong{font:400 100px/.9 var(--serif);margin-bottom:13px}
.catalogue-filters{padding-block:24px}.catalogue-status{padding-bottom:45px}
#listing-sequence{position:relative;isolation:isolate;background:var(--night)}
.listing-section{padding:28px 0 22px;min-height:100svh;transform-origin:center top;border-top:1px solid #abbcb7;box-shadow:0 -20px 70px #06263820;background:var(--paper)}
.listing-section:nth-child(3n+2){background:#dbe4df}.listing-section:nth-child(3n){background:var(--night-light),var(--night)}
.listing-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #869c984d;padding-bottom:18px;margin-bottom:34px;font-size:13px;letter-spacing:.13em;font-weight:600}
.listing-number{font-size:23px;letter-spacing:-.03em;font-weight:400;line-height:1}.listing-number span{font-size:14px;opacity:.65;margin-left:8px}
.listing-section:nth-child(3n) .listing-heading{color:var(--sand);border-bottom-color:var(--hairline-sand)}
.listing-layout,.listing-section:nth-child(even) .listing-layout{grid-template-columns:1.08fr 1fr;gap:clamp(40px,6vw,95px);align-items:center}
.listing-section:nth-child(even) .listing-layout{grid-template-columns:1fr 1.08fr}
.listing-gallery{position:relative;top:auto;align-self:center}
.listing-main-photo,.listing-featured .listing-main-photo{height:clamp(340px,49svh,570px);clip-path:inset(0 0 0);transition:clip-path .9s var(--ease-page)}
.listing-photo{transition:opacity .15s ease,transform .9s var(--ease-page);will-change:auto}
/* Timed, not scrubbed: a sheet's photograph waits inset until the sheet arrives, then settles once in 900 ms. */
.motion-ready:not(.reduced-motion,.motion-lite) .listing-section:not(.is-arrived) .listing-main-photo{clip-path:inset(12% 0 0)}.motion-ready:not(.reduced-motion,.motion-lite) .listing-section:not(.is-arrived) .listing-photo{transform:scale(1.12)}
.expand-photos{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 15px;background:#f1eee6f5;color:var(--blue);border:1px solid #ffffff80;font-size:16px;box-shadow:0 3px 20px #123b5d25}.expand-photos svg{width:20px;height:20px}.expand-photos:hover{background:white}
.expand-photos:disabled{display:none}
.listing-section:nth-child(3n) .expand-photos{background:#0f1c24e0;color:var(--cream);border-color:#f1eee666;box-shadow:none;transition:border-color .45s var(--ease-page),color .45s var(--ease-page)}.listing-section:nth-child(3n) .expand-photos:is(:hover,:focus-visible){background:#0f1c24e0;border-color:var(--sand);color:var(--sand)}
.photo-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:25px max(24px,5vw);background:var(--gallery);color:var(--cream);border:0;overflow:hidden}.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px}.photo-viewer::backdrop{background:#0d1114f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.viewer-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.viewer-top p{font:400 38px/1 var(--serif)}.viewer-location{font-size:16px;display:block;margin-top:8px;color:var(--cream-meta)}.viewer-top button,.viewer-bottom button{color:var(--cream);border:1px solid #f1eee666;background:transparent;min-height:48px;min-width:48px;padding:10px 20px;font-size:18px;display:flex;align-items:center;justify-content:center;gap:16px;transition:border-color .45s var(--ease-page),color .45s var(--ease-page),background-color .45s var(--ease-page)}.viewer-close span{font-size:28px;line-height:1}.viewer-stage{min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px}.viewer-image{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;outline:1px solid var(--hairline-sand);outline-offset:6px}.viewer-bottom{display:flex;align-items:center;justify-content:center;gap:40px;padding-bottom:env(safe-area-inset-bottom)}.viewer-status{font-size:17px}.viewer-count{display:inline-flex;align-items:baseline;gap:.45em;font:400 30px/1 var(--serif);font-variant-numeric:lining-nums tabular-nums;letter-spacing:.02em;color:var(--cream);white-space:nowrap}.viewer-dash{color:var(--sand)}.viewer-total{color:var(--cream-meta)}.viewer-status-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.viewer-top button:is(:hover,:focus-visible),.viewer-bottom button:is(:hover,:focus-visible){background:#f1eee60f;border-color:var(--sand);color:var(--sand)}.photo-viewer button:focus-visible{outline-color:var(--sand)}.photo-viewer:focus-visible{outline:none}
.listing-photo-controls{padding:12px 0}.listing-photo-controls button{border-radius:0}
.room-photos{gap:14px}.room-photo{height:86px}.room-photo img{transition:transform .45s ease}.room-photo:hover img{transform:scale(1.07)}
.listing-gallery video{max-height:280px}
.listing-copy{padding:0}.listing-copy h3{font-size:clamp(58px,5.8vw,88px);line-height:.92;font-weight:400}.listing-location{margin-top:16px}
.listing-price{font-size:clamp(46px,3.9vw,60px);margin-top:23px}.listing-specs{margin:22px 0;padding:16px 0}.listing-description{font-size:18px;line-height:1.6}.listing-notice{font-size:16px;padding-top:14px}.listing-visit{border-radius:0;margin-top:25px;min-height:58px;font-size:18px}.listing-call{padding:13px 0 7px}.listing-availability{font-size:13px}
.listing-next{display:flex;justify-content:space-between;align-items:center;font-size:14px;letter-spacing:.025em;border-top:1px solid #869c984d;margin-top:30px;padding-top:15px}.listing-next>span:last-child{font-size:24px;line-height:1}
.listing-section:nth-child(3n) .listing-next{color:var(--cream-meta);border-top-color:var(--hairline-sand)}.listing-section:nth-child(3n) .listing-next>span:last-child{color:var(--sand)}
.listing-section:focus-within{transform:none!important;filter:none!important}
.catalogue-close{position:relative;background:var(--paper)}
.about{position:relative;z-index:4}.about-inner{padding-top:90px}.about-copy h2{font-size:clamp(52px,5.7vw,86px)}.portrait:before{border-radius:220px 220px 0 0;inset:0 35px 0}.portrait{background:#34596d;border-radius:260px 260px 0 0}
/* The stack is layout and stays under motion-lite; only the covered sheet's depth is motion, settled on the page easing. */
@media(min-height:480px){.motion-ready:not(.reduced-motion) .listing-section{position:sticky;top:var(--sticky-top,0px);transition:transform .9s var(--ease-page),filter .9s var(--ease-page)}.motion-ready:not(.reduced-motion,.motion-lite) .listing-section.is-covered{transform:scale(.945);filter:brightness(.84)}}
@media(min-height:480px) and (max-width:700px){.motion-ready:not(.reduced-motion,.motion-lite) .listing-section.is-covered{transform:scale(.96)}}
@media(min-width:701px) and (max-width:1049px){.hero-content{width:56%}.hero-content h1{font-size:clamp(84px,10vw,112px)}.hero-eyebrow{font-size:11px;letter-spacing:.08em}.scene-frame{clip-path:inset(var(--window-top,18%) var(--window-right,4%) var(--window-bottom,11%) var(--window-left,58%))}.portfolio-seal{left:55%;top:70%;width:128px;height:128px}.listing-copy h3{font-size:58px}.listing-layout,.listing-section:nth-child(even) .listing-layout{gap:32px}.listing-main-photo,.listing-featured .listing-main-photo{height:450px}}
@media(max-width:700px){
  .header{height:86px}.brand img{width:38px;height:38px}.brand>span{font-size:27px}.brand small{font-size:10px}.header-contact{font-size:14px}
  .opening{height:calc(100svh - 78px);min-height:700px}.motion-ready .opening{height:calc(184svh - 78px);min-height:1160px}.scene{height:calc(100svh - 78px);min-height:700px}
  .city-type{font-size:26vw;bottom:36%;left:9%;opacity:.35}
  .scene-frame{clip-path:inset(var(--window-top,60%) var(--window-right,6%) var(--window-bottom,4%) var(--window-left,6%))}.architecture{position:absolute;top:var(--mobile-image-top,60%);height:var(--mobile-image-height,40%);object-position:64% center}
  .hero-content{top:14%;width:calc(100% - var(--gutter)*2)}.hero-eyebrow{font-size:10px;letter-spacing:.09em;margin-bottom:16px}.hero-content h1{font-size:clamp(58px,16.3vw,100px);line-height:.89}.hero-content h1>span:nth-child(2){padding-left:.5em}.hero-content .hero-last{font-size:.57em;margin-top:.23em}
  .hero-bottom{margin-top:20px}.hero-bottom p{font-size:16px;line-height:1.45;max-width:none}.hero-bottom .button{margin-top:17px;min-height:52px;font-size:16px;padding:13px 20px;gap:24px}
  .portfolio-seal{top:auto;bottom:8%;left:11%;width:96px;height:96px;transform:translateY(var(--seal-y,0px)) rotate(var(--seal-rotation,-8deg))}.portfolio-seal strong{font-size:34px}.portfolio-seal span{font-size:12px;margin-top:1px}.portfolio-seal svg{display:none}
  .scene-caption{bottom:7%;right:9%;font-size:10px}.scene-caption span:last-child{max-width:160px}.scroll-cue{display:none}.scene-story>span{font-size:10px;letter-spacing:.1em;margin-bottom:23px}.scene-story p{font-size:clamp(60px,17vw,116px)}
  .catalogue-intro{padding:50px 0 28px}.catalogue-intro h2{font-size:48px}.catalogue-intro div>p{font-size:18px}.catalogue-total{border-left:0;padding-left:0;margin-top:25px;display:flex;align-items:center;gap:12px}.catalogue-total strong{font-size:48px;margin:0}.catalogue-status{padding-bottom:30px}
  .listing-section{padding:20px 0 28px;min-height:0;box-shadow:0 -12px 32px #06263824;transform-origin:center bottom}.listing-heading{font-size:10px;margin-bottom:28px;padding-bottom:16px;letter-spacing:.09em}.listing-number{font-size:20px}
  .listing-layout,.listing-section:nth-child(even) .listing-layout{gap:0}.listing-copy h3{font-size:58px;line-height:1}.listing-location{font-size:18px;margin-top:10px}.listing-price{font-size:44px;margin-top:19px}.listing-specs{font-size:15px;margin-block:20px}.listing-gallery{margin:3px 0 26px;align-self:auto}.listing-main-photo,.listing-featured .listing-main-photo{height:auto;aspect-ratio:1.08}.listing-description{font-size:18px}.listing-photo-controls button{padding:8px 10px;font-size:15px}.listing-photo-status{font-size:14px}.listing-visit{font-size:17px;margin-top:23px}.room-photo{height:90px}.listing-next{font-size:13px;margin-top:29px;padding-top:17px}.listing-call{padding:17px 0 10px}.listing-availability{font-size:14px}
  .about-inner{padding-top:55px}.about-copy h2{font-size:54px}.portrait{margin-top:12px}
  .photo-viewer{padding:20px 16px;gap:18px}.viewer-top p{font-size:31px}.viewer-location{font-size:14px;max-width:195px}.viewer-top button{font-size:16px;padding:10px 12px;gap:10px}.viewer-bottom{gap:8px;justify-content:space-between}.viewer-bottom button{font-size:15px;padding:10px}.viewer-status{font-size:14px;white-space:nowrap}.viewer-count{font-size:24px}.viewer-stage{padding:9px}.expand-photos{bottom:12px;right:12px;font-size:15px;padding:10px 12px}
}
@media(max-width:360px){.hero-content h1{font-size:54px}.hero-content{top:14%}.hero-eyebrow{font-size:9px}.hero-bottom{margin-top:15px}.hero-bottom p{font-size:15px}.hero-bottom .button{font-size:15px;margin-top:14px}.brand>span{font-size:24px}.brand img{width:32px;height:32px}.brand small{font-size:9px}.listing-photo-controls button{font-size:14px;padding:8px}.listing-copy h3{font-size:52px}.listing-price{font-size:42px}.viewer-count{font-size:21px}.viewer-bottom{gap:6px}.viewer-bottom button{padding:10px 8px}}
@media(min-width:701px) and (max-height:719px){.opening{min-height:650px}.scene{min-height:650px}.hero-content{top:22%}.hero-content h1{font-size:100px}.hero-bottom{margin-top:24px}.hero-bottom p{font-size:17px}.portfolio-seal{width:120px;height:120px;top:67%}}
@media(prefers-reduced-motion:reduce){.motion-ready .opening{height:100svh;min-height:760px}.scene{position:relative}.scene-frame{clip-path:inset(17% 6% 10% 53%)!important}.city-type{transform:none}.scene-story{display:none}.hero-content,.portfolio-seal,.scroll-cue{opacity:1!important;transform:none!important}.architecture,.listing-photo{transform:none!important}.listing-section{position:relative!important;transform:none!important;filter:none!important}.listing-main-photo{clip-path:none!important}.hero-content h1>span{transform:none!important}.scene-progress{display:none}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.motion-ready .opening{height:calc(100svh - 78px);min-height:700px}.scene-frame{clip-path:inset(60% 6% 4% 6%)!important}}
