@media (prefers-reduced-motion: no-preference) {
  .section-rule[data-seen='false'] { transform: scaleX(0); }
  .section-rule { transition: transform 700ms ease; }
  .specimen,
  .specimen h3,
  .specimen__primary,
  .specimen__secondary,
  .specimen__badge,
  .specimen__chip,
  .specimen__field,
  .specimen__field input,
  .specimen__items span {
    transition: height 180ms ease, padding 180ms ease, gap 180ms ease, background-color 240ms ease, color 240ms ease, border-color 240ms ease, border-radius 180ms ease, border-width 180ms ease, box-shadow 240ms ease, font-size 180ms ease, font-weight 180ms ease, letter-spacing 180ms ease;
  }
  .theme-demo[data-flash]:not([data-flash='0']) [data-mark] { animation: token-mark 380ms ease; }
  .studio__reply { animation: reply-in 240ms ease; transition: opacity 280ms ease, transform 280ms ease, border-color 200ms ease; }
  .studio__reply[data-mode='leaving'] { animation: none; opacity: 0; transform: translateY(6px); }
  .studio__processor { animation: processor-lap 2.4s linear infinite; }
  .studio__pulse { animation: reply-pulse 1.2s ease-in-out infinite; }
  .studio__caret { animation: studio-caret 0.9s steps(1) infinite; }
  .studio__slot { transition: opacity 220ms ease; }
  .studio__search-slot,
  .studio__filter-slot { transition: grid-template-rows 280ms ease, grid-template-columns 280ms ease; }
  .studio__board .studio__list,
  .studio__board .studio__list li,
  .studio__work { transition: gap 280ms ease, padding 280ms ease, border-color 280ms ease, box-shadow 280ms ease, grid-template-columns 280ms ease, outline-color 280ms ease; }
  .studio__detail [data-field] { animation: effort-in 220ms ease; }
  .effort__scene { animation: effort-in 240ms ease; }
  .effort__dash-head,
  .effort__dash-body,
  .effort__metrics strong,
  .effort__chart rect,
  .effort__insights,
  .effort__dash,
  .effort__status,
  .effort__dash-main,
  .effort__metrics {
    transition: opacity 240ms ease, transform 320ms ease, flex-basis 320ms ease, max-width 320ms ease, border-color 240ms ease, box-shadow 320ms ease, color 240ms ease, gap 320ms ease;
  }
  .voice-panel,
  .voice-group,
  .voice-group h3,
  .voice-actions { transition: gap 320ms ease, padding 320ms ease, border-color 320ms ease, background-color 320ms ease, opacity 280ms ease, max-height 320ms ease, margin 320ms ease; }
  .studio__mic[data-listening='true'] { animation: mic-pulse 1.3s ease-in-out infinite; }
  .studio__wave span { animation: voice-bar 0.8s ease-in-out infinite; }
  .studio__wave span:nth-child(2) { animation-delay: 0.15s; }
  .studio__wave span:nth-child(3) { animation-delay: 0.3s; }
  .benefits[data-seen='false'] li { opacity: 0; transform: translateY(var(--motion-offset-md)); }
  .benefits li { transition: opacity var(--motion-duration-slow) var(--motion-easing-standard), transform var(--motion-duration-slow) var(--motion-easing-standard); }
  .benefits[data-seen='true'] li:nth-child(2) { transition-delay: 120ms; }
  .benefits[data-seen='true'] li:nth-child(3) { transition-delay: 240ms; }
  .eco__agent { transition: margin 180ms ease, border-color 180ms ease; }
  .eco__agents:hover .eco__agent,
  .eco__agents:focus-within .eco__agent { margin-left: 0.35rem; }
  .eco__agents:hover .eco__agent:first-child,
  .eco__agents:focus-within .eco__agent:first-child { margin-left: 0; }
  .eco[data-active='valence-ai'] .eco__join path[data-arm='valence-ai'],
  .eco[data-active='valence-ai'] .eco__join path[data-arm='down'],
  .eco[data-active='external'] .eco__join path[data-arm='external'],
  .eco[data-active='external'] .eco__join path[data-arm='down'] {
    stroke-dasharray: 3 5;
    animation: eco-flow 1.2s linear infinite;
  }
}

@property --processor-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}
@keyframes processor-lap { to { --processor-angle: 360deg; } }
@keyframes token-mark { from { opacity: 0.45; } to { opacity: 1; } }
@keyframes eco-flow { to { stroke-dashoffset: -16; } }
@keyframes effort-in { from { opacity: 0.55; } to { opacity: 1; } }
@keyframes studio-caret { 50% { opacity: 0; } }
@keyframes reply-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes reply-pulse { 50% { opacity: 0.4; } }
@keyframes mic-pulse { 50% { box-shadow: 0 0 0 7px rgba(41, 112, 255, 0.08); } }
@keyframes voice-bar { 50% { height: 8px; } }
