/* Motion system: purposeful state, route and feedback transitions only */
@keyframes routeIn{from{opacity:.001;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdropIn{from{opacity:0}to{opacity:1}}
@keyframes resultIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes drawerIn{from{transform:translateX(-100%)}to{transform:none}}
@keyframes nationalSweep{0%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
@keyframes flagBarIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
.route-enter{animation:routeIn .28s var(--ease-emph) both}
.modal-backdrop{animation:backdropIn .18s ease-out both}.modal{animation:modalIn .24s var(--ease-emph) both}
.demo-result:not(:empty){animation:resultIn .25s var(--ease-emph) both}
.national-ribbon i{animation:flagBarIn .42s var(--ease-emph) both}.national-ribbon i:nth-child(2){animation-delay:.05s}.national-ribbon i:nth-child(3){animation-delay:.1s}
.button,.icon-button,.view-switcher button,.directory-row,.category-card,.solution-card{transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease)}
.button:active,.icon-button:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){.route-enter,.modal-backdrop,.modal,.demo-result:not(:empty),.national-ribbon i{animation:none!important}.site-header{transition:none!important}}
