/* Motion is an enhancement: all content is visible before JavaScript runs. */
.rb-reading-progress {
  position: fixed; inset: 0 0 auto; height: 3px; z-index: 90;
  background: #03c75a; pointer-events: none; transform: scaleX(0);
  transform-origin: left center; opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .rb-entered {
    animation: rb-content-enter .65s cubic-bezier(.2,.65,.25,1) var(--rb-enter-delay,0ms) backwards;
  }
  .rb-chart-play .rb-chart-line,
  .rb-chart-play .rb-chart-area,
  .rb-chart-play .rb-chart-dot {
    animation: rb-chart-trace 1.45s cubic-bezier(.25,.55,.3,1) backwards;
  }
  .rb-flow-play .rb-flow-lines path {
    stroke: #03a64c; stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0;
    animation: rb-route-draw .7s ease-in-out .45s backwards;
  }
  .rb-flow-play .rb-flow-lines path[data-merge-new],
  .rb-flow-play .rb-flow-lines path[data-merge-existing] { animation-delay: 1.2s; }
  .rb-flow-play > .rb-flow-step > span,
  .rb-flow-mobile-stage > span:not(.rb-flow-third) {
    animation: rb-step-confirm .85s ease-out var(--rb-stage-delay,0ms) backwards;
  }
  .rb-flow-play > .rb-flow-step:nth-of-type(2) { --rb-stage-delay: .4s; }
  .rb-flow-play .rb-flow-final { --rb-stage-delay: 1.8s; }
  .rb-flow-play .rb-flow-fork > div,
  .rb-flow-mobile-stage.rb-flow-fork > div {
    animation: rb-branch-confirm .9s ease-out .9s backwards;
  }
  .rb-flow-play .rb-flow-final h3,
  .rb-flow-mobile-stage.rb-flow-final h3 {
    animation: rb-goal-confirm 1s ease-out var(--rb-stage-delay,0ms) backwards;
  }
}
@keyframes rb-content-enter {
  from { opacity: .25; translate: 0 20px; }
  to { opacity: 1; translate: 0 0; }
}
/* Only the plot is revealed. Axes, values and the sample disclosure stay visible. */
@keyframes rb-chart-trace {
  from { clip-path: inset(-12px 100% -12px -12px); }
  to { clip-path: inset(-12px -12px -12px -12px); }
}
@keyframes rb-route-draw {
  from { stroke-dashoffset: 1; }
  to { stroke-dashoffset: 0; }
}
@keyframes rb-step-confirm {
  0% { box-shadow: 0 0 0 0 #03c75a00; }
  35% { background-color: #d4f6e2; color: #075b30; box-shadow: 0 0 0 8px #03c75a14; }
  100% { box-shadow: 0 0 0 0 #03c75a00; }
}
@keyframes rb-branch-confirm {
  0%, 100% { box-shadow: 0 0 0 0 #03c75a00; }
  40% { box-shadow: 0 0 0 5px #03c75a20; }
}
@keyframes rb-goal-confirm {
  0%, 100% { color: inherit; }
  40% { color: #078540; }
}
@media (max-width:760px) {
  .rb-flow-mobile-stage.rb-flow-fork > div { animation-delay: 0s; }
}
@media (prefers-reduced-motion:reduce) {
  .rb-reading-progress { display: none; }
  .rb-entered { animation: none; }
}
@media print {
  .rb-reading-progress { display: none; }
}
