/* Xtranet motion: bounded image depth, network signals and reading continuity. */
.av-hero{overflow:hidden}
.av-hero-image{animation:none}
.av-panel.av-switched{animation:none}
.av-motion-progress{position:fixed;inset:0 0 auto;height:2px;background:#2563eb;z-index:100;pointer-events:none;transform:scaleX(0);transform-origin:left;contain:strict}
.av-network-map .av-signal{fill:#2563eb;stroke:none;opacity:0;pointer-events:none}
.av-network-map .av-network-orbit{fill:none;stroke:#2563eb;stroke-width:1;opacity:0;pointer-events:none}
.av-node{transition:background-color 180ms ease,color 180ms ease}
.av-cta,.av-light-link{position:relative}
.av-cta:after,.av-light-link:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 250ms var(--av-ease)}
.cv-caption>svg{transition:transform 200ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){
 .av-hero-image{transform:scale(1.035)}
 .av-stage{perspective:1100px}
 .av-cta:hover:after,.av-light-link:hover:after{transform:scaleX(1)}
 .av-node:hover{background:#2563eb;color:#fff}
 .cv-project .cv-image img{transition:transform 250ms var(--ease-out)}
 .cv-project:hover .cv-image img{transform:scale(1.015)}
 .cv-project:hover .cv-caption>svg{transform:translate(3px,-3px)}
}
@media(prefers-reduced-motion:reduce){
 .av-hero-image{transform:none!important}
 .av-motion-progress,.av-signal,.av-network-orbit{display:none}
 .cv-project:hover .cv-image img,.cv-project:hover .cv-caption>svg{transform:none}
 .cv-caption>svg{transition:none}
}
