/* Only Home and Services load these refinements. */
html:has(.archvi-motion){scroll-behavior:smooth}
.archvi-motion{--archvi-ease:cubic-bezier(.22,1,.36,1)}
@keyframes archviSectionEnter{from{opacity:.35;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.archvi-motion .archvi-section-enter{animation:archviSectionEnter 620ms var(--archvi-ease) var(--archvi-stagger,0ms) both}
.archvi-motion :is(.av3-site-header,.avs-header){transition:background-color 280ms ease,border-color 280ms ease!important}
@keyframes archviMenuEnter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.archvi-motion :is(.is-mega-open .av3-mega-menu,.is-mega-open .avs-mega-menu,details[open] nav){animation:archviMenuEnter 220ms var(--archvi-ease) both}
.archvi-motion :is(a,button){transition:color 220ms ease,background-color 220ms ease,border-color 220ms ease}
.archvi-motion :is([data-service-tab]>span:last-child,[data-testimonial-dots] span){transition:background-color 260ms ease,color 260ms ease,width 320ms var(--archvi-ease)}
.archvi-motion [data-service-image]{transition:opacity 560ms ease,transform 800ms var(--archvi-ease)!important}
.archvi-motion .av3-hero-video{transition:opacity 600ms ease}
.archvi-motion [data-service-stage]{cursor:pointer!important}
.archvi-motion .av-service-card{overflow:hidden;transition:transform 320ms var(--archvi-ease),border-color 240ms ease}
.archvi-motion .av-service-card img{transition:transform 600ms var(--archvi-ease)}
.archvi-motion :is([data-work-open] img,[data-masonry] [role="img"],.av-showreel-frame>img){transition:transform 650ms var(--archvi-ease)!important}
@media(hover:hover) and (pointer:fine){
 .archvi-motion .av-service-card:hover img{transform:scale(1.035)}
 .archvi-motion .av-showreel-frame:hover>img{transform:scale(1.025)}
}
.archvi-motion dialog[open]{animation:archviMenuEnter 240ms var(--archvi-ease) both}
@keyframes archviBackdropEnter{from{opacity:0}to{opacity:1}}
.archvi-motion dialog[open]::backdrop{animation:archviBackdropEnter 240ms ease both}
.archvi-motion :is(.av3-mobile-menu,.avs-mobile-menu) summary span{transition:transform 220ms ease,opacity 180ms ease}
.archvi-motion details[open] summary span:first-child{transform:translateY(6.5px) rotate(45deg)}
.archvi-motion details[open] summary span:nth-child(2){opacity:0}
.archvi-motion details[open] summary span:last-child{transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:700px){
 @keyframes archviSectionEnter{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
 .archvi-motion .archvi-section-enter{animation-duration:480ms;animation-delay:0ms}
}
@media(prefers-reduced-motion:reduce){
 html:has(.archvi-motion){scroll-behavior:auto}
 .archvi-motion *,.archvi-motion *::before,.archvi-motion *::after{animation:none!important;transition:none!important}
 .archvi-motion :is(.av3-site-header,.avs-header,[data-service-image],[data-work-open] img,[data-masonry] [role="img"],.av-showreel-frame>img){transition:none!important}
}
@media print{
 html:has(.archvi-motion){scroll-behavior:auto}
 .archvi-motion *,.archvi-motion *::before,.archvi-motion *::after{animation:none!important;transition:none!important}
 .archvi-motion :is(.av3-site-header,.avs-header,[data-service-image],[data-work-open] img,[data-masonry] [role="img"],.av-showreel-frame>img){transition:none!important}
}
