/* Motion is a progressive enhancement: content is visible without JavaScript. */
:root{--motion-distance:58px;--motion-duration:880ms;--motion-ease:cubic-bezier(.16,.75,.2,1)}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:no-preference){
 .reveal-item{transition:opacity var(--motion-duration) var(--motion-ease),transform var(--motion-duration) var(--motion-ease),filter var(--motion-duration) var(--motion-ease);transition-delay:var(--reveal-delay,0ms);transform-origin:50% 65%;will-change:auto}
 .reveal-item.is-pending{opacity:0;transform:translate3d(0,var(--motion-distance),0) scale(.975);filter:blur(3px)}
 .reveal-item.is-pending.from-above{transform:translate3d(0,-38px,0) scale(.985)}
 .reveal-item:not(.is-pending){opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
 .site-header{transition:box-shadow .35s,background .35s}
 .site-header.is-scrolled{box-shadow:0 9px 34px #05162514}
 .navigation a{position:relative}
 .navigation a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--product-accent,var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .38s cubic-bezier(.2,.7,.2,1)}
 .navigation a[aria-current=location]::after,.navigation a:hover::after{transform:scaleX(1)}
 .wave i{animation:voicecase-wave 1.25s ease-in-out infinite alternate;animation-delay:var(--wave-delay,0s);animation-play-state:paused}
 .wave.is-playing i{animation-play-state:running}
 .product .image-frame img{transition:transform .7s var(--motion-ease)}
 .product:hover .image-frame img{transform:scale(1.035)}
 .finance-metric,.product{transition:border-color .3s,box-shadow .4s}
 .product:hover{box-shadow:0 18px 45px #081b2f16}
 .button{transition:background .25s,border-color .25s,transform .3s,box-shadow .3s}
 .button:hover{box-shadow:0 7px 22px #001c371c}
 @keyframes voicecase-wave{0%{transform:scaleY(.36);opacity:.5}55%{transform:scaleY(.85);opacity:.85}100%{transform:scaleY(1.1);opacity:1}}
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:page-out 200ms ease-in both}
 ::view-transition-new(root){animation:page-in 580ms cubic-bezier(.16,.75,.2,1) both}
 @keyframes page-out{from{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-18px);filter:blur(2px)}}
 @keyframes page-in{from{opacity:0;transform:translateY(30px) scale(.988);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .reveal-item,.reveal-item.is-pending,.reveal-item.is-pending.from-above{opacity:1;transform:none;filter:none;transition:none}
 .wave i{animation:none;transform:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none}
}

@media(prefers-reduced-motion:no-preference){
 .wave-front{animation:accopia-flow 24s ease-in-out infinite alternate}
 .wave-back{animation:accopia-flow-back 31s ease-in-out infinite alternate}
 .accopia-watermark{animation:accopia-mark-drift 28s ease-in-out infinite alternate}
 @keyframes accopia-flow{from{transform:translate3d(-1%,-1%,0) rotate(-2deg) scale(1.02)}to{transform:translate3d(3%,2%,0) rotate(3deg) scale(1.06)}}
 @keyframes accopia-flow-back{from{transform:scaleX(-1) rotate(-8deg) translate3d(0,0,0)}to{transform:scaleX(-1) rotate(-3deg) translate3d(3%,3%,0)}}
 @keyframes accopia-mark-drift{from{transform:translate3d(0,0,0) rotate(-9deg)}to{transform:translate3d(-14px,16px,0) rotate(-5deg)}}
}

@media(prefers-reduced-motion:no-preference){
 .wave-front{animation:accopia-fine-flow 20s ease-in-out infinite alternate}
 .wave-back{animation:accopia-fine-counterflow 27s ease-in-out infinite alternate}
 .accopia-watermark{animation:accopia-symbol-float 11s ease-in-out infinite}
 @keyframes accopia-fine-flow{from{transform:translate3d(-1%,-.5%,0) rotate(-1deg) scale(1.02)}to{transform:translate3d(1.5%,1%,0) rotate(1deg) scale(1.04)}}
 @keyframes accopia-fine-counterflow{from{transform:scaleX(-1) translate3d(0,8%,0)}to{transform:scaleX(-1) translate3d(2%,5%,0)}}
 @keyframes accopia-symbol-float{0%,100%{transform:translate3d(0,0,0) rotate(-4deg) scale(1);opacity:.1}50%{transform:translate3d(-12px,18px,0) rotate(1deg) scale(1.035);opacity:.16}}
}
@media(prefers-reduced-motion:no-preference) and (max-width:760px){.accopia-watermark{animation-name:accopia-symbol-float-mobile}@keyframes accopia-symbol-float-mobile{0%,100%{transform:translate3d(0,0,0) rotate(-3deg);opacity:.075}50%{transform:translate3d(-6px,12px,0) rotate(2deg);opacity:.12}}}
@media(prefers-reduced-motion:no-preference){
 .audio-thread{transform-origin:50% 51%;animation:audio-thread-sway var(--thread-duration,8s) ease-in-out var(--thread-delay,0s) infinite alternate}
 .market-thread{animation:market-course 16s ease-in-out var(--thread-delay,0s) infinite}
 .market-current{animation:market-course 16s ease-in-out var(--thread-delay,0s) infinite,market-trace 10s linear infinite}
 @keyframes audio-thread-sway{0%{transform:translate3d(-8px,-4px,0) scaleY(.8);opacity:.6}100%{transform:translate3d(9px,7px,0) scaleY(1.12);opacity:1}}
 @keyframes market-course{0%,100%{d:var(--curve-a)}33%{d:var(--curve-b)}66%{d:var(--curve-c)}}
 @keyframes market-trace{from{stroke-dashoffset:1170}to{stroke-dashoffset:0}}
}
@media(prefers-reduced-motion:reduce){.audio-thread,.market-thread,.market-current{animation:none;transform:none}.market-current{stroke-dasharray:none;opacity:.4}}
@media(prefers-reduced-motion:no-preference){
 .racing-line{animation:rev-racing-flow 11s linear var(--lane-delay,0s) infinite}
 .tyre-track{animation:rev-tyre-impression 7s ease-in-out infinite alternate}
 .tyre-track:nth-child(2){animation-delay:-3.5s}
 .car-outline{animation:rev-car-drift 8s ease-in-out infinite alternate;transform-origin:center;transform-box:fill-box}
 @keyframes rev-racing-flow{to{stroke-dashoffset:-1292}}
 @keyframes rev-tyre-impression{from{opacity:.3;translate:0 0}to{opacity:.65;translate:0 -12px}}
 @keyframes rev-car-drift{from{opacity:.25;translate:0 0}to{opacity:.7;translate:20px -7px}}
}
@media(prefers-reduced-motion:reduce){.racing-line,.tyre-track,.car-outline{animation:none;translate:none}}

@media(prefers-reduced-motion:no-preference){
 .racing-highlight{animation:rev-highlight-run 5s linear var(--highlight-delay,0s) infinite}
 @keyframes rev-highlight-run{from{stroke-dashoffset:1450}to{stroke-dashoffset:0}}
}
@media(prefers-reduced-motion:reduce){.racing-highlight{animation:none;stroke-dasharray:none;opacity:.25}}
