/* Motion layer: Apple-like soft blur */
:root{--ease-apple:cubic-bezier(.25,.1,.25,1);--ease-out:cubic-bezier(.16,1,.3,1)}
.scroll-progress{display:none}
.page-loader span{display:inline-block;animation:loaderIn 1s var(--ease-out) both}
@keyframes loaderIn{from{opacity:0;filter:blur(12px);transform:scale(.97)}to{opacity:1;filter:none;transform:none}}
body.is-ready .page-loader span{opacity:0;filter:blur(10px);transform:scale(1.02);transition:opacity .6s ease,filter .6s ease,transform .6s ease}
.hero-media img{transform:scale(1.06);filter:blur(16px);transition:transform 2.4s var(--ease-out),filter 1.6s var(--ease-apple)}
body.is-ready .hero-media img{transform:scale(1);filter:none}
.reveal{filter:blur(10px);transform:translateY(16px);transition:opacity 1.1s var(--ease-apple),transform 1.3s var(--ease-out),filter 1.1s var(--ease-apple)!important}
.reveal.is-visible{filter:none;transform:none}
#hero-title.reveal{filter:blur(18px);transform:translateY(20px) scale(.985);transition-delay:.2s!important}
#hero-title.reveal.is-visible{filter:none;transform:none}
.purpose-image,.property-image{overflow:hidden}
.m-img img{opacity:0;filter:blur(20px);transform:scale(1.05);transition:opacity 1.2s var(--ease-apple),filter 1.4s var(--ease-apple),transform 1.8s var(--ease-out)}
.m-img.m-in img{opacity:1;filter:none;transform:none}
.property-card .property-image img{transition:opacity 1.2s var(--ease-apple),filter 1.4s var(--ease-apple),transform 1.2s var(--ease-out)}
.property-card:hover .property-image.m-in img{transform:scale(1.03)}
@media(prefers-reduced-motion:reduce){.reveal,.m-img img,.hero-media img,#hero-title.reveal{transform:none!important;filter:none!important;opacity:1!important;transition:none!important}}
