/* One continuous FV entrance overrides earlier mobile-only timing stages. */
img[data-illustration].fv-art,
.art-prepare img[data-illustration].fv-art[data-art-initial] {
  transition: none; scale: 1; translate: 0 0; backface-visibility: hidden;
}
.fv-art.fv-entering {
  animation: fv-enter 1.45s cubic-bezier(.25,.46,.45,.94) .45s both;
  will-change: transform, opacity;
}
.fv-art.art-reenter {
  animation: fv-reenter 1.3s cubic-bezier(.25,.46,.45,.94) both;
  will-change: transform;
}
@keyframes fv-enter {
  from { opacity: 0; transform: translate3d(0,10px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes fv-reenter {
  from { opacity: 1; transform: translate3d(0,10px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
.fv-motion-paused .fv-entering,
.art-motion-paused .fv-entering,
.art-motion-paused .fv-art.art-reenter { animation-play-state: paused; }

/* Artwork keeps its original positioning/centering transform. Only translate drifts. */
.motion-orbit {
  animation: section-orbit-drift var(--orbit-duration,12s) ease-in-out infinite alternate;
  animation-play-state: paused;
}
.motion-orbit.motion-orbit-active { animation-play-state: running; will-change: translate; }
.section-motion-paused .motion-orbit { animation-play-state: paused; }
@keyframes section-orbit-drift {
  from { translate: 0 0; }
  to { translate: var(--orbit-x,18px) var(--orbit-y,-20px); }
}

/* Structural wrappers stay still while their individual cards/rows enter. */
.reveal-container { opacity: 1; transform: none; }
@media (min-width: 1001px) {
  .reveal-pending:not(.motion-step) {
    transition-duration: .9s, 1.1s;
    transition-timing-function: ease, cubic-bezier(.2,.65,.25,1);
    transition-delay: var(--reveal-delay,0ms);
  }
  .risks-page .risk-card.reveal-pending {
    transition: opacity .9s ease, transform 1.1s cubic-bezier(.2,.65,.25,1), box-shadow .3s ease;
    transition-delay: var(--risk-entry-delay,0ms);
  }
  .insurer-logo.reveal-pending {
    transition: opacity .85s ease, transform 1.05s cubic-bezier(.2,.65,.25,1), box-shadow .3s ease, border-color .3s ease;
    transition-delay: var(--reveal-delay,0ms);
  }
  .reveal-pending.reveal-item:not(.motion-step) { --reveal-distance: 26px; }
  .reveal-pending.reveal-item:not(.motion-step):not(.is-visible) { transform: translate3d(0,var(--reveal-distance),0); }
}
.reveal-pending:focus-visible,
.reveal-pending:focus-within { opacity: 1; transform: none; transition-delay: 0ms; }
@media (prefers-reduced-motion: reduce) {
  .fv-art.fv-entering,.fv-art.art-reenter {
    animation: none !important; opacity: 1; transform: none; translate: none; scale: 1; will-change: auto;
  }
  .motion-orbit { animation: none !important; translate: none; will-change: auto; }
  .reveal-pending,.risks-page .risk-card.reveal-pending,.insurer-logo.reveal-pending {
    opacity: 1; transform: none; transition: none; transition-delay: 0ms;
  }
}
