/* Motion follows connections, never competes with reading. */
.motion-scope .flow-route,.motion-scope .concept-link{stroke-dasharray:5 8;animation:peak-flow 9s linear infinite;animation-play-state:paused}
.motion-scope.motion-visible .flow-route,.motion-scope.motion-visible .concept-link{animation-play-state:running}
.green-route{stroke:#a9c7b4}
.motion-scope .concept-node.green,.motion-scope .concept-focus{animation:peak-focus 8s ease-in-out infinite;animation-play-state:paused}
.motion-scope.motion-visible .concept-node.green,.motion-scope.motion-visible .concept-focus{animation-play-state:running}
.evidence-visual .evidence-path span{animation:peak-evidence 9s ease-in-out infinite;animation-play-state:paused}.evidence-visual .evidence-path span:nth-child(2){animation-delay:3s}.evidence-visual .evidence-path span:nth-child(3){animation-delay:6s}.evidence-visual.motion-visible .evidence-path span{animation-play-state:running}
.person-map .orbit-dot{animation-play-state:paused}.person-map.motion-visible .orbit-dot{animation-play-state:running}
.arrival-story.motion-visible .arrival-after svg .diagram-node{animation:peak-focus 8s ease-in-out infinite}
.motion-scope .review-phase svg circle:last-child{transition:fill .25s}.review-phase:hover svg circle:last-child{fill:#dcece2}
.stage-badge-link img{transition:transform .25s ease}.stage-badge-link:hover img{transform:translateY(-3px)}
.menu .dd[aria-current=page]>summary{color:#123b72;font-weight:600}
a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #397db6;outline-offset:4px}
@keyframes peak-flow{to{stroke-dashoffset:-78}}
@keyframes peak-focus{0%,65%,100%{fill:#edf5ef}30%{fill:#dceee2}}
@keyframes peak-evidence{0%,12%,100%{background:#fff;box-shadow:0 0 0 0 #dce9e100}5%{background:#aac7b5;box-shadow:0 0 0 6px #edf4ef}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
