/* Decorative accents occupy edges/tracks only. No scaling or moving data labels. */
.motion-chart { position:absolute; inset:0; pointer-events:none; z-index:4; }
#view .chart { position:relative; }
#view :is(.card,.cx-panel,.cd-card,.cx-revenue,.co-brief-grid article)[data-motion-ready] { position:relative; }
#view :is(.card,.cx-panel,.cd-card,.cx-revenue,.co-brief-grid article) > .motion-edge { position:absolute;pointer-events:none;left:12px;right:12px;top:0;height:1px;overflow:hidden;contain:strict; }
#view :is(.card,.cx-panel,.cd-card,.cx-revenue,.co-brief-grid article) > .motion-edge::after { content:"";position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,var(--pri,#328ac9),transparent);opacity:.32;animation:motion-edge-slide 5.5s linear infinite;animation-play-state:paused; }
#view :is(.card,.cx-panel,.cd-card,.cx-revenue,.co-brief-grid article).motion-visible > .motion-edge::after { animation-play-state:running;will-change:transform; }
@keyframes motion-edge-slide {from {transform:translateX(-100%)} to {transform:translateX(390%)}}
#view :is(.tag.ok,.tag.warn,.tag.bad,.tag.err)[data-motion-ready]::before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; margin-right:5px; background:var(--motion-tone); box-shadow:0 0 0 4px color-mix(in srgb,var(--motion-tone) 13%,transparent); animation:motion-halo 3s ease-in-out infinite; animation-play-state:paused; }
#view .tag.ok { --motion-tone:#16a34a; }
#view .tag.warn { --motion-tone:var(--warn,#d99021); }
#view .tag.bad,#view .tag.err { --motion-tone:#e5484d; }
#view .tag.motion-visible::before { animation-play-state:running; }
#view .ck-track-bar { position:relative; overflow:hidden; }
#view .ck-track-bar::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pri,#328ac9) 35%,transparent),transparent); background-size:30% 100%; background-repeat:no-repeat; animation:motion-edge 3.8s linear infinite; animation-play-state:paused; }
#view .ck-track-bar.motion-visible::after { animation-play-state:running; }
.motion-empty-orb { display:block!important; width:48px!important; height:48px!important; margin:0 auto 12px; }
@keyframes motion-edge { from {background-position:-50% 0} to {background-position:150% 0} }
@keyframes motion-halo { 0%,100% {opacity:.55} 50% {opacity:1} }
/* Freeze legacy CSS loops too, so the site switch has one consistent meaning. */
html[data-motion-still] *,html[data-motion-still] *::before,html[data-motion-still] *::after { animation:none!important; transition:none!important; }
html[data-motion-still] .motion-chart { visibility:hidden; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } .motion-chart {visibility:hidden} }
#view :is(.co-progress>div,.cx-soc>div:first-child)[data-motion-ready] { position:relative;overflow:hidden; }
#view :is(.co-progress>div,.cx-soc>div:first-child)[data-motion-ready]::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pri,#328ac9) 30%,transparent),transparent);background-size:30% 100%;background-repeat:no-repeat;animation:motion-edge 3.8s linear infinite;animation-play-state:paused; }
#view :is(.co-progress>div,.cx-soc>div:first-child).motion-visible::after {animation-play-state:running}
#view :is(.co-stage,.cd-trace li)[data-state=running].motion-visible :is(.co-node,i) { --motion-tone:var(--pri,#328ac9);animation:motion-halo 2.6s ease-in-out infinite; }
#view .co-stage[data-state=running].motion-visible::after {background:linear-gradient(90deg,transparent,var(--pri,#328ac9),transparent);background-size:35% 100%;background-repeat:no-repeat;animation:motion-edge 3s linear infinite}
#view [data-motion=off],#view [data-motion=off] *,#view [data-motion=off]::before,#view [data-motion=off]::after,#view [data-motion=off] *::before,#view [data-motion=off] *::after {animation:none!important;transition:none!important}

html[data-skin=alice] #view :is(.cx-panel,.cd-card,.cx-revenue)>.motion-edge {display:none}
/* The global indeterminate request stripe is decorative; keep disabled motion still. */
html[data-motion-still] .loading-line { visibility:hidden; }
