/* Nav & buttons — hover transitions */
.nav-links a{transition:color .2s ease;}
.nav-links a:hover{color:var(--ink);}
.nav-cta{transition:background .2s ease, color .2s ease;}
.nav-cta:hover{background:var(--sky); color:#07111F;}
.btn-primary{transition:transform .15s ease;}
.btn-primary:hover{transform:translateY(-2px);}
.btn-ghost{transition:border-color .15s ease;}
.btn-ghost:hover{border-color:var(--ink-dim);}
.foot-links a{transition:color .2s ease;}
.foot-links a:hover{color:var(--ink);}

/* Hero key-exchange pulse animation */
@keyframes travel{
  to { stroke-dashoffset:-466; }
}
.keyline .pulse{
  animation:travel 4.5s linear infinite;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion:reduce){
  .keyline .pulse{ animation:none; }
  .btn-primary:hover{ transform:none; }
  html{ scroll-behavior:auto; }
}
