.hero{position:relative;background:linear-gradient(120deg,var(--hero-a) 0%,var(--hero-b) 35%,var(--hero-c) 55%,var(--hero-glow) 80%,var(--hero-b) 100%);background-size:300% 300%;animation:hero-drift 18s ease-in-out infinite;}
@keyframes hero-drift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.btn-glow{box-shadow:0 0 0 0 rgba(58,92,217,.45);animation:btn-pulse 2.6s ease-in-out infinite;}
@keyframes btn-pulse{0%{box-shadow:0 0 0 0 rgba(58,92,217,.45);}50%{box-shadow:0 0 18px 4px rgba(58,92,217,.35);}100%{box-shadow:0 0 0 0 rgba(58,92,217,.45);}}
.service-card{border:1px solid var(--line);transition:border-color .2s ease,background-color .2s ease;}
.service-card:hover,.service-card:focus-within{border-color:var(--blue);background-color:var(--blue-soft);}
.underline-grow{background-image:linear-gradient(var(--blue),var(--blue));background-repeat:no-repeat;background-size:0% 2px;background-position:left bottom;transition:background-size .6s ease;}
.underline-grow.is-visible{background-size:100% 2px;}
.nav-link{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--ink);text-decoration:none;}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s ease;}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1);}
@media (prefers-reduced-motion:reduce){.hero{animation:none;background-position:30% 50%;}.btn-glow{animation:none;box-shadow:0 0 0 0 rgba(58,92,217,0);}.underline-grow{transition:none;}}
