/* agents/show.html.erb - keyframe shared with services/show via fade-in-up-xs
   in application.css. */
.agent-show-hero { animation: fade-in-up-xs 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }
.agent-show-feature { animation: fade-in-up-xs 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.06s forwards; opacity: 0; }
.agent-show-details { animation: fade-in-up-xs 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s forwards; opacity: 0; }

/* reviews/_rating_summary - each star's bar draws in from the left, staggered
   top to bottom by an inline animation-delay. */
.rating-summary-bar { animation: line-draw-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) both; }
@media (prefers-reduced-motion: reduce) {
  .rating-summary-bar { animation: none; }
}

/* agents/_admin_panel - accent underline draws in under the heading, and the
   quick-action confirm dialogs ease in. `scale` (not transform) because
   .confirm-dialog centers itself with a translate transform. */
.admin-panel-line { transform-origin: left; animation: line-draw-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both; }
.admin-confirm-dialog[open] { animation: admin-confirm-in 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); }
.admin-confirm-dialog[open]::backdrop { animation: admin-confirm-backdrop-in 0.35s ease-out; }
@keyframes admin-confirm-in {
  from { opacity: 0; scale: 0.94; }
  to   { opacity: 1; scale: 1; }
}
@keyframes admin-confirm-backdrop-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .admin-panel-line,
  .admin-confirm-dialog[open],
  .admin-confirm-dialog[open]::backdrop { animation: none; }
}
