/* UI 2.0 v5.4.13 — unified motion language. Motion describes hierarchy; it is not decoration. */
:root{
  --ui2-motion-fast:130ms;
  --ui2-motion-state:190ms;
  --ui2-motion-spatial:260ms;
  --ui2-motion-sheet:300ms;
  --ui2-motion-ease:cubic-bezier(.2,.82,.22,1);
}

/* Let v5.4.13 WAAPI own workspace/task spatial motion instead of stacking old keyframes. */
.ui2-workspace-enter-v5412 .ui2-workspace-surface-v5412,
.ui2-workspace-leaving-v5412 .ui2-workspace-surface-v5412,
.ui2-task-enter,
.ui2-task-state-pulse{animation:none!important}

/* High-frequency choice changes are effects-only, never whole-page lateral movement. */
.ui2-task-subject-rail button,
.ui2-task-segment-grid button,
.ui2-task-mini-options button,
.ui2-task-quick button,
.ui2-task-stepper button,
.nav-tabs>button{
  transition:background-color var(--ui2-motion-state) var(--ui2-motion-ease),border-color var(--ui2-motion-state) var(--ui2-motion-ease),color var(--ui2-motion-state) var(--ui2-motion-ease),opacity var(--ui2-motion-fast) ease,transform var(--ui2-motion-fast) ease!important;
}

/* JS handles the actual transform so repeated input can be interrupted/cancelled safely. */
.ui2-task-drawer{transition:none!important;will-change:transform,opacity}
.ui2-task-drawer-backdrop{transition:none!important}
.ui2-workspace-surface-v5412{will-change:transform,opacity}

/* More: keep closing elements renderable until the exit animation is finished. */
.ui2-more-menu.ui2-motion-closing-v5413,
.ui2-more-backdrop.ui2-motion-closing-v5413{display:block!important}
.ui2-more-menu{transform-origin:top right;will-change:transform,opacity}
@media(max-width:620px){.ui2-more-menu{transform-origin:center bottom}}

/* Bottom navigation active state: single-axis/opacity emphasis rather than bouncing the whole item. */
@media(max-width:620px){
  body.ui2-shell-v543:not(.ui2-practice-active) .nav-tabs>button::after{
    content:"";position:absolute;left:30%;right:30%;bottom:4px;height:2px;border-radius:2px;background:currentColor;opacity:0;transform:scaleX(.35);transition:opacity 170ms ease,transform 210ms var(--ui2-motion-ease);pointer-events:none
  }
  body.ui2-shell-v543:not(.ui2-practice-active) .nav-tabs>button{position:relative}
  body.ui2-shell-v543:not(.ui2-practice-active) .nav-tabs>.nav-btn.active::after,
  body.ui2-shell-v543:not(.ui2-practice-active) .nav-tabs>.ui2-more-btn[aria-expanded="true"]::after{opacity:.65;transform:scaleX(1)}
}

/* Avoid accidental vibration on repeated taps. */
.ui2-task-builder,.ui2-task-assignment-flow{transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
  .ui2-task-subject-rail button,.ui2-task-segment-grid button,.ui2-task-mini-options button,.ui2-task-quick button,.ui2-task-stepper button,.nav-tabs>button{transition:none!important}
}
