
/* Shared motion: short transitions, no moving timeline rows or connector paths. */
@keyframes center-enter{from{opacity:.25;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes center-fade{from{opacity:.3}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){
 button,.button,a,input,select,textarea{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
 .site-header nav a,.crm-sidebar nav a{transition:background-color .22s,color .22s}
 .new-hero>div,.auth-card,.prose,.page-title{animation:center-enter .5s ease both}
 .new-hero>img{animation:center-enter .65s ease both}
 [data-view]:not([hidden]){animation:center-fade .25s ease both}
 .practitioner-card,.article-card,.course-row,.topic-grid article,.quick-grid>a,.recording{transition:border-color .24s ease,background-color .24s ease,box-shadow .24s ease}
 .journey-track>i{transition:width .65s cubic-bezier(.2,.7,.2,1)}
 .nf-cycle-map-v4__year{transition:background-color .12s ease,box-shadow .12s ease}
 .nf-cycle-map-v4__rule-check{transition:background-color .18s ease,border-color .18s ease}
 .nf-cycle-map-v4__modal.is-open{animation:center-fade .18s ease}
 .nf-cycle-map-v4__hover-label{animation:center-fade .12s ease}
 button:active,.button:active{transform:translateY(0) scale(.98)}
}
/* Amber needs dark lettering; the same color identifies every part of this rule. */
.nf-cycle-map-v4__hover-label.is-half{color:#322000!important}
.nf-cycle-map-v4__year.is-cycle-linked.is-rule-full,.nf-cycle-map-v4__year.is-cycle-linked.is-rule-half{border-left-color:var(--nf-rule-cycle)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
