:root{--ease-smooth:cubic-bezier(.2,.75,.25,1)}
.button{transition:transform .3s var(--ease-smooth),translate .3s var(--ease-smooth),background .3s,box-shadow .3s;translate:var(--magnetic-x,0px) var(--magnetic-y,0px)}
.button .arrow,.text-link .arrow,.card-link .arrow,.it-link .arrow{transition:transform .35s var(--ease-smooth)}
.button:hover .arrow,.text-link:hover .arrow,.card-link:hover .arrow,.it-link:hover .arrow{transform:translate(3px,-3px)}
.text-link{transition:color .25s,border-color .25s,gap .3s var(--ease-smooth)}
.nav>a:not(.button){transition:color .25s}
.nav>a:not(.button):before{content:'';position:absolute;bottom:4px;left:0;right:0;height:1px;background:#169dc7;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-smooth)}
.nav>a:not(.button):hover:before{transform:scaleX(1)}
.service-icon{transition:background .35s,box-shadow .35s,transform .45s var(--ease-smooth)}
.service-icon svg{transition:transform .45s var(--ease-smooth),stroke .35s}
.service-card,.price-card,.it-link,.contact-profile{transition:transform .4s var(--ease-smooth),border-color .35s,background .35s,box-shadow .4s var(--ease-smooth)}
.service-card:hover,.price-card:hover,.it-link:hover,.contact-profile:hover{border-color:#92c9df;box-shadow:0 18px 40px #123d7010}
.service-card:hover .service-icon,.why-item:hover .service-icon{transform:translateY(-3px) rotate(-5deg);background:#d3eef8;box-shadow:0 5px 15px #169dc712}
.service-card:hover .service-icon svg,.why-item:hover .service-icon svg{transform:scale(1.08)}
.service-card.featured:hover .service-icon{background:#ffffff20}
.it-link:hover>svg{transform:rotate(-7deg) scale(1.1)}
.it-link>svg{transition:transform .4s var(--ease-smooth)}
.price-card:hover{transform:translateY(-5px)}
.price-card:hover h3{color:#0488b6;transition:color .3s}
.contact-profile img{transition:transform .5s var(--ease-smooth)}
.contact-profile:hover img{transform:scale(1.025)}
.portrait-name>a{transition:transform .35s var(--ease-smooth),background .3s,box-shadow .3s}
.portrait-name>a:hover{transform:translate(2px,-2px) rotate(8deg);background:white;box-shadow:0 5px 18px #041b3620}
.footer-links a,.socials a,.footer-contact a{transition:color .25s,translate .3s var(--ease-smooth)}
.footer-links a:hover{translate:3px 0;color:#0488b6}
input,select,textarea{transition:border-color .25s,box-shadow .25s,background .25s}
input:hover,select:hover,textarea:hover{border-color:#a0cada}
input:focus,select:focus,textarea:focus{background:white;box-shadow:0 0 0 4px #16a7cf0c}
.js-enabled .reveal{transition:opacity .75s var(--ease-smooth),transform .75s var(--ease-smooth);transition-delay:var(--reveal-delay,0ms)}
.service-grid>.reveal:nth-child(3n+2),.price-grid>.reveal:nth-child(3n+2),.process-grid>.reveal:nth-child(3n+2){--reveal-delay:65ms}
.service-grid>.reveal:nth-child(3n+3),.price-grid>.reveal:nth-child(3n+3),.process-grid>.reveal:nth-child(3n+3){--reveal-delay:130ms}
.js-enabled .reveal.visible{transition-property:opacity,transform,border-color,background,box-shadow}
.js-enabled .reveal.visible:hover{transition-delay:0ms}
.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>p,.hero-actions,.hero-note{animation:hero-reveal .75s var(--ease-smooth) both}
.hero-copy>h1{animation-delay:60ms}.hero-copy>p{animation-delay:130ms}.hero-actions{animation-delay:200ms}.hero-note{animation-delay:260ms}
@keyframes hero-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.mouse-trail{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .35s ease}
.mouse-trail.is-visible{opacity:1}
.trail-dot{position:absolute;left:0;top:0;width:var(--dot-size);height:var(--dot-size);margin:calc(var(--dot-size) / -2);border-radius:50%;background:#1498c2;opacity:.35;will-change:transform}
.trail-dot:nth-child(n+3){opacity:.24}.trail-dot:nth-child(n+6){opacity:.14}
.motion-surface{position:relative;overflow:hidden}
.pointer-light{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,50%),#34b5e010,transparent 75%);opacity:0;transition:opacity .45s ease}
.pointer-active>.pointer-light{opacity:1}
.motion-hero{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .5s var(--ease-smooth);transform-origin:center}
@media(hover:hover) and (pointer:fine){.service-card.visible:hover,.price-card.visible:hover{transform:translateY(-5px)}.it-link.visible:hover{transform:translateY(-4px)}}
@media(hover:none),(pointer:coarse){.mouse-trail,.pointer-light{display:none}.button{translate:none}.price-card:hover,.service-card:hover,.it-link:hover{transform:none}.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>p,.hero-actions,.hero-note{animation-duration:.5s}}
@media(prefers-reduced-motion:reduce){.mouse-trail,.pointer-light{display:none}.motion-hero,.button,.price-card:hover,.service-card:hover,.it-link:hover{transform:none;translate:none}*,*:before,*:after{animation:none!important;transition:none!important}.js-enabled .reveal{opacity:1;transform:none}.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>p,.hero-actions,.hero-note{opacity:1;transform:none}}
