/* Shared REC / ella motion. Content stays visible without JavaScript. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-time:720ms;--motion-accent:#a6b6a2}
body.ella{--motion-time:900ms;--motion-accent:#c0b9a8}
.motion-item{transition:opacity var(--motion-time) var(--motion-ease),translate var(--motion-time) var(--motion-ease);transition-delay:var(--motion-delay,0ms)}
.motion-item.motion-pending{opacity:0;translate:0 24px}
.motion-item.motion-visible{opacity:1;translate:var(--magnet-x,0px) var(--magnet-y,0px)}
.motion-enter{animation:motion-arrive var(--motion-time) var(--motion-ease) both;animation-delay:var(--motion-delay,0ms)}
@keyframes motion-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
@keyframes motion-dialog{from{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:none}}
@keyframes motion-image{from{opacity:.25}to{opacity:1}}
@keyframes motion-menu{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.motion-progress{position:fixed;inset:0 0 auto;height:2px;background:var(--motion-accent);z-index:40;pointer-events:none;transform:scaleX(0);transform-origin:left;contain:strict}
.motion-cursor{position:fixed;inset:0 auto auto 0;z-index:45;width:64px;height:64px;border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;background:#f1eee7eb;color:#242822;font:9px/1 Arial,sans-serif;letter-spacing:1.2px;pointer-events:none;opacity:0;transform:scale(.7);transition:opacity 180ms ease,transform 350ms var(--motion-ease);contain:layout style paint}
.motion-cursor.is-active{opacity:1;transform:scale(1)}
.text-link,.top-contact,.footer-nav a,.contact-links a,.project-pagination a,.price-more,.contact-email{transition:color 250ms ease,background-size 450ms var(--motion-ease),text-decoration-color 300ms ease}
.top-contact,.footer-nav a,.project-pagination a,.price-more{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px}
.text-link,.contact-links a,.contact-email{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px}
.text-link span,.top-contact span{display:inline-block;transition:translate 400ms var(--motion-ease)}
.language-switch a,.ella-subnav nav a,.ella-tabs button,.dress-filters button{transition:opacity 250ms ease,border-color 350ms ease,color 250ms ease}
.menu-toggle .bars i{transition:width 350ms var(--motion-ease),translate 350ms var(--motion-ease);width:100%}
.primary-button,.reel,.price-enquire,.copy-button,.hero-pause,.viewer-nav button,.instagram-close,.viewer-close,.film-close,.menu-close{transition:background-color 300ms ease,color 300ms ease,border-color 300ms ease,translate 450ms var(--motion-ease),opacity 250ms ease}
.motion-magnetic{translate:var(--magnet-x,0px) var(--magnet-y,0px)}
.contact .big-contact{transition:color 350ms ease,text-decoration-color 350ms ease;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;text-decoration-color:transparent}
.project .frame img,.film-image img,.portrait img,.ella-photo img,.dress-photo img,.ella-preview img{transition:transform var(--motion-time) var(--motion-ease),filter 650ms ease,opacity 350ms ease}
.card-play{transition:transform 450ms var(--motion-ease),background-color 350ms ease,color 350ms ease}
.ella-photo,.ella-preview-image{overflow:hidden}
.price-summary{transition:background-color 400ms ease,opacity var(--motion-time) var(--motion-ease),translate var(--motion-time) var(--motion-ease)}
.menu[open] nav a{animation:motion-menu 650ms var(--motion-ease) both}
.menu[open] nav a:nth-child(2){animation-delay:45ms}.menu[open] nav a:nth-child(3){animation-delay:90ms}.menu[open] nav a:nth-child(4){animation-delay:135ms}.menu[open] nav a:nth-child(5){animation-delay:180ms}.menu[open] nav a:nth-child(n+6){animation-delay:225ms}
.menu nav a{transition:translate 400ms var(--motion-ease),opacity 300ms ease}
.menu nav a:hover{font-style:normal}
.film-dialog[open],.people-instagram[open],.ella-viewer[open]{animation:motion-dialog 380ms var(--motion-ease)}
.viewer-stage img,.member-photo-grid img{animation:motion-image 350ms ease both}
.member-photo-grid img:nth-child(3n+2){animation-delay:40ms}.member-photo-grid img:nth-child(3n){animation-delay:80ms}
.viewer-thumbs button{transition:opacity 250ms ease,border-color 250ms ease}
.motion-scene img{transform:translateY(var(--scene-y,0px)) scale(1.07)}
.motion-item{transition-property:opacity,translate,background-color,color,background-size;transition-duration:var(--motion-time),var(--motion-time),300ms,300ms,450ms;transition-timing-function:var(--motion-ease);transition-delay:var(--motion-delay,0ms),var(--motion-delay,0ms),0ms,0ms,0ms}
@media(hover:hover) and (pointer:fine){
 .project a:hover .frame img,.project a:focus-visible .frame img,.film-card a:hover .film-image img,.film-card a:focus-visible .film-image img,.ella-film:hover .film-image img,.ella-film:focus-visible .film-image img{transform:scale(1.045)}
 .person-open:hover .portrait img,.person-open:focus-visible .portrait img{transform:scale(1.035);filter:grayscale(0)}
 /* Contained photographs and dresses retain the complete original composition. */
 .ella-photo:hover img,.ella-photo:focus-visible img,.dress-open:hover .dress-photo img,.dress-open:focus-visible .dress-photo img,.ella-preview a:hover img,.ella-preview a:focus-visible img{transform:scale(.975);opacity:1}
 .film-card a:hover .card-play,.ella-film:hover .card-play,.ella-film:focus-visible .card-play{transform:scale(1.13);background:var(--paper);color:var(--ink)}
 .text-link:hover,.text-link:focus-visible,.top-contact:hover,.top-contact:focus-visible,.footer-nav a:hover,.footer-nav a:focus-visible,.contact-links a:hover,.contact-links a:focus-visible,.project-pagination a:hover,.contact-email:hover,.price-summary:hover .price-more{background-size:100% 1px}
 .text-link:hover span,.top-contact:hover span{translate:4px -2px}
 .menu-toggle:hover .bars i:last-child{width:65%;translate:7px 0}
 .menu nav a:hover{translate:12px 0}
 .contact .big-contact:hover,.contact .big-contact:focus-visible{text-decoration-color:currentColor;color:#56634f}
 .reel:hover,.hero-pause:hover{background-color:#ffffff18}
 .viewer-nav button:hover{background:var(--paper);color:var(--ink)}
 .copy-button:hover,.instagram-close:hover,.viewer-close:hover,.film-close:hover,.menu-close:hover{opacity:.65}
}
@media(hover:none),(pointer:coarse){.motion-cursor{display:none}.motion-magnetic{translate:none}.motion-item.motion-pending{translate:0 14px}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .motion-item,.motion-item.motion-pending,.motion-item.motion-visible,.motion-enter{opacity:1!important;translate:none!important;animation:none!important;transition:none!important}
 .motion-cursor,.motion-progress{display:none!important}
 .motion-scene img{transform:none!important}
 .motion-magnetic{translate:none!important}
 .project img,.film-image img,.portrait img,.ella-photo img,.dress-photo img,.ella-preview img,.card-play,.menu nav a,.menu-toggle .bars i,.text-link span,.top-contact span{transform:none!important;translate:none!important}
 *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{.motion-item.motion-pending{opacity:1;translate:none}.motion-progress,.motion-cursor{display:none}}
