
/* Motion refinement: layered entry, measured scroll response and touch-safe controls. */
html{scroll-padding-top:100px}
.site-header:after,.header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--motion-accent);transform:scaleX(var(--scroll-progress,0));transform-origin:left;pointer-events:none}
.motion-title{animation:none!important}
.motion-title .headline-line{display:block;overflow:hidden;padding:.08em .03em .09em;margin:-.08em -.03em -.09em}
.motion-title .headline-line>span{display:block;animation:title-unfold .95s var(--line-delay,100ms) cubic-bezier(.22,1,.36,1) both}
.motion-title em{animation:none!important}
@keyframes title-unfold{from{transform:translate3d(0,110%,0) rotate(2deg);opacity:.2}to{transform:translate3d(0,0,0) rotate(0);opacity:1}}
.motion-ready .motion-enter{opacity:0;translate:0 30px;transition:opacity .85s cubic-bezier(.22,1,.36,1),translate .95s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),box-shadow .55s;transition-delay:var(--motion-delay,0ms)}
.motion-ready .motion-enter.motion-visible{opacity:1;translate:0 0}
.motion-ready .motion-image{clip-path:inset(0 0 12% 0);transition:clip-path 1.15s cubic-bezier(.22,1,.36,1),opacity .95s,translate 1.05s cubic-bezier(.22,1,.36,1)}
.motion-ready .motion-image.motion-visible{clip-path:inset(0)}
.button{position:relative;overflow:hidden;isolation:isolate}
.button:after{content:"";pointer-events:none;position:absolute;inset:-60% -70%;background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.18) 50%,transparent 57%);transform:translateX(-70%) rotate(8deg);transition:transform .85s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){.button:hover:after{transform:translateX(70%) rotate(8deg)}.service-card:hover{transform:translateY(-6px)}.gallery-tile:hover .tile-label,.gallery-item:hover figcaption{translate:0 -7px}}
.tile-label,.gallery-item figcaption{transition:translate .6s cubic-bezier(.22,1,.36,1)}
.contact-launcher{animation:concierge-arrive .8s .9s cubic-bezier(.22,1,.36,1) both}
@keyframes concierge-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.contact-panel-widget,.contact-dialog{animation:none!important;transform-origin:bottom right}
.contact-widget.is-open .contact-option{animation:option-arrive .45s cubic-bezier(.22,1,.36,1) both}
.contact-option:nth-child(2){animation-delay:35ms!important}.contact-option:nth-child(3){animation-delay:70ms!important}.contact-option:nth-child(4){animation-delay:105ms!important}.contact-option:nth-child(5){animation-delay:140ms!important}.contact-option:nth-child(6){animation-delay:175ms!important}
@keyframes option-arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
.mobile-toggle,.menu-toggle,.contact-close{min-width:44px;min-height:44px}
@media(max-width:760px){
 .nav,#site-nav{display:flex!important;opacity:0;visibility:hidden;pointer-events:none;translate:0 -8px;clip-path:inset(0 0 100% 0);transition:opacity .24s,translate .35s cubic-bezier(.22,1,.36,1),clip-path .4s cubic-bezier(.22,1,.36,1),visibility .4s}
 .nav.open,#site-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;translate:0 0;clip-path:inset(0)}
 .motion-ready .motion-enter{translate:0 18px;transition-duration:.7s}
 .motion-title .headline-line>span{animation-duration:.8s}
 .contact-widget{bottom:max(16px,env(safe-area-inset-bottom));right:16px}
 .contact-panel-widget,.contact-dialog{max-height:calc(100dvh - 100px);overscroll-behavior:contain}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .motion-title .headline-line>span,.contact-launcher,.contact-widget .contact-option{animation:none!important}
 .motion-ready .motion-enter,[data-reveal]{opacity:1!important;translate:none!important;transform:none!important;clip-path:none!important}
 .button:after{display:none}
 *{scroll-behavior:auto!important}
}

:root{--motion-accent:#aa8160}
.hero>img,.page-hero>img{height:calc(100% + 52px);top:-26px}
.motion-title .headline-line>span>em{display:block}
@media(max-width:760px){.hero .eyebrow{font-size:.71rem;letter-spacing:.09em}.hero h1{font-size:clamp(2.85rem,12vw,4rem)}.hero-bottom{right:0}.quote-intro h1{font-size:clamp(2.8rem,10vw,4.5rem)}.contact-panel a:not(.button){overflow-wrap:anywhere}.header-inner{gap:12px}}
@media(max-width:760px){.page-hero h1{font-size:clamp(2.45rem,10vw,3.5rem);line-height:1.12}}
