/* Restrained motion and finishing touches for NexGen Solutions LLC. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--page-progress:0}
.header{transition:box-shadow .35s ease,background .35s ease}
.header.is-scrolled{background:rgba(255,255,255,.97);box-shadow:0 8px 30px #1324440b;backdrop-filter:blur(16px)}
.header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,#0057ff,#00b6ef);transform:scaleX(var(--page-progress));transform-origin:left;pointer-events:none}
nav>a:not(.button){position:relative;transition:color .2s ease}
nav>a:not(.button)::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
nav>a:not(.button):hover::after,nav>a[aria-current=location]::after{transform:scaleX(1)}
nav>a[aria-current=location]{color:var(--blue)}
.hero{background:linear-gradient(120deg,#fff 28%,#f6f9ff 100%)}
.hero-copy h1>span{background:linear-gradient(105deg,#0057ff 12%,#0047d2 44%,#0095e8 74%,#0057ff);background-size:180% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:headline-light 2.8s var(--ease-out) both}
.hero-visual{transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .5s var(--ease-out),box-shadow .5s ease;box-shadow:0 25px 70px -35px #004bd158}
.hero-art-frame{position:absolute;inset:0;overflow:hidden;border-radius:inherit;z-index:-2}
.hero-art-frame .hero-art{z-index:auto;animation:art-settle 2.3s var(--ease-out) both}
.hero-label{animation:label-float 2.4s ease-in-out 2;box-shadow:0 15px 45px #162c5620}
.hero .short-rule{transform-origin:left;animation:rule-enter 1s var(--ease-out) both}
.hero-actions .button,.contact-form>.button{background:linear-gradient(110deg,#0057ff,#1675ff);box-shadow:0 6px 16px #0057ff15}
.button{position:relative;overflow:hidden;transition:background .25s ease,box-shadow .3s ease,transform .3s var(--ease-out),border-color .25s ease}
.button::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-65%;width:45%;background:linear-gradient(100deg,transparent,#ffffff24,transparent);transform:skewX(-18deg);transition:left .6s var(--ease-out);pointer-events:none}
.button:hover::after{left:120%}
.button:active{transform:translateY(0) scale(.985);box-shadow:none}
.text-link{transition:color .25s ease,border-color .25s ease,transform .3s var(--ease-out)}
.text-link:hover{transform:translateY(-2px)}
.service-card,.insight-card{transition:transform .4s var(--ease-out),box-shadow .4s ease,border-color .3s ease}
.service-card::before,.insight-card::before{content:"";position:absolute;top:-1px;left:12px;right:12px;height:3px;background:linear-gradient(90deg,#0057ff,#009edb);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out);border-radius:3px}
.service-card:hover,.service-card:focus-within,.insight-card:hover,.insight-card:focus-within{transform:translateY(-7px);box-shadow:0 18px 38px #17396610;border-color:#8bb4ff}
.service-card:hover::before,.service-card:focus-within::before,.insight-card:hover::before,.insight-card:focus-within::before{transform:scaleX(1)}
.service-card .icon{transition:transform .4s var(--ease-out),color .3s ease}
.service-card:hover .icon{transform:translateY(-3px) rotate(-4deg);color:#0088dc}
.card-link span{transition:transform .35s var(--ease-out)}
.card-link:hover span{transform:rotate(90deg)}
.about-image img{transition:transform 1.1s var(--ease-out)}
.about-image:hover img{transform:scale(1.035)}
.industry-grid article{transition:background .35s ease}
.industry-grid article:hover{background:#f5f8fe}
.industry-grid article>span{transition:transform .35s var(--ease-out),color .3s ease}
.industry-grid article:hover>span{transform:translateY(-3px);color:#0094d6}
.solution-tabs button{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s var(--ease-out)}
.solution-tabs button:hover{transform:translateX(4px)}
.solution-tabs button[aria-selected=true]{box-shadow:0 8px 20px #0057ff1c}
.contact-form{box-shadow:0 20px 60px #00000017}
input,textarea,select{transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
input:focus,textarea:focus,select:focus{background:#fff;border-color:#4a8aff;box-shadow:0 0 0 3px #0057ff0b}
.detail-dialog[open]{animation:dialog-enter .28s var(--ease-out) both}
.detail-dialog[open]::backdrop{animation:backdrop-enter .25s ease both}
@keyframes headline-light{from{background-position:100% 50%}to{background-position:0 50%}}
@keyframes art-settle{from{transform:scale(1.09)}to{transform:scale(1.015)}}
@keyframes label-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes rule-enter{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes dialog-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes nav-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.hero-visual:hover{box-shadow:0 30px 85px -35px #004bd16b}}
@media(max-width:960px){nav.is-open{animation:nav-enter .25s var(--ease-out) both}nav>a:not(.button)::after{left:10px;right:auto;width:24px;bottom:6px}}
@media(max-width:700px){.hero-label{animation:none}.solution-tabs button:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.hero-copy h1>span{color:var(--blue);background:none}.hero-visual{transform:none!important}.hero-label,.hero-art-frame .hero-art,.hero .short-rule,.detail-dialog[open],.detail-dialog[open]::backdrop,nav.is-open{animation:none}.button:active,.button:hover,.text-link:hover,.service-card:hover,.service-card:focus-within,.insight-card:hover,.insight-card:focus-within,.service-card:hover .icon,.card-link:hover span,.about-image:hover img,.industry-grid article:hover>span,.solution-tabs button:hover{transform:none}.button::after{display:none}}
@media print{.header::after{display:none}.hero-visual{transform:none!important}}
