
/* 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:#7fa0ff}
[data-reveal]{opacity:1;transform:none}
.header{position:sticky;top:0;transition:background .35s,box-shadow .35s}
.header.is-scrolled{background:rgba(11,17,25,.96);backdrop-filter:blur(18px);box-shadow:0 8px 30px #0002}
.hero h1{font-size:clamp(4.9rem,8.3vw,9.4rem);line-height:.86;margin:24px 0}
.hero-core{padding:30px 0}.hero-copy{padding-bottom:22px}
.hero-core p{font-size:1.04rem;max-width:360px}
.hero-visual img{height:calc(100% + 52px);position:relative;top:-26px}
.hero-core>.eyebrow,.hero-core>p,.hero-actions,.hero-rail,.hero-bottom{animation:copy-arrive .9s cubic-bezier(.22,1,.36,1) both}
.hero-core>p{animation-delay:.32s}.hero-actions{animation-delay:.46s}.hero-bottom{animation-delay:.58s}
@keyframes copy-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:.18s ease both page-fade}
::view-transition-new(root){animation:.4s cubic-bezier(.22,1,.36,1) both copy-arrive}
@keyframes page-fade{to{opacity:.3}}
.service-hero h1,.quote-intro h1{font-size:clamp(3.8rem,6.1vw,7.5rem);line-height:.96}
.service-hero-copy,.quote-intro,.quote-form-wrap{min-width:0}
.footer-top p{min-width:0}.contact-dialog{overflow-y:auto}
@media(max-width:760px){
 .hero{display:block;position:relative;isolation:isolate}
 .hero-copy{position:relative;z-index:2;min-height:730px;padding:22px 23px}
 .hero-core{padding:58px 0 45px;margin:auto 0}
 .hero h1{font-size:clamp(4.6rem,20vw,7rem);line-height:.87;margin:25px 0}
 .hero-core p{max-width:290px;font-size:1rem;color:#dae2ef}
 .hero-visual{position:absolute;inset:0;min-height:0;height:100%;z-index:0}
 .hero-visual img{object-position:63% center;height:100%;top:0;opacity:.68}
 .hero-visual:after{background:linear-gradient(90deg,rgba(6,13,24,.88),rgba(6,13,24,.28)),linear-gradient(0deg,rgba(6,13,24,.9),transparent 60%)}
 .hero-visual-label{display:none}.hero-rail,.hero-bottom{color:#c3cfe1;border-color:#6b7b9466}
 .service-hero h1,.quote-intro h1{font-size:clamp(3.5rem,12.4vw,5.6rem);line-height:.98}
 .service-hero-copy{min-height:540px}.service-detail h2{font-size:clamp(3.2rem,12vw,5.8rem)}
 .footer-top{gap:15px}.footer-top p{font-size:clamp(2.8rem,10vw,4.5rem)}.circle-link{flex-shrink:0}
 .footer-grid{gap:36px 20px}.footer-grid a{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.hero-core>*,.hero-rail,.hero-bottom{animation:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
@media(max-width:760px){.service-grid{grid-template-columns:minmax(0,1fr)}.service-card{width:100%}.service-caption h3{font-size:clamp(2.6rem,12vw,3.4rem)}}
@media(max-width:760px){
 .service-hero{display:flex;flex-direction:column}
 .service-hero-image{order:-1;height:315px}
 .service-hero-image img{height:315px;min-height:0;object-position:center}
 .service-hero-copy{min-height:0;padding:52px 23px 55px}
 .service-hero h1{margin:30px 0 18px}
 .service-hero-foot{padding-top:32px}
}
@media(max-width:390px){.services-head h2{font-size:clamp(3.3rem,14vw,4.1rem)}}
@media(max-width:390px){.gallery-hero h1{font-size:clamp(4.6rem,16vw,5.5rem)}.closing h2{font-size:clamp(4rem,14vw,5rem)}}
