:root{--type-label:clamp(14px,1.05vw,16px);--type-body:clamp(16px,1.25vw,20px);--type-title:clamp(30px,3.3vw,52px);--text-primary:#f2f0ec;--text-secondary:#bdb8b1;--scene-ink:#0a0c0d}*{box-sizing:border-box}html{color-scheme:dark;background:#0a0c0d}body{margin:0;color:var(--text-primary);font:400 var(--type-body)/1.5 var(--body);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}button:focus-visible{outline:1px solid #e3ddd4;outline-offset:7px}button{-webkit-tap-highlight-color:transparent}::selection{background:#bdb5ab;color:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.orbit-scene{position:relative;min-height:100svh;isolation:isolate;background:#0a0c0d}
.scene-header,.scene-footer{position:absolute;z-index:30;left:clamp(24px,3.3vw,64px);right:clamp(24px,3.3vw,64px);display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:none}.scene-header{top:30px}.scene-header p{font-size:var(--type-label);letter-spacing:0;color:var(--text-secondary);margin:0}.scene-signature{display:block;width:clamp(104px,8.5vw,130px);flex:none}
.scene-footer{bottom:24px;font-size:var(--type-label);color:var(--text-secondary)}.scene-footer p{margin:0}.scene-footer p>span{margin-left:14px}.scene-footer p>span:first-child{margin:0 12px}.explore-hint{position:absolute;left:50%;translate:-50% 0;white-space:nowrap}.scene-footer .explore-hint>span:first-child{margin:0}.touch-hint{display:none}.motion-toggle{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 0;border:0;background:none;cursor:pointer;pointer-events:auto;font-size:var(--type-label);font-weight:500;color:var(--text-primary)}.pause-icon{display:block;width:8px;height:9px;border-left:2px solid currentColor;border-right:2px solid currentColor}.motion-toggle[aria-pressed=true] .pause-icon{border:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid currentColor}
.orbit-field{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:30px;padding:130px 6vw 150px}.orbit-card{position:relative;display:block;border:0;padding:0;background:transparent;cursor:pointer;width:100%;aspect-ratio:1;touch-action:manipulation}.orbit-card.landscape{aspect-ratio:3/2}.card-surface{position:absolute;inset:0;display:block;border-radius:7px;overflow:hidden;background:#252422;box-shadow:0 2px 5px #00000040,0 10px 24px #00000052}.card-surface:after{content:'';position:absolute;inset:0;border:1px solid #ffffff18;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(218,183,146,.14) 0%,transparent 48%,rgba(58,78,100,.22) 100%);opacity:1;transition:opacity .9s var(--ease-arrive)}.card-surface img{display:block;width:100%;height:100%;object-fit:cover;filter:none;opacity:1}.orbit-card[data-active] .card-surface:after{opacity:.25}.tile-fallback{position:absolute;inset:0;padding:20px;display:grid;place-content:center;font:500 20px/1.1 var(--display);background:linear-gradient(135deg,#393633,#171819);z-index:-1}.orbit-card[data-image-failed] img{visibility:hidden}.orbit-card[data-image-failed] .tile-fallback{z-index:auto}
.scene-centre{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:20;perspective:900px}.centre-logo{width:calc(250px * var(--composition-scale,1));transform-style:preserve-3d;will-change:transform,opacity,filter}.centre-logo h1{margin:0}.logo-crop{display:block;position:relative;aspect-ratio:2497/453;overflow:hidden;width:100%}.logo-crop img{display:block;width:100%;height:auto}.centre-logo p{text-align:center;color:var(--text-secondary);font-size:var(--type-body);line-height:1.45;letter-spacing:0;margin:24px -32px 0}.centre-properties{position:absolute;inset:0;display:grid;place-items:center}.centre-property{position:absolute;width:calc(330px * var(--composition-scale,1));text-align:center;opacity:0;transform:translateY(18px) scale(.97);filter:blur(7px);transition:opacity .25s var(--ease-arrive),transform .5s var(--ease-arrive),filter .35s var(--ease-arrive)}.centre-property[data-active]{opacity:1;transform:translateY(0) scale(1);filter:blur(0);transition-duration:.7s,.9s,.8s}.property-index{display:block;color:var(--text-secondary);font-size:var(--type-label);font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums;margin-bottom:16px}.centre-property h2{font:500 clamp(30px,calc(42px * var(--composition-scale,1)),74px)/1.06 var(--display);letter-spacing:-.025em;margin:0;text-wrap:balance}.property-city{color:var(--text-primary);font-size:var(--type-body);line-height:1.4;margin:18px 0 0;text-wrap:balance}.property-facts{color:var(--text-secondary);font-size:var(--type-label);line-height:1.45;margin:8px 0 0}.property-facts span{padding:0 6px}
.motion-toggle[hidden]{display:none}
html[data-orbit] .orbit-scene{height:100svh;min-height:420px;overflow:clip}html[data-orbit] .orbit-field{position:absolute;inset:0;display:block;padding:0;perspective:1200px}html[data-orbit] .orbit-card{position:absolute;left:50%;top:50%;width:var(--tile-w,130px);height:var(--tile-h,145px);aspect-ratio:auto;transform:translate(-50%,-50%) translate(var(--scatter-x),var(--scatter-y)) rotate(var(--scatter-angle));filter:blur(9px);opacity:0;will-change:opacity}html[data-orbit=loading] .centre-logo{opacity:0;filter:blur(9px)}html[data-orbit=loading] .scene-header,html[data-orbit=loading] .scene-footer{opacity:0}html[data-orbit] .scene-header{opacity:var(--intro-header,0);transform:translateY(calc((1 - var(--intro-header,0)) * -8px))}html[data-orbit] .scene-footer{opacity:var(--intro-footer,0);transform:translateY(calc((1 - var(--intro-footer,0)) * 8px))}
.orbit-cursor{position:fixed;left:0;top:0;z-index:50;pointer-events:none;width:var(--cursor-width,6px);height:var(--cursor-height,6px);border:1px solid #efedee55;border-radius:40px;background:color-mix(in srgb,var(--scene-ink) calc(var(--cursor-active,0)*100%),var(--text-primary));box-shadow:0 4px 32px #00000030;overflow:hidden;opacity:0;will-change:transform,width,height;display:none;align-items:center;justify-content:center}.cursor-label{white-space:nowrap;font-size:var(--type-label);font-weight:500;line-height:1;letter-spacing:0;opacity:var(--cursor-active,0);translate:0 calc((1 - var(--cursor-active,0))*12px);display:flex;align-items:center;gap:16px;color:#fff}.cursor-label>span{font-size:18px}html[data-pointer=mouse] .orbit-cursor{display:flex}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){html[data-pointer=mouse][data-orbit] .orbit-scene,html[data-pointer=mouse][data-orbit] .orbit-scene *{cursor:none}}
html:not([data-orbit]) .scene-centre{display:none}html:not([data-orbit]) .motion-toggle{display:none}
@media(max-width:900px){.scene-footer{display:grid;grid-template-columns:1fr auto;row-gap:8px}.explore-hint{position:static;translate:none;grid-column:1/-1;grid-row:1;text-align:center}.scene-footer>p:first-child{grid-column:1;grid-row:2}.motion-toggle{grid-column:2;grid-row:2}}
@media(max-width:700px){.scene-header{top:24px;align-items:flex-start;gap:16px}.scene-header p{max-width:155px;text-align:right;line-height:1.4}.scene-signature{width:104px}.scene-footer{bottom:16px;gap:8px 12px}.scene-footer>p:first-child{max-width:138px;text-wrap:balance}.scene-footer p>span:first-child{margin:0 4px}.centre-logo{width:clamp(150px,38vw,205px)}.centre-logo p{margin:18px -22px 0;text-wrap:balance}.centre-property{width:clamp(190px,53vw,270px)}.centre-property h2{font-size:clamp(30px,6vw,36px)}.property-index{margin-bottom:12px}.property-city{margin-top:12px}.card-surface{border-radius:5px}.orbit-field{grid-template-columns:1fr 1fr;padding:110px 24px 160px;gap:42px 20px}}
@media(hover:none){.pointer-hint{display:none}.touch-hint{display:inline}.orbit-cursor{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.orbit-cursor,.motion-toggle{display:none!important}html[data-pointer=mouse] .orbit-card{cursor:pointer}}
.card-surface:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,transparent 5%,rgba(10,12,13,.12) 45%,rgba(10,12,13,.56) 100%);opacity:var(--depth-shadow,0)}
.image-filters{position:absolute;pointer-events:none;overflow:hidden}.shutter-trail{position:absolute;inset:0;pointer-events:none;opacity:0;overflow:hidden;border-radius:inherit}.shutter-trail img{filter:url(#vertical-shutter);transform:scaleY(1.12);transform-origin:center}html[data-orbit] .shutter-trail{opacity:var(--shutter-trail,0)}@media(prefers-reduced-motion:reduce){.shutter-trail{display:none}}

/* Keep architectural detail clear; only bright vertical trails escape the crop. */
.shutter-trail{mask-image:linear-gradient(180deg,#000 0%,#0008 20%,#0001 38%,transparent 46%,transparent 54%,#0001 62%,#0008 80%,#000 100%)}
/* Feather both axes over a padded layer so enlarged streaks never expose a rectangle. */
.shutter-spill{position:absolute;inset:-65% -8%;z-index:2;pointer-events:none;opacity:0;mask-image:linear-gradient(90deg,transparent 0%,#0003 8%,#000b 14%,#000 22%,#000 78%,#000b 86%,#0003 92%,transparent 100%),linear-gradient(180deg,transparent 0%,#0000 5%,#0001 11%,#0004 18%,#000a 25%,#000 30%,#0008 35%,transparent 44%,transparent 56%,#0008 65%,#000 70%,#000a 75%,#0004 82%,#0001 89%,#0000 95%,transparent 100%);mask-composite:intersect}
.shutter-spill img{position:absolute;left:6.8966%;top:28.2609%;width:86.2069%;height:43.4783%;display:block;object-fit:cover;filter:url(#shutter-highlights)}
html[data-orbit] .shutter-spill{opacity:calc(var(--shutter-trail,0) * 1.6)}
@media(prefers-reduced-motion:reduce){.shutter-spill{display:none}}

/* The orbit and index share a single set of photographs. */
.card-surface>img{position:absolute;top:calc(-1 * var(--photo-overscan,0px));height:calc(100% + var(--photo-overscan,0px) * 2);transform:translate3d(0,var(--photo-pan,0px),0)}
:root{--ink:var(--text-primary);--paper:var(--scene-ink);--muted:var(--text-secondary);--rule:#ffffff24;--radius-media:7px}
a{color:inherit;text-decoration:none}a:focus-visible{outline:1px solid var(--text-primary);outline-offset:7px}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
html[data-orbit] .orbit-scene{height:auto;min-height:100svh;overflow:visible}
html[data-orbit] .orbit-field{position:fixed;inset:0;z-index:5;pointer-events:none}
html[data-orbit] .orbit-card{pointer-events:auto}
html[data-orbit] .orbit-scene[data-layout=transition] .orbit-card,html[data-orbit] .orbit-scene[data-layout=grid] .orbit-card{pointer-events:none}
html[data-orbit] .scene-header{position:fixed}
html[data-orbit] .scene-centre{position:fixed;opacity:var(--orbit-presence,1)}
html[data-orbit] .scene-footer{position:fixed;opacity:calc(var(--intro-footer,0) * var(--orbit-presence,1))}
.scene-header:before{content:'';position:absolute;inset:-30px calc(clamp(24px,3.3vw,64px) * -1) -24px;z-index:-1;background:linear-gradient(var(--scene-ink) 25%,#0a0c0de8 70%,transparent);opacity:calc(1 - var(--orbit-presence,1));pointer-events:none}
.explore-hint{pointer-events:auto;font-size:var(--type-label);display:flex;gap:14px;align-items:center}
.orbit-cursor{background:var(--text-primary);border-color:var(--text-primary)}.cursor-label{color:var(--scene-ink)}
.portfolio-index{padding:110px clamp(24px,7vw,140px) 40px;max-width:1800px;margin:0 auto}
html[data-orbit] .portfolio-index{padding-top:calc(var(--index-start,94.5svh) + 130px)}
.index-heading{display:flex;justify-content:space-between;gap:48px;align-items:end;margin-bottom:80px}
.index-eyebrow{font-size:var(--type-label);color:var(--text-secondary);margin:0 0 24px}
.index-heading h2{font:500 clamp(40px,4.8vw,82px)/1.04 var(--display);letter-spacing:-.035em;margin:0}
.index-total{font-size:var(--type-body);margin:0 0 4px}.index-total span{display:block;color:var(--text-secondary);font-size:var(--type-label);margin-top:8px}
.property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:100px clamp(28px,5vw,100px)}
.grid-link{display:block}.grid-image{aspect-ratio:3/2;position:relative;border-radius:7px;overflow:hidden;background:#242526}
.grid-image img{display:block;width:100%;height:100%;object-fit:cover}
html[data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image{background:transparent}html[data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image img{visibility:hidden}
.grid-copy{padding-top:25px}.grid-location{font-size:var(--type-label);color:var(--text-secondary);margin:0 0 10px}
.grid-title{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.grid-title h3{font:500 clamp(30px,3vw,50px)/1.08 var(--display);letter-spacing:-.025em;margin:0}.grid-title>span{font-size:24px;transition:transform .6s var(--ease-arrive)}.grid-link:hover .grid-title>span{transform:translate(3px,-3px)}
.grid-facts{display:flex;justify-content:space-between;gap:16px;margin-top:24px;border-top:1px solid var(--rule);padding-top:16px;font-size:var(--type-label);color:var(--text-secondary)}
html[data-orbit] .index-heading{opacity:0;will-change:transform,opacity}html[data-orbit] .grid-copy{opacity:var(--grid-reveal,0);transform:translateY(calc(var(--index-offset,0px) + (1 - var(--grid-reveal,0)) * 24px))}
.index-end{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--rule);padding-top:28px;margin-top:110px;font-size:var(--type-label);color:var(--text-secondary)}
.centre-property .property-facts{display:block;margin:8px 0 0}
.property-route{color-scheme:dark}.property-route .page-brand img{filter:none}
.property-route :where(h1,h2,p,figure,dd){margin:0}.property-route h2{font-family:var(--display);font-weight:500}.property-route .property-overview h2{margin-top:24px}
.property-route .property-page-nav,.property-route .eyebrow,.property-route .text-link,.property-route .property-facts dt,.property-route .gallery-heading>span,.property-route .gallery-grid figcaption,.property-route .property-page-footer{font-size:var(--type-label)}
.property-route .property-facts dd{margin-top:8px}.property-route .property-facts{margin-top:40px}.property-route .text-link{display:flex;gap:32px;align-items:center}.property-route .property-page-heading .eyebrow{color:var(--muted)}
.property-route .gallery-heading h2{margin:0}.property-route .property-page-footer p+p{margin-top:12px}
@media(max-width:700px){.index-heading{display:block;margin-bottom:48px}.index-total{margin-top:28px}.index-total span{margin-top:4px}.property-grid{grid-template-columns:1fr;gap:64px}.grid-title h3{font-size:34px}.grid-copy{padding-top:20px}.index-end{flex-direction:column;margin-top:70px}.portfolio-index{padding-left:24px;padding-right:24px}html[data-orbit] .portfolio-index{padding-top:calc(var(--index-start,94.5svh) + 110px)}}

html[data-orbit] [data-reveal]:not(.property-page){opacity:0;filter:blur(6px);transform:translateY(var(--reveal-travel,42px));transition:opacity 1.05s var(--ease-arrive),filter 1.2s var(--ease-arrive),transform 1.3s var(--ease-arrive);transition-delay:var(--reveal-delay,0ms)}
html[data-orbit] [data-reveal]:not(.property-page)[data-revealed],html[data-orbit] [data-reveal]:not(.property-page):focus-within{opacity:1;filter:none;transform:none}
.company-footer{padding-top:120px;margin-top:140px;border-top:1px solid var(--rule)}
.company-footer .index-eyebrow{margin:0 0 24px}
.company-footer-top{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(48px,8vw,140px);padding-bottom:100px}
.company-summary h2{font:500 clamp(40px,4.6vw,76px)/1.05 var(--display);letter-spacing:-.035em;margin:0 0 30px}
.company-description{max-width:40ch;font-size:var(--type-body);line-height:1.65;color:var(--text-secondary);margin:0}
.company-contact{display:grid;grid-template-columns:1.6fr 1fr;gap:32px;padding-top:6px;font-size:var(--type-label)}
.company-contact h3{font:500 var(--type-label)/1.5 var(--body);margin:0 0 22px;color:var(--text-secondary)}
.company-contact address{font-style:normal;line-height:1.85}.company-contact nav{display:grid;gap:12px;justify-items:start}
.company-baseline{border-top:1px solid var(--rule);padding-top:26px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:var(--type-label);color:var(--text-secondary)}
.company-baseline nav{display:flex;gap:28px}.company-credit{font-size:var(--type-label);color:var(--text-secondary);margin:32px 0 0;text-align:right}
.company-credit{--reveal-travel:16px}.company-credit a{border-bottom:1px solid var(--rule);padding-bottom:3px}.company-footer a:hover{color:var(--text-primary)}
@media(max-width:1000px){.company-footer-top{grid-template-columns:1fr;gap:56px}.company-contact{max-width:620px}.company-baseline{flex-wrap:wrap}.company-baseline>span{width:100%}}
@media(max-width:700px){.company-footer{padding-top:64px;margin-top:80px}.company-footer-top{padding-bottom:64px}.company-summary h2{font-size:42px}.company-contact{grid-template-columns:1fr;gap:32px}.company-contact nav{grid-template-columns:repeat(3,auto);gap:20px;justify-content:start}.company-baseline{align-items:start;gap:24px}.company-baseline nav{flex-wrap:wrap;gap:20px}.company-credit{text-align:left}}
@media(prefers-reduced-motion:reduce){html[data-orbit] [data-reveal]:not(.property-page){opacity:1;filter:none;transform:none;transition:none}}
.property-sequence{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-bottom:70px;margin-bottom:80px;border-bottom:1px solid var(--rule)}
.property-sequence a{display:flex;flex-direction:column;align-items:start;gap:14px;min-height:80px}.property-sequence a:last-child{align-items:end;text-align:right}.property-sequence span{font-size:var(--type-label);color:var(--text-secondary)}.property-sequence strong{font:500 clamp(28px,3vw,48px)/1.08 var(--display);letter-spacing:-.025em}.property-route .company-footer{padding-top:70px;padding-bottom:40px}
@media(max-width:700px){.property-sequence{gap:28px;padding-bottom:44px;margin-bottom:54px}.property-sequence strong{font-size:28px}.property-route .company-footer{padding-top:44px}}

/* The photograph carries between views; navigation and the title arrive separately. */
/* Snapshot crisp header pixels instead of retaining a blurred backdrop layer. */
html[data-orbit][data-route-motion] :is(.property-page-nav,.scene-header){backdrop-filter:none;background:var(--scene-ink)}
html[data-orbit]::view-transition-group(property-photo){animation-duration:.9s;animation-timing-function:cubic-bezier(.22,1,.36,1);overflow:hidden;border-radius:7px}
html[data-orbit]::view-transition-old(property-photo){animation:none;opacity:0}
html[data-orbit]::view-transition-new(property-photo){animation:none;opacity:1;mix-blend-mode:normal;width:100%;height:100%;object-fit:cover}
html[data-orbit]::view-transition-old(root){animation:v2-page-out .3s ease both}
html[data-orbit]::view-transition-new(root){animation:v2-page-in .65s cubic-bezier(.22,1,.36,1) both}
html[data-orbit]::view-transition-group(property-heading),html[data-orbit]::view-transition-group(property-nav){animation:none}
html[data-orbit]::view-transition-new(property-heading){animation:v2-heading-in .6s .3s cubic-bezier(.22,1,.36,1) both}
html[data-orbit]::view-transition-new(property-nav){animation:none;opacity:1;mix-blend-mode:normal}
html[data-orbit]::view-transition-old(property-nav){animation:none;opacity:0}
html[data-orbit]::view-transition-old(property-heading){animation:v2-page-out .25s ease both}
/* The header surface stays opaque and above every moving image. Only its label fades. */
html[data-orbit]::view-transition-group(root){z-index:0}
html[data-orbit]::view-transition-group(property-photo){z-index:1}
html[data-orbit]::view-transition-group(property-heading){z-index:2}
html[data-orbit]::view-transition-group(property-nav){z-index:20;background:var(--scene-ink)}
html[data-orbit]::view-transition-group(property-brand){animation:none;z-index:21}
html[data-orbit]::view-transition-group(property-action){animation:none;z-index:22}
html[data-orbit]::view-transition-old(property-action){animation:v2-page-out .2s ease both}
html[data-orbit]::view-transition-new(property-action){animation:v2-page-in .4s .1s cubic-bezier(.22,1,.36,1) both}
html[data-orbit]::view-transition-old(property-brand){animation:none;opacity:0}
html[data-orbit]::view-transition-new(property-brand){animation:none;mix-blend-mode:normal}
@keyframes v2-page-in{from{opacity:0}to{opacity:1}}
@keyframes v2-page-out{to{opacity:0}}
@keyframes v2-heading-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html[data-orbit]::view-transition-old(*),html[data-orbit]::view-transition-new(*){animation:none!important}}

@media(max-width:700px){
 .scene-footer>p:first-child{grid-column:1/-1;grid-row:2;max-width:none;white-space:nowrap;text-wrap:nowrap}
 .scene-footer .explore-hint{grid-column:1;grid-row:1}
 .scene-footer .motion-toggle{grid-column:2;grid-row:1;min-width:44px;justify-content:center}
 .scene-footer .motion-label{display:none}
 html[data-pointer=mouse] .orbit-cursor{display:none}
 html[data-pointer=mouse][data-orbit] .orbit-scene,html[data-pointer=mouse][data-orbit] .orbit-scene *{cursor:auto}
 html[data-pointer=mouse][data-orbit] .orbit-scene a,html[data-pointer=mouse][data-orbit] .motion-toggle{cursor:pointer}
}

/* Shared geometry keeps the brand anchored while the right-hand label changes. */
html[data-orbit] .scene-header,.property-route .property-page-nav{
 position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;
 min-height:88px;padding:20px clamp(24px,3.3vw,64px);gap:16px;
 background:color-mix(in srgb,var(--scene-ink) 94%,transparent);backdrop-filter:blur(12px);
}
.scene-header:before{display:none}
.scene-header .scene-signature,.property-route .page-brand{width:100px;flex:none;order:0}
.scene-header p,.property-route .property-page-nav .property-return{margin:0 0 0 auto;max-width:none;white-space:nowrap;text-align:right;font-size:var(--type-label);line-height:1.4;color:var(--text-secondary);order:1}
.property-route .property-page-nav>span{display:none}
.property-route .property-page{padding-top:88px}
@media(max-width:600px){
 .scene-header .scene-signature,.property-route .page-brand{width:86px}
}
@media(min-width:701px){
 html[data-orbit] .grid-copy [data-reveal]{--reveal-travel:56px;transition-duration:1.2s,1.3s,1.5s}
 html[data-orbit] .grid-copy .grid-title{transition-delay:180ms}
 html[data-orbit] .grid-copy .grid-facts{transition-delay:340ms}
}
@media(max-width:700px){
 .centre-logo h1{filter:drop-shadow(0 3px 5px #000a) drop-shadow(0 8px 18px #0008)}
 .centre-logo p{text-shadow:0 2px 8px #000c}
 .card-surface:before{background:linear-gradient(180deg,transparent 5%,rgba(10,12,13,.2) 40%,rgba(10,12,13,.74) 100%)}
}

/* One palette drives the orbit, property pages and navigation snapshots. */
html,.orbit-scene{background:var(--scene-ink)}
html[data-theme=day]{--scene-ink:#f1eee8;--text-primary:#202521;--text-secondary:#595c56;--rule:#20252129;color-scheme:light}
html[data-theme=night]{color-scheme:dark}
.property-route{color-scheme:inherit}
html[data-theme=day] .orbit-scene .logo-crop img{filter:brightness(0)}
html[data-theme=day] .property-route .page-brand img{filter:brightness(0)}
html[data-theme=day] .centre-logo h1{filter:drop-shadow(0 2px 5px #f1eee8aa)}
html[data-theme=day] .centre-logo p{text-shadow:0 1px 8px #f1eee8}
html[data-theme=day] .card-surface{background:var(--scene-ink);box-shadow:0 8px 24px #20252114}
html[data-theme=day] .card-surface:after{border-color:transparent}
html[data-theme=day] .shutter-spill{mix-blend-mode:normal}
html[data-theme=day] .photo-lightbox{background:var(--scene-ink);color:var(--text-primary)}
html[data-theme=day] .photo-lightbox::backdrop{background:var(--scene-ink)}
html[data-theme=day] .photo-lightbox button{border-color:var(--rule)}
html[data-property-boot] .orbit-scene{visibility:hidden}
.theme-toggle{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid var(--rule);border-radius:50%;background:transparent;color:var(--text-primary);padding:9px;cursor:pointer;pointer-events:auto;margin:0;order:2;transition:background .35s ease,border-color .35s ease}
.theme-toggle:hover{background:color-mix(in srgb,var(--text-primary) 8%,transparent)}
.theme-toggle svg{width:20px;height:20px;grid-area:1/1;transition:opacity .35s ease,transform .5s var(--ease-arrive)}
.theme-moon{opacity:0;transform:rotate(-35deg) scale(.7)}
html[data-theme=day] .theme-sun{opacity:0;transform:rotate(35deg) scale(.7)}
html[data-theme=day] .theme-moon{opacity:1;transform:none}
html[data-pointer=mouse][data-orbit] .orbit-scene .theme-toggle{cursor:pointer}
.theme-toggle:focus-visible{outline-color:var(--text-primary)}
.portfolio-totals{display:grid;grid-template-columns:repeat(3,clamp(130px,14vw,220px));justify-content:start;gap:clamp(32px,5vw,80px);margin:0 0 70px;padding:40px 0 0;border-top:1px solid var(--rule);text-align:left}
.portfolio-totals>div{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:12px}
.portfolio-totals dt{font:400 var(--type-label)/1.4 var(--body);color:var(--text-secondary)}
.portfolio-totals dd{margin:0;font:500 clamp(46px,6.5vw,104px)/1 var(--display);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.company-footer-top{padding-bottom:64px}
.company-description{max-width:52ch}
.property-gallery{scroll-margin-top:108px}
@media(max-width:700px){.portfolio-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:44px;padding-top:28px}.portfolio-totals dd{font-size:clamp(38px,10vw,64px)}.portfolio-totals dt{font-size:13px}.company-footer-top{padding-bottom:40px}}
@media(max-width:600px){
 html[data-orbit] .scene-header,.property-route .property-page-nav{padding-left:16px;padding-right:16px;gap:8px}
 .scene-header p,.property-route .property-page-nav .property-return{font-size:clamp(12px,3.2vw,14px)}
 .theme-toggle{width:32px;height:32px;padding:6px}
 .theme-toggle svg{width:18px;height:18px}
}
@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle svg{transition:none}}

.portfolio-totals>div{min-width:0}.portfolio-totals dd{max-width:100%;overflow-wrap:anywhere}

.portfolio-totals dd{font-size:calc(clamp(46px,6.5vw,104px)*var(--total-scale,1))}@media(max-width:700px){.portfolio-totals dd{font-size:calc(clamp(38px,10vw,64px)*var(--total-scale,1))}}
/* Native touch scrolling owns the settled grid; the orbit only owns its handoff. */
html[data-native-touch] .shutter-trail,html[data-native-touch] .shutter-spill{display:none}
html[data-native-touch] .scene-centre{height:var(--scene-height);bottom:auto}
html[data-native-touch] .orbit-card{will-change:transform,opacity}
html[data-native-touch] .orbit-scene[data-native-grid] .orbit-field{visibility:hidden}
html[data-native-touch][data-orbit] .orbit-scene[data-native-grid] .grid-image img{visibility:visible}
html[data-native-touch][data-orbit] .grid-image img{position:absolute;top:calc(-1 * var(--photo-overscan,0px));height:calc(100% + var(--photo-overscan,0px) * 2)}
html[data-native-touch] .orbit-scene[data-native-grid] .orbit-card{will-change:auto}
html[data-native-touch][data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image{--photo-overscan:48px}
html[data-native-touch][data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image img{opacity:0;translate:0 48px;scale:.95;transition:opacity 1s var(--ease-arrive),translate 1s var(--ease-arrive),scale 1s var(--ease-arrive)}
html[data-native-touch][data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image[data-photo-revealed] img{opacity:1;translate:0 0;scale:1}
/* The frame supplies a stable timeline; crop zoom stays on the image. Older
   browsers keep the same native layout with a stationary photograph. */
@supports(animation-timeline:view()){
 html[data-native-touch][data-orbit] .grid-image{view-timeline:--photo-scroll block;view-timeline-inset:0;--photo-pan-distance:34px}
 html[data-native-touch][data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image img{animation:touch-photo-pan 1s linear both;animation-timeline:--photo-scroll;animation-range:cover}
 @media(max-width:700px){html[data-native-touch][data-orbit] .grid-image{--photo-pan-distance:22px}}
}
@keyframes touch-photo-pan{
 from{transform:translate3d(0,calc(-1 * var(--photo-pan-distance)),0) scale(var(--cms-crop-zoom,1))}
 to{transform:translate3d(0,var(--photo-pan-distance),0) scale(var(--cms-crop-zoom,1))}
}
@media(prefers-reduced-motion:reduce){html[data-native-touch][data-orbit] .grid-entry:not([data-showcase="false"]) .grid-image img{opacity:1;translate:none;scale:1}}
html[data-native-touch][data-orbit] [data-reveal]:not(.property-page){filter:none}
html[data-native-touch][data-orbit] .scene-header,html[data-native-touch] .property-route .property-page-nav{backdrop-filter:none;background:var(--scene-ink)}
html[data-native-touch] .gallery-tile img{filter:none}
html[data-native-touch] .property-route{touch-action:pan-y pinch-zoom}
@media(max-width:600px){.property-page-hero{height:58svh}}
