/* Shared pacing: 180ms exit, 440ms feedback, 620ms entrance + up to 330ms stagger. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:no-preference){
  html[data-auth-motion] .auth-page .auth-form-wrap{animation:none}
  .auth-page .field-error:not([hidden]),.auth-page .form-error,.auth-notice,.otp-status,.settings-notice{animation:feedback-arrive 440ms var(--motion-ease) both}
  .auth-page input,.auth-page button,.button,.icon-button,.source-chip,.citation{transition:background-color 180ms,border-color 180ms,box-shadow 180ms,transform 180ms}
  .button:active:not(:disabled),.send-button:active:not(:disabled){transform:scale(.98)}
  .source-dialog[open]{animation:source-reader-enter 620ms var(--motion-ease) both}
  .source-dialog::backdrop,.small-dialog::backdrop{animation:motion-fade 320ms ease both}
  .small-dialog[open]{animation:feedback-arrive 480ms var(--motion-ease) both}
  .consulted-sources[open]>.message-sources{animation:feedback-arrive 440ms var(--motion-ease) both}
  .sidebar{transition:transform 420ms var(--motion-ease)}
  .research-orbit{animation:research-turn 2.4s linear infinite}
  .research-track::after{animation:research-travel 2.5s ease-in-out infinite}
  .research-stage{animation:feedback-arrive 380ms var(--motion-ease) both}
  .auth-feedback[data-state=success] p::before{display:inline-block;animation:success-mark 500ms var(--motion-ease)}
}
.research-status{display:flex;align-items:center;gap:16px;padding:20px 22px;background:#f0f3f7;border:1px solid #e5eaf0;border-radius:14px;color:var(--navy)}
.research-orbit{flex:none;width:28px;height:28px;border:2px solid #afa67a35;border-top-color:#afa67a;border-inline-end-color:var(--navy);border-radius:50%}
.research-status-copy{min-width:0;flex:1}.research-stage{display:block;font-size:13px;line-height:1.9}
.research-track{position:relative;overflow:hidden;max-width:220px;height:2px;background:#182d5810;margin-top:12px;border-radius:4px}
.research-track::after{content:'';position:absolute;inset:0;width:40%;background:#afa67a;border-radius:4px}
.reveal-skip{font-size:10px;min-height:32px;margin-bottom:6px}
.source-dialog.source-leaving{pointer-events:none}
.auth-feedback[data-state=loading]{position:relative;overflow:hidden}
@keyframes research-turn{to{transform:rotate(360deg)}}
@keyframes research-travel{0%,100%{transform:translateX(-20%)}50%{transform:translateX(170%)}}
@keyframes feedback-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-fade{from{opacity:0}to{opacity:1}}
@keyframes success-mark{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
