/* Short, finite motion. No scroll handlers, looping effects or layout animation. */
@keyframes guard-page-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes guard-section-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes guard-notice-enter{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:no-preference){
  .landing-document,.picker-shell,.login-panel,.docs-main>#start{animation:guard-page-enter 240ms cubic-bezier(.2,.7,.2,1)}
  .button,.text-button,.nav-item,.module-row,.setting-link,.docs-entry summary,.docs-sidebar a,.landing-toc a{transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease}
  .button{transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease,transform 120ms ease}
  .button:hover:enabled,a.button:hover{transform:translateY(-1px)}
  .button:active:enabled,a.button:active{transform:translateY(0) scale(.985)}
  .choice,.choice-icon{transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease}
  .stepper>button{transition:background-color 120ms ease,color 120ms ease}
  .switch input{transition:background-color 140ms ease}
  .docs-summary-icon{transition:transform 160ms ease}
  .docs-entry[open]>.docs-entry-body,.docs-mobile-toc[open]>nav,.help details[open]>p{animation:guard-section-enter 180ms ease-out}
  #save-bar:not(:empty){animation:guard-section-enter 180ms ease-out}
  .notice:not([hidden]){animation:guard-notice-enter 180ms ease-out}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
