/* Short, restrained motion. No loops or content hidden behind JS classes. */
@media (prefers-reduced-motion: no-preference) {
  .hero-visual { animation: visual-arrive 700ms cubic-bezier(.2,.7,.25,1) both; }
  .hero-visual > img { animation: visual-settle 4.5s ease-out both; }
  .domain-card { transition: background-color 220ms ease, box-shadow 220ms ease, transform 220ms ease; }
  .domain-card:hover, .domain-card:focus-visible { transform: translateY(-5px); box-shadow: 0 12px 28px #0003, inset 0 2px 0 #6bc3ff; }
  .domain-card .domain-symbol, .domain-card .card-link > span, .button > span, .text-link > span { display: inline-block; transition: transform 220ms ease; }
  .domain-card:hover .domain-symbol, .domain-card:focus-visible .domain-symbol { transform: scale(1.12); }
  .domain-card:hover .card-link > span, .button:hover > span, .text-link:hover > span { transform: translate(3px,-3px); }
  .service-detail-grid article, .application-grid article { transition: background-color 220ms ease; }
  .service-detail-grid article:hover { background-color: #10283e; }
  .header nav > a:not(.nav-cta) { position: relative; }
  .header nav > a:not(.nav-cta)::after { content: ''; height: 1px; background: var(--blue); position: absolute; left: 0; right: 0; bottom: -6px; transform: scaleX(0); transform-origin: left; transition: transform 200ms ease; }
  .header nav > a:hover::after, .header nav > a:focus-visible::after { transform: scaleX(1); }
  @media (max-width:720px) { .header nav.is-open { animation: menu-arrive 180ms ease-out both; } .header nav > a:not(.nav-cta)::after { bottom: 6px; } }
}
@keyframes visual-arrive { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes visual-settle { from { transform: scale(1.06); } to { transform: scale(1); } }
@keyframes menu-arrive { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion:reduce) { .domain-card:hover,.domain-card:focus-visible { transform:none; } }
