/* Chrome motion derives from the shared token source; no authored board colors. */
.motion-soft-orb { --orb-mask: none; }
#redesignHeroStage { position: relative; isolation: isolate; }
.motion-hero-orb { position: absolute; right: 0; top: -24px; width: min(48vw, 320px); aspect-ratio: 1; pointer-events: none; z-index: var(--layer-stack-0); background: var(--ink); opacity: .045; mask-image: var(--orb-mask); -webkit-mask-image: var(--orb-mask); }
#redesignHeroStage > :not(.motion-hero-orb) { position: relative; }
#voice-ring.motion-soft-orb { position: relative; isolation: isolate; }
#voice-ring.motion-soft-orb::before { content: ''; position: absolute; inset: -18px; pointer-events: none; background: var(--ink); opacity: .18; mask-image: var(--orb-mask); -webkit-mask-image: var(--orb-mask); }
:root .ui-card { transition-duration: var(--motion-general); transition-timing-function: var(--motion-ease); }
:root .ui-btn, :root .ui-chip { transition-duration: var(--motion-pop); transition-timing-function: var(--ease-pop); }
:root .ui-panel { transition-duration: var(--motion-panel); transition-timing-function: var(--ease-standard); }
/* Specificity also covers stylesheets loaded later by a feature entry. */
/* Plot owners can opt into the same chart reveal without additional JS. */
[data-motion="chart"] { animation: motion-chart-in var(--motion-chart) var(--ease-chart) both; }
@keyframes motion-chart-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
:root .lg-live-progress > i { transition: transform var(--motion-progress) var(--ease-progress); }
:root .lg-live-card, :root .lg-live-card.is-in .lg-live-body { animation-duration: var(--motion-general); animation-timing-function: var(--motion-ease); }
:root .lg-live-chip { animation-duration: var(--motion-pop); animation-timing-function: var(--ease-pop); }
@media (prefers-reduced-motion: reduce) {
  [data-motion="chart"], :root .lg-live-card, :root .lg-live-card.is-in .lg-live-body, :root .lg-live-chip { animation: none; }
  :root .ui-panel, :root .ui-card, :root .ui-btn, :root .ui-chip, :root .lg-live-progress > i, #voice-ring.motion-soft-orb { transition: none; }
  /* voice-ux still writes an inline meter scale; keep it static for this preference. */
  #voice-ring.motion-soft-orb { transform: none !important; }
}
