/**
 * Global CSS transition kill-switch. Spring JS owns every state change.
 * will-change only while .oracle-spring-active.
 */
html.oracle-spring-ui {
  --rc-ease-smooth: linear;
  --rc-ease-bounce: linear;
  --rc-ease-out-expo: linear;
  --rc-dur-fast: 0s;
  --rc-dur-normal: 0s;
  --rc-dur-slow: 0s;
  --rc-dur-slower: 0s;
  --rc-dur-reveal: 0s;
  --rc-zoom-duration: 0s;
  --rc-zoom-ease: linear;
  --oracle-spring-scale: 1;
}

html.oracle-spring-ui *:not(svg):not(svg *) {
  transition-duration: 0s !important;
  transition-delay: 0s !important;
}

html.oracle-spring-ui .oracle-spring-active {
  will-change: transform, opacity;
}

html.oracle-spring-ui .oracle-spring-hiding {
  display: block !important;
  visibility: visible !important;
  pointer-events: none;
}

html.oracle-spring-ui .voice-menu.oracle-spring-active,
html.oracle-spring-ui .voice-menu.oracle-spring-hiding {
  display: block !important;
}

html.oracle-spring-ui .rc-btn-face {
  transform-origin: center center;
}

html.oracle-spring-ui .slider::before {
  transition: none !important;
  transform: translate3d(var(--rc-switch-x, 0px), -50%, 0) scale(var(--rc-switch-s, 1)) !important;
}

html.oracle-spring-ui .plugin-connected-toast,
html.oracle-spring-ui .playtest-active-toast {
  transition: none !important;
}

html.oracle-spring-ui .plugin-connected-toast.is-visible,
html.oracle-spring-ui .playtest-active-toast.is-visible {
  transition: none !important;
}

html.oracle-spring-ui .quota-bar-fill,
html.oracle-spring-ui .quota-bar-fill::after {
  transition: none !important;
}

html.oracle-spring-ui .agent-thinking-chevron {
  transition: none !important;
}

html.oracle-spring-ui .rc-reveal,
html.oracle-spring-ui .rc-reveal.is-visible {
  transition: none !important;
}

html.oracle-spring-ui .rc-confirm-overlay,
html.oracle-spring-ui .rc-confirm-overlay.is-open,
html.oracle-spring-ui .rc-confirm-overlay.is-leaving,
html.oracle-spring-ui .rc-confirm-card {
  animation: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html.oracle-spring-ui *:not(svg):not(svg *) {
    transition: none !important;
    animation: none !important;
  }

  html.oracle-spring-ui .oracle-spring-active {
    will-change: auto;
  }
}
