/* Cinematic motion: no dependencies, progressive enhancement. */
@keyframes hero-arrive{from{opacity:0;transform:translateY(35px);filter:blur(9px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes image-arrive{from{transform:scale(1.13);filter:saturate(.55) brightness(.8)}to{transform:scale(1.025);filter:saturate(.85) brightness(1)}}
@keyframes line-arrive{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes drift-arrow{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.lux-hero{overflow:hidden}.lux-hero>img{animation:image-arrive 2.8s cubic-bezier(.2,.7,.2,1) both;transform-origin:50% 40%}.lux-hero-copy .eyebrow,.lux-hero-copy h1,.lux-hero-copy>p:not(.eyebrow),.lux-hero-copy>.button{animation:hero-arrive 1.35s cubic-bezier(.16,1,.3,1) both}.lux-hero-copy .eyebrow{animation-delay:.15s}.lux-hero-copy h1{animation-delay:.35s}.lux-hero-copy>p:not(.eyebrow){animation-delay:.65s}.lux-hero-copy>.button{animation-delay:.9s}.lux-hero:after{animation:line-arrive 1.8s .1s cubic-bezier(.2,.8,.2,1) both}.lux-nav{animation:hero-arrive 1.1s .2s both;transition:opacity .4s}.lux-scroll{animation:drift-arrow 2.5s ease-in-out infinite}.lux-hero-copy{transform:translateY(calc(var(--scroll-y,0px)*.12));will-change:transform}.lux-hero>img{top:calc(var(--scroll-y,0px)*.18);height:110%}.lux-location,.lux-scroll{transition:opacity .4s}.motion-ready .motion-reveal{opacity:0;transform:translateY(42px);transition:opacity 1.1s cubic-bezier(.2,.75,.2,1) var(--reveal-delay,0ms),transform 1.3s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms)}.motion-ready .motion-reveal.is-visible{opacity:1;transform:translateY(0)}.lux-feature>img.motion-reveal{clip-path:inset(0 0 12% 0);transition:clip-path 1.8s cubic-bezier(.2,.75,.2,1),opacity 1.2s,transform 1.5s}.lux-feature>img.is-visible{clip-path:inset(0)}.lux-photo,.lux-island-grid>a,.island-card{position:relative}.lux-photo{overflow:hidden}.lux-photo img,.lux-island-grid img,.island-card img{transition:transform 1.1s cubic-bezier(.2,.75,.2,1),filter .8s!important;transform-origin:var(--hover-x,50%) var(--hover-y,50%)}.lux-photo:hover img,.lux-island-grid>a:hover img,.island-card:hover img{transform:scale(1.035);filter:saturate(1.08)}.lux-photo h3{transition:transform .5s}.lux-photo:hover h3{transform:translateX(7px)}.lux-nav nav>a:not(.button),.service-header nav>a:not(.pill){position:relative}.lux-nav nav>a:not(.button):after,.service-header nav>a:not(.pill):after{content:'';position:absolute;bottom:-7px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s}.lux-nav nav>a:hover:after,.service-header nav>a:hover:after{transform:scaleX(1)}.lux-groups nav a span,.lux-island-grid h3 span{transition:transform .45s}.lux-groups nav a:hover span,.lux-island-grid a:hover h3 span{transform:translate(5px,-5px)}.lux-groups nav a{transition:padding .5s,background .5s}.lux-groups nav a:hover{padding-left:12px;background:#ffffff30}.pill,.button,.lux-text{transition:letter-spacing .4s,opacity .4s!important}.pill:hover,.button:hover,.lux-text:hover{letter-spacing:.13em!important;opacity:.85}.service-hero{overflow:hidden}.service-hero:before{animation:image-arrive 2.8s cubic-bezier(.2,.7,.2,1) both}.service-hero h1,.service-hero .hero-intro,.service-hero .pill{animation:hero-arrive 1.2s cubic-bezier(.16,1,.3,1) both}.service-hero h1{animation-delay:.2s}.service-hero .hero-intro{animation-delay:.4s}.service-hero .pill{animation-delay:.6s}.brand-photo-grid figure{overflow:hidden}.brand-photo-grid img{transition:transform 1s!important}.brand-photo-grid figure:hover img{transform:scale(1.025)}.lux-home:after{content:'';display:block!important;position:fixed;top:0;left:0;width:var(--scroll-progress,0%);height:2px;background:#e3dcc3;z-index:100;pointer-events:none}
@media(max-width:600px){.lux-hero-copy{transform:none}.lux-hero>img{top:0;height:100%}.motion-ready .motion-reveal{transform:translateY(24px)}.motion-ready .motion-reveal.is-visible{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .motion-reveal{opacity:1!important;transform:none!important;clip-path:none!important}.lux-hero-copy{transform:none}.lux-hero>img{top:0;height:100%}}
@keyframes ocean-drift{from{transform:scale(1.025) translateX(0)}to{transform:scale(1.095) translateX(-.7%)}}
@media(prefers-reduced-motion:no-preference){.lux-hero>img{animation:image-arrive 2.8s cubic-bezier(.2,.7,.2,1) both,ocean-drift 18s 2.8s ease-in-out infinite alternate}.service-hero:before{animation:image-arrive 2.8s cubic-bezier(.2,.7,.2,1) both,ocean-drift 22s 2.8s ease-in-out infinite alternate}}
