/* Rizière motion direction. The static composition is the default experience. */
:root{--ease-estate:cubic-bezier(.22,1,.36,1);--motion-small:760ms;--motion-frame:1200ms;--motion-feedback:200ms}
html{scroll-padding-top:126px}
h1,h2,h3{text-wrap:balance}
.site-nav nav{min-height:106px;width:90%;padding-block:8px}
.site-nav .brand-logo{width:104px}
.site-nav .brand-logo{aspect-ratio:928/782}
.site-nav .brand-logo img{position:static;width:100%;height:auto}
.site-nav{background:rgba(243,240,232,.97)}
.nav-links{gap:clamp(24px,3.2vw,52px)}
.nav-links a,.nav-cta,.text-link{transition:color var(--motion-feedback),border-color var(--motion-feedback)}
.nav-links a:hover,.nav-cta:hover,.text-link:hover{color:#776940}
.hero{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.65fr);gap:4%;align-items:center;width:94%;max-width:1800px;margin:42px auto 0}
.hero{overflow:clip}
.hero-picture{grid-column:2;grid-row:1;background:#e5e7db}
.hero-picture>img{aspect-ratio:1512/1040;object-fit:contain}
.hero-words{position:static;grid-column:1;grid-row:1;width:auto;text-align:left;padding:0 0 0 6%;pointer-events:auto}
.hero-words .eyebrow{font-size:11px;letter-spacing:.15em;line-height:1.9;max-width:240px;margin-bottom:34px}
.hero-words h1{font-size:clamp(3.5rem,6.6vw,7rem);line-height:.96;letter-spacing:-.055em}
.hero-line{display:block;overflow:clip;padding-bottom:.12em;margin-bottom:-.12em}
.hero-line>span{display:block}
.hero-subtitle{font-size:13px;line-height:1.8;letter-spacing:.035em;margin-top:32px;max-width:220px}
.hero-foot{padding-block:24px;margin-top:26px}
.hero-foot a{padding:8px 0}
.hero-foot a span{display:inline-block;transition:transform var(--motion-feedback) var(--ease-estate)}
.hero-foot a:hover span{transform:translateY(3px)}
.intro{padding-top:140px}
.intro .editorial{grid-template-columns:1.2fr 1fr;gap:12%;align-items:center}
.intro h2{font-size:clamp(3rem,5.9vw,5.7rem);line-height:1.03}
.intro .prose{padding-top:28px}
.intro .prose p:first-child{font-size:20px;line-height:1.65}
.estate-overview{margin-top:100px}
.estate-feature{padding-top:10px;padding-bottom:32px}
.feature-number{font-size:clamp(38px,3.5vw,54px);margin-bottom:28px;color:#85816a}
.estate-feature::after{width:100%}
.estate-feature h3{font-size:clamp(26px,2.1vw,34px)}
.wide{width:90%;max-width:1600px}
.image-link{background:#e5e4d9}
.gallery-buttons button{min-width:44px;min-height:44px;transition:background var(--motion-feedback),border-color var(--motion-feedback)}
.gallery-buttons button:disabled{opacity:.32}
.gallery-tools{display:flex;align-items:center;gap:24px}
.gallery-count{font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.1em;white-space:nowrap}
.room-gallery{scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-padding-inline:7%}
.room-gallery figure{scroll-snap-align:start;flex-basis:65vw}
.room-gallery .image-link{height:auto;aspect-ratio:1394/1128;background:transparent}
.room-gallery img{object-fit:contain}
.gallery-hint{font-size:12px;color:var(--muted);margin-top:18px}
.wellness{margin-top:12px;padding-block:120px 90px}
.quiet-specs{padding-top:85px}
.local-life{margin-top:115px;padding-block:110px 85px;overflow:clip}
.local-life-heading{margin-bottom:60px;align-items:end}
.local-life>.wrap{width:90%;max-width:1600px}
.local-life-grid{display:flex;gap:5%;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:1px;overscroll-behavior-x:contain;padding:0 0 28px;scrollbar-width:thin;scrollbar-color:#8b927b transparent}
.local-life-card{flex:0 0 37%;scroll-snap-align:start;padding-top:0}
.local-life-card:nth-child(even){padding-top:85px}
.local-life-photo img{height:auto;object-fit:contain}
.local-life-copy{max-width:340px;padding-top:24px}
.local-life-copy>span{display:inline-block;margin-bottom:18px}
.local-life-copy h3{font-size:clamp(30px,3vw,46px);line-height:1.07}
.local-life-controls{display:flex;align-items:center;justify-content:space-between;margin:30px 0 0;padding-top:20px;border-top:1px solid #c6c4b4}
.local-life-controls>p{font-size:12px;margin:0;color:var(--muted)}
.local-life-note{margin-top:24px;font-size:12px;max-width:650px}
.day-section{padding-block:100px 65px}
.day-title{display:grid;grid-template-columns:1.8fr 1fr;gap:15px 9%;align-items:end}
.day-title>.eyebrow{grid-column:1/-1;margin-bottom:10px}
.day-title>p:last-child{margin:0;max-width:320px;font-size:15px}
.day-layout{margin-top:65px}
.day-step{scroll-margin-top:140px}
.day-step h3{font-size:clamp(32px,3.2vw,48px);line-height:1.1}
.day-step>p{font-size:16px;line-height:1.8}
.day-frame{transition:opacity 850ms var(--ease-estate),visibility 0s 850ms;visibility:hidden}
.day-frame.active{visibility:visible;transition:opacity 850ms var(--ease-estate),visibility 0s}
.day-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:24px}
.day-progress a{position:relative;padding:12px 0 8px;min-height:44px;opacity:1;border:0;color:#a7af9f;transition:color var(--motion-feedback)}
.day-progress a::before,.day-progress a::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:#66745f}
.day-progress a::after{background:#dbc9a7;transform:scaleX(0);transform-origin:left;transition:transform 600ms var(--ease-estate)}
.day-progress a[aria-current]{color:#f3f0e8}
.day-progress a[aria-current]::after{transform:scaleX(1)}
.day-progress-label{display:block;font-size:10px;letter-spacing:.03em;margin-top:4px}
.day-sticky{top:130px}
.day-motion .day-layout{grid-template-columns:minmax(0,2.15fr) minmax(260px,1fr);gap:8%}
.day-motion .day-step{min-height:65vh;padding:60px 0;opacity:.46;transition:opacity 500ms var(--ease-estate)}
.day-motion .day-step.is-active{opacity:1}
.day-motion .day-step:last-child{min-height:65vh}
.day-motion .day-frames{max-height:calc(100svh - 265px);width:100%;aspect-ratio:1512/1040}
.day-motion .day-frame img{object-position:left center}
.day-step:focus{outline:0}
.day-step:focus-visible{outline:2px solid #dbc9a7;outline-offset:10px}
.founder{padding-block:145px}
.founder-words>p:not(.eyebrow):not(.signature){line-height:1.9;margin-top:46px}
.founder .signature{margin-top:36px}
#enquire{padding-block:125px}
.enquiry-form{padding-top:7px}
.enquiry-form input:not([type=checkbox]):focus,.enquiry-form textarea:focus,.enquiry-form select:focus{border-bottom-color:#544f2d;background:#eae9dd}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{transition:background var(--motion-feedback),border-color var(--motion-feedback)}
.enquiry-form .check-row{min-height:32px}
.check-row input{width:18px;height:18px;flex-shrink:0;margin-top:1px}
.form-status{padding:14px 16px;background:#e7e6db;border-left:2px solid #9b987d;line-height:1.65}
body.lightbox-open{overflow:hidden}
.lightbox-controls button,.lightbox-bar button{min-height:44px;min-width:70px}

/* No persistent hidden state: animations run once and then release their styles. */
@media(prefers-reduced-motion:no-preference){
  .arrival-ready .site-nav .brand-logo{animation:identity-in 1200ms var(--ease-estate)}
  .arrival-ready .hero-picture{animation:poster-in 1400ms var(--ease-estate)}
  .arrival-ready .hero-words .eyebrow{animation:quiet-in 800ms 100ms var(--ease-estate) backwards}
  .arrival-ready .hero-line>span{animation:line-in 950ms 180ms var(--ease-estate) backwards}
  .arrival-ready .hero-line:last-child>span{animation-delay:270ms}
  .arrival-ready .hero-subtitle{animation:quiet-in 800ms 500ms var(--ease-estate) backwards}
  .is-revealed{animation:none}
  .is-revealed .feature-number{animation:number-arrive 1000ms var(--ease-estate)}
  .estate-feature.is-revealed h3,.estate-feature.is-revealed>p{animation:quiet-in var(--motion-small) 80ms var(--ease-estate) backwards}
  .estate-feature.is-revealed::after{animation:feature-rule 1100ms var(--ease-estate)}
  .system-feature.is-revealed{animation:quiet-in 900ms var(--ease-estate)}
  [data-motion="frame"].is-revealed{animation:frame-in var(--motion-frame) var(--ease-estate)}
  [data-motion="text"].is-revealed{animation:text-in var(--motion-small) var(--ease-estate)}
  [data-motion="quiet"].is-revealed{animation:quiet-in 1000ms var(--ease-estate)}
  .local-life-card.is-revealed .local-life-photo{animation:photo-in var(--motion-frame) var(--ease-estate)}
  .local-life-card.is-revealed .local-life-copy{animation:quiet-in 800ms 120ms var(--ease-estate) backwards}
}
@keyframes identity-in{from{opacity:0}to{opacity:1}}
@keyframes poster-in{from{opacity:.45;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes line-in{from{transform:translateY(105%);opacity:.25}to{transform:none;opacity:1}}
@keyframes quiet-in{from{opacity:.2}to{opacity:1}}
@keyframes text-in{from{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes frame-in{from{opacity:.5;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes photo-in{from{opacity:.4;transform:translateX(20px)}to{opacity:1;transform:none}}
@media(max-width:1100px){
  .hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:3%;margin-top:32px}
  .hero-words h1{font-size:clamp(3rem,6.5vw,5rem)}
  .hero-words .eyebrow{font-size:10px;margin-bottom:24px}
  .hero-subtitle{font-size:12px;margin-top:24px}
  .intro .editorial{gap:7%}.intro .prose p:first-child{font-size:18px}
  .local-life-card{flex-basis:44%}.local-life-card:nth-child(even){padding-top:60px}
}
@media(max-width:900px),(max-height:650px){
  .day-motion .day-layout{display:block}
  .day-motion .day-visual{display:none}
  .day-motion .day-mobile{display:block}
  .day-motion .day-step,.day-motion .day-step:first-child,.day-motion .day-step:last-child{display:block;min-height:0;padding:35px 0;opacity:1}
}
@media(max-width:700px){
  html{scroll-padding-top:104px}
  .site-nav nav{min-height:86px;width:88%;gap:15px}
  .site-nav .brand-logo{width:80px}
  .nav-cta{font-size:12px}
  .hero{display:flex;width:100%;gap:0;margin-top:0}
  .hero-words{order:-1;padding:46px 6% 32px;width:100%}
  .hero-words h1{font-size:clamp(3.7rem,14vw,5.5rem);line-height:.98}
  .hero-line{display:inline-block;margin-right:.12em}
  .hero-words .eyebrow{font-size:10px;max-width:none;letter-spacing:.12em;margin-bottom:25px}
  .hero-subtitle{max-width:none;font-size:13px;margin-top:20px}
  .hero-picture{width:100%}.hero-foot{margin-top:0;width:88%;padding-block:15px;font-size:11px}
  .intro{padding-block:80px}.intro .editorial{grid-template-columns:1fr;gap:30px}.intro .prose{padding-top:0}
  .intro h2{font-size:clamp(2.8rem,11.5vw,3.5rem)}
  .estate-overview{margin-top:60px}.feature-number{font-size:40px;margin-bottom:22px}
  .estate-feature h3{font-size:26px}.estate-feature>p{font-size:15px}
  .wide{width:100%}.wellness{padding-block:70px}
  .gallery-tools{align-items:flex-end;flex-direction:column-reverse;gap:14px}.gallery-heading{gap:15px}
  .room-gallery figure{flex-basis:88vw}.room-gallery .image-link{height:auto}
  .gallery-hint{margin-top:10px;font-size:11px}
  .local-life{margin-top:65px;padding-block:70px 55px}.local-life>.wrap{width:88%}
  .local-life-heading{margin-bottom:35px}.local-life-grid{gap:22px;padding-bottom:20px}
  .local-life-card{flex-basis:86%}.local-life-card:nth-child(even){padding-top:0}
  .local-life-copy h3{font-size:34px}.local-life-controls{margin-top:20px}.local-life-controls>p{max-width:135px}
  .day-section{padding-block:65px 40px}.day-title{display:block}.day-title>.eyebrow{margin-bottom:20px}
  .day-title h2{font-size:48px}.day-title>p:last-child{margin-top:24px}.day-layout{margin-top:30px}
  .day-step{padding-block:28px}.day-step h3{font-size:37px}.day-step>p{max-width:none}
  .founder{padding-block:85px}.founder-words h2{font-size:44px}.founder-words>p:not(.eyebrow):not(.signature){margin-top:30px;line-height:1.8}
  #enquire{padding-block:80px}.enquiry-form{margin-top:15px}
}
@media(max-width:390px){.estate-features{grid-template-columns:1fr}.estate-feature{display:grid;grid-template-columns:40px 1fr;gap:8px 18px}.feature-number{grid-row:1/3;font-size:33px}.estate-feature h3{margin-bottom:0}.estate-feature>p{grid-column:2}.gallery-heading h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}.day-motion .day-layout{display:block}.day-motion .day-visual{display:none}.day-motion .day-mobile{display:block}
  .day-motion .day-step,.day-motion .day-step:first-child,.day-motion .day-step:last-child{display:block;min-height:0;opacity:1;padding:35px 0}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{.site-nav,.gallery-buttons,.local-life-controls{display:none}.local-life-grid{display:grid;grid-template-columns:1fr 1fr}.day-motion .day-layout{display:block}.day-motion .day-visual{display:none}.day-motion .day-mobile{display:block}.day-motion .day-step{min-height:0;opacity:1;break-inside:avoid}.day-section{color:#333b30;background:#f3f0e8}.day-step>p{color:inherit}}
