header{transition:box-shadow .3s}header.scrolled{box-shadow:0 4px 30px #2712400d}.nav-links a{transition:color .2s,background .2s}.nav-links a[aria-current="location"],.nav-links a:hover{color:var(--purple)}.nav-cta:hover{background:#f3edfb}.reading-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,#7138cb,#b195e3);transform:scaleX(0);transform-origin:left;pointer-events:none}
.btn,.contact-link,.service,.industry{transition:transform .25s,box-shadow .25s,background .25s,border-color .25s}.btn:hover{transform:translateY(-3px);box-shadow:0 9px 20px #47236b20}.btn span,.text-link span{transition:transform .25s}.btn:hover span{transform:translate(2px,-2px)}.text-link:hover span{transform:translateY(3px)}.btn:active{transform:none}.service:hover,.service:focus-within{border-color:#b695e4;box-shadow:0 15px 35px #512b7610;transform:translateY(-4px)}.service-icon{transition:transform .3s}.service:hover .service-icon{transform:rotate(-8deg)}.industry:hover{background:#faf7fe}.contact-link:hover{transform:translateX(3px)}.stat-card{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s ease-out}.service-details[open] .service-detail-content{animation:enter-line .25s ease-out}
.back-top{position:fixed;bottom:20px;right:20px;z-index:15;width:44px;height:44px;display:grid;place-items:center;background:#7138cb;color:white;border:1px solid #ffffff50;border-radius:50%;box-shadow:0 6px 20px #25123b25;font-size:1.3rem;transition:transform .25s}.back-top[hidden]{display:none}.back-top:hover{transform:translateY(-4px)}:focus-visible{outline:3px solid #985ade;outline-offset:4px;border-radius:4px}.contact :focus-visible{outline-color:#d5b6fb}
@keyframes enter-line{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.motion-off{scroll-behavior:auto}.motion-off *,.motion-off *:after{animation:none!important;transition:none!important}.motion-off .stat-card{transform:none}
@media(max-width:820px){.nav-links.open{animation:enter-line .2s ease-out}.stat-card{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.stat-card{transform:none!important}}
