/* Enhancement only: there is no hidden pending-reveal state. */
:root { --motion-settle: cubic-bezier(.2, .75, .25, 1); }
.hero-enter .eyebrow, .hero-enter h1, .hero-enter .hero-description,
.hero-enter .actions, .hero-enter .hero-figure { animation: enter-up 420ms var(--motion-settle) both; }
.hero-enter .eyebrow { animation-delay: 0ms; }
.hero-enter h1 { animation-delay: 65ms; }
.hero-enter .selection::before { animation: selection-resolve 360ms var(--motion-settle) 140ms both; }
.hero-enter .selection i { animation: handle-resolve 220ms ease-out 210ms both; }
.hero-enter .hero-description { animation-delay: 155ms; }
.hero-enter .actions { animation-delay: 195ms; }
.hero-enter .hero-figure { animation-name: image-resolve; animation-delay: 235ms; }
.motion-entered[data-reveal="heading"] { animation: enter-up 460ms var(--motion-settle) both; }
.motion-entered[data-reveal="copy"] { animation: copy-resolve 380ms ease-out both; }
.motion-entered[data-reveal="image"] { animation: image-resolve 560ms var(--motion-settle) backwards; }
.product-media.motion-entered::before, .product-media.motion-entered::after { animation: handle-resolve 280ms ease-out 220ms both; }
.motion-entered .scattered-inputs span { animation: source-align 460ms var(--motion-settle) both; }
.scattered-inputs span:nth-child(odd) { --alignment-offset: -6px; }
.scattered-inputs span:nth-child(even) { --alignment-offset: 6px; }
.motion-entered .scattered-inputs span:nth-child(2) { animation-delay: 35ms; }
.motion-entered .scattered-inputs span:nth-child(3) { animation-delay: 70ms; }
.motion-entered .scattered-inputs span:nth-child(4) { animation-delay: 105ms; }
.motion-entered .scattered-inputs span:nth-child(5) { animation-delay: 140ms; }
.motion-entered .convergence { transform-origin: 50% 85%; animation: leader-resolve 500ms ease-out both; }
.motion-entered .shared-decision { animation: shared-resolve 320ms var(--motion-settle) 230ms both; }
.workflow-steps.motion-entered::before { transform-origin: left; animation: rule-horizontal 620ms var(--motion-settle) both; }
.workflow-steps li:nth-child(1) { --stage-delay: 0ms; }
.workflow-steps li:nth-child(2) { --stage-delay: 90ms; }
.workflow-steps li:nth-child(3) { --stage-delay: 180ms; }
.workflow-steps li:nth-child(4) { --stage-delay: 270ms; }
.workflow-steps.motion-entered .step-number { animation: copy-resolve 260ms ease-out var(--stage-delay) both; }
.workflow-steps.motion-entered li::before { animation: stage-resolve 420ms ease-out var(--stage-delay) both; }
.workflow-steps.motion-entered .approval-step::after { transform-origin: left; animation: rule-horizontal 320ms ease-out 220ms both; }
.outcome-list.motion-entered article::before { transform-origin: left; animation: rule-horizontal 420ms var(--motion-settle) both; }
.outcome-list.motion-entered .item-index { animation: copy-resolve 300ms ease-out both; }
@media (hover: hover) and (pointer: fine) {
  .button:not(:disabled) span, .text-link span { transition: transform 180ms var(--motion-settle); }
  .button:not(:disabled):hover span { transform: translate(2px, -2px); }
  .text-link { background: linear-gradient(var(--alignd-purple), var(--alignd-purple)) left bottom / 0 1px no-repeat; transition: background-size 180ms ease-out, color 180ms ease-out; }
  .text-link:hover { background-size: 100% 1px; }
  .text-link:hover span { transform: translateY(2px); }
}
@keyframes enter-up { from { opacity: .65; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes copy-resolve { from { opacity: .75; transform: translateY(3px); } to { opacity: 1; transform: none; } }
@keyframes image-resolve { from { opacity: .8; clip-path: inset(0 0 2% 0); } to { opacity: 1; clip-path: inset(0); } }
@keyframes selection-resolve { from { opacity: .45; transform: scale(1.025, 1.1); } to { opacity: 1; transform: none; } }
@keyframes handle-resolve { from { opacity: .35; } to { opacity: 1; } }
@keyframes source-align { from { opacity: .7; transform: translate(var(--alignment-offset), -3px); } to { opacity: 1; transform: none; } }
@keyframes leader-resolve { from { opacity: .2; transform: scaleY(.95); } to { opacity: .5; transform: none; } }
@keyframes shared-resolve { from { transform: translateX(-50%) scale(1.015); } to { transform: translateX(-50%) scale(1); } }
@keyframes rule-horizontal { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes rule-vertical { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes stage-resolve { from { background: var(--alignd-purple); } to { background: var(--alignd-soft-grey); } }
.workflow-steps.motion-entered .approval-step::before { animation-name: handle-resolve; }
@media (max-width: 767px) {
  .hero-enter .hero-figure { animation-delay: 170ms; }
  .hero-enter .hero-figure, .motion-entered[data-reveal="image"] { animation-name: copy-resolve; animation-duration: 320ms; }
  .workflow-steps.motion-entered::before { transform-origin: top; animation-name: rule-vertical; }
  .workflow-steps.motion-entered .approval-step::after { transform-origin: top; animation-name: rule-vertical; }
  .motion-entered .scattered-inputs span { --alignment-offset: 0px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-enter *, .hero-enter *::before, .hero-enter *::after,
  .motion-entered, .motion-entered *, .motion-entered::before, .motion-entered::after,
  .motion-entered *::before, .motion-entered *::after { animation: none !important; }
}
