/* Motion is progressive enhancement: no JavaScript class, no hidden content. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1);--motion-duration:800ms;--motion-rise:40px;--card-shadow:0 2px 6px rgba(0,0,0,.18),0 18px 40px rgba(0,0,0,.28)}
.header{z-index:1000}.mobile-menu{z-index:1200}.skip{z-index:1300}
.home-stat,.home-service-card,.home-why-card,.why-card,.review-card,.lash-card,.gallery-item,.home-about-card,.map-panel{box-shadow:var(--card-shadow)}
html.anim-ready .motion-section{perspective:1200px;overflow:clip}
html.anim-ready .home-stats,html.anim-ready .home-services-grid,html.anim-ready .home-about-grid,html.anim-ready .home-why-grid,html.anim-ready .why-grid,html.anim-ready .review-track,html.anim-ready .masonry,html.anim-ready .lash-cards{perspective:1200px}
html.anim-ready .motion-node{
 --entry-x:0px;--entry-y:0px;--entry-z:0px;--entry-rx:0deg;--entry-ry:0deg;--entry-scale:1;--entry-opacity:1;
 --layer-x:0px;--layer-y:0px;--layer-z:0px;
 transform:translate3d(calc(var(--entry-x) + var(--layer-x)),calc(var(--entry-y) + var(--layer-y)),calc(var(--entry-z) + var(--layer-z) + var(--cover-z,0px))) rotateX(calc(var(--entry-rx) + var(--tilt-x,0deg))) rotateY(calc(var(--entry-ry) + var(--tilt-y,0deg) + var(--cover-turn,0deg))) scale(var(--entry-scale)) scale(var(--cover-scale,1));
 opacity:calc(var(--entry-opacity) * var(--cover-opacity,1));
 transition:transform var(--motion-duration) var(--motion-ease),opacity var(--motion-duration) var(--motion-ease),box-shadow 400ms ease;
 transition-delay:var(--motion-delay,0ms);backface-visibility:hidden;transform-origin:center;
}
html.anim-ready .motion-node:not(.is-revealed){--entry-y:var(--motion-rise);--entry-opacity:0}
html.anim-ready .motion-stat:not(.is-revealed){--entry-y:50px;--entry-rx:18deg}
html.anim-ready .motion-service:not(.is-revealed){--entry-z:-120px;--entry-rx:12deg}
html.anim-ready .motion-about-image:not(.is-revealed){--entry-x:-50px;--entry-ry:10deg}
html.anim-ready .motion-about-card{--layer-x:-42px;--layer-z:40px;position:relative;z-index:2;box-shadow:0 3px 9px rgba(0,0,0,.2),0 28px 55px rgba(0,0,0,.38)}
html.anim-ready .motion-about-card:not(.is-revealed){--entry-x:80px;--entry-ry:-10deg}
html.anim-ready .motion-why:not(.is-revealed){--entry-rx:-20deg}
html.anim-ready .motion-gallery:not(.is-revealed){--entry-scale:.92;--entry-rx:8deg}
html.anim-ready .motion-menu-photo-left:not(.is-revealed){--entry-x:-48px;--entry-y:0px}
html.anim-ready .motion-menu-photo-right:not(.is-revealed){--entry-x:48px;--entry-y:0px}
html.anim-ready .motion-service>img{transform:scale(1);transition:transform var(--motion-duration) var(--motion-ease);transition-delay:var(--motion-delay,0ms)}
html.anim-ready .motion-service:not(.is-revealed)>img{transform:scale(1.12)}
html.anim-ready .motion-stat strong,html.anim-ready .motion-why .why-index{opacity:1;transform:translateY(0);transition:transform 500ms var(--motion-ease),opacity 500ms var(--motion-ease);transition-delay:calc(var(--motion-delay,0ms) + var(--motion-duration))}
html.anim-ready .motion-stat:not(.is-revealed) strong,html.anim-ready .motion-why:not(.is-revealed) .why-index{opacity:0;transform:translateY(18px)}
html.anim-ready .motion-why .why-index{display:inline-block}
html.anim-ready .motion-why hr{transform-origin:left;transform:scaleX(1);transition:transform 500ms var(--motion-ease);transition-delay:calc(var(--motion-delay,0ms) + var(--motion-duration))}
html.anim-ready .motion-why:not(.is-revealed) hr{transform:scaleX(0)}
html.anim-ready .motion-word{display:inline-block}
html.anim-ready .motion-review{transition-duration:600ms;transition-delay:0ms}
html.anim-ready .review-track{overflow-y:hidden;position:relative}
html.anim-ready .immersive-photo{inset:-16px;width:calc(100% + 32px);height:calc(100% + 32px);max-width:none;transform:translate3d(var(--hero-photo-x,0px),var(--hero-photo-y,0px),0) scale(var(--hero-scale,1));will-change:transform}
html.anim-ready .immersive-copy{transform:translate3d(var(--hero-copy-x,0px),var(--hero-copy-y,0px),0);will-change:transform}
html.anim-ready .rose-texture,html.anim-ready .footer-texture{transform:translate3d(0,var(--texture-y,0px),0) scale(1.4);will-change:transform}
/* Fine-pointer hover composes with the reveal, rather than replacing it. */
html.anim-ready .motion-tilt{position:relative;isolation:isolate;--tilt-x:0deg;--tilt-y:0deg}
html.anim-ready .motion-tilt:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--sheen-x,50%) var(--sheen-y,50%),rgba(227,198,138,.24),rgba(201,169,110,.06) 32%,transparent 65%);opacity:0;transition:opacity 400ms ease;pointer-events:none;z-index:3}
@media(min-width:1024px) and (hover:hover) and (pointer:fine){
 html.anim-ready .motion-tilt.is-landed{transition-duration:400ms,800ms,400ms;transition-delay:0ms}
 html.anim-ready .motion-tilt.is-landed.is-tilting{transition-duration:120ms,800ms,400ms;box-shadow:0 4px 10px rgba(0,0,0,.22),0 28px 55px rgba(0,0,0,.38)}
 html.anim-ready .motion-tilt.is-tilting:after{opacity:1}
 .button.gold{position:relative;isolation:isolate;overflow:hidden;transition:transform 400ms var(--motion-ease),box-shadow 400ms ease}
 .button.gold:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);transform:translateX(-130%);transition:transform 650ms ease;z-index:1}
 .button.gold:hover{transform:translateY(-2px);box-shadow:0 2px 6px rgba(0,0,0,.18),0 12px 28px rgba(201,169,110,.3)}
 .button.gold:hover:after{transform:translateX(130%)}
 html.anim-ready .motion-node.button.gold:hover{--layer-y:-2px}
}
@media(max-width:1023px),(pointer:coarse){
 :root{--motion-duration:500ms;--motion-rise:24px}
 html.anim-ready .motion-stat:not(.is-revealed){--entry-y:24px}
 html.anim-ready .motion-about-image:not(.is-revealed){--entry-x:-24px}
 html.anim-ready .motion-about-card:not(.is-revealed){--entry-x:24px}
 html.anim-ready .motion-menu-photo-left:not(.is-revealed){--entry-x:-24px}
 html.anim-ready .motion-menu-photo-right:not(.is-revealed){--entry-x:24px}
 html.anim-ready .motion-about-card{--layer-x:-32px}
 .button:hover{transform:none;box-shadow:none}
 html.anim-ready .motion-review{transition-duration:600ms}
}
@media(max-width:639px){html.anim-ready .motion-about-card{--layer-x:0px;--layer-y:-28px;--layer-z:0px}}
html.anim-ready .motion-instant,html.anim-ready .motion-instant strong,html.anim-ready .motion-instant .why-index,html.anim-ready .motion-instant hr{opacity:1!important;transition:none!important}
html.anim-ready .motion-instant strong,html.anim-ready .motion-instant .why-index,html.anim-ready .motion-instant hr{transform:none!important}
@media(prefers-reduced-motion:reduce){
 html.anim-ready .motion-node,.motion-node,.motion-word,.immersive-copy,.immersive-photo,.rose-texture,.footer-texture,.home-service-card>img,.gallery-item img,.home-stat strong,.why-index,.home-why-card hr,.button:hover{transform:none!important;opacity:1!important;transition:none!important;animation:none!important}
 .button.gold:after,.motion-tilt:after{display:none!important}
}
