/* A shared experience becomes a review, a rating, and a lasting connection. */
.dp-review-motion { width:100%; max-width:620px; min-width:0; margin-inline:auto; position:relative; align-self:center; }
.dp-review-scene { display:block; width:100%; height:auto; overflow:visible; }
.dp-review-caption { display:flex; align-items:center; justify-content:center; gap:9px; margin-top:-12px; font-size:12px; line-height:1.8; color:#698477; letter-spacing:.01em; }
.dp-review-caption>span { width:6px; height:6px; border-radius:50%; background:#A9CDB7; box-shadow:0 0 0 4px #E9F2EC; }
.dp-review-line,.dp-review-route { stroke-dasharray:1; stroke-dashoffset:0; }
.dp-review-message,.dp-review-heart,.dp-review-trust,.dp-review-star { transform-box:fill-box; transform-origin:center; }
@media(prefers-reduced-motion:no-preference) {
    .dp-review-client { animation:dp-review-client 12s ease-in-out infinite; }
    .dp-review-message { animation:dp-review-message 12s ease-in-out infinite; }
    .dp-review-route { animation:dp-review-route 12s ease-in-out infinite; }
    .dp-review-route--reply { animation-name:dp-review-reply; }
    .dp-review-line { animation:dp-review-write 12s ease-in-out infinite; }
    .dp-review-line--two { animation-delay:.3s; }
    .dp-review-line--three { animation-delay:.6s; }
    .dp-review-star { animation:dp-review-rating 12s ease-in-out infinite both; }
    .dp-review-star--two { animation-delay:.22s; }
    .dp-review-star--three { animation-delay:.44s; }
    .dp-review-star--four { animation-delay:.66s; }
    .dp-review-star--five { animation-delay:.88s; }
    .dp-review-heart { animation:dp-review-heart 12s ease-in-out infinite; }
    .dp-review-trust { animation:dp-review-trust 12s ease-in-out infinite; }
    .dp-review-recipient { animation:dp-review-recipient 12s ease-in-out infinite; }
    .dp-review-motion[data-motion-paused] * { animation-play-state:paused!important; }
}
@keyframes dp-review-client { 0%,94%,100% { opacity:.6; transform:translateY(7px); } 7%,87% { opacity:1; transform:none; } }
@keyframes dp-review-message { 0%,5%,92%,100% { opacity:0; transform:translateY(10px) scale(.92); } 12%,82% { opacity:1; transform:none; } }
@keyframes dp-review-route { 0%,12% { stroke-dashoffset:1; opacity:0; } 16% { opacity:1; } 28%,80% { stroke-dashoffset:0; opacity:1; } 92%,100% { stroke-dashoffset:0; opacity:0; } }
@keyframes dp-review-write { 0%,22% { stroke-dashoffset:1; opacity:0; } 25% { opacity:1; } 39%,83% { stroke-dashoffset:0; opacity:1; } 94%,100% { stroke-dashoffset:0; opacity:0; } }
@keyframes dp-review-rating { 0%,39% { opacity:0; transform:translateY(5px) scale(.85); } 45%,83% { opacity:1; transform:none; } 94%,100% { opacity:0; transform:none; } }
@keyframes dp-review-heart { 0%,49%,96%,100% { opacity:0; transform:translateY(10px) scale(.8); } 58%,86% { opacity:1; transform:none; } }
@keyframes dp-review-reply { 0%,58% { stroke-dashoffset:1; opacity:0; } 62% { opacity:1; } 73%,86% { stroke-dashoffset:0; opacity:1; } 96%,100% { stroke-dashoffset:0; opacity:0; } }
@keyframes dp-review-recipient { 0%,63%,100% { opacity:.45; } 74%,89% { opacity:1; } }
@keyframes dp-review-trust { 0%,65%,100% { opacity:0; transform:translateY(9px); } 74%,90% { opacity:1; transform:none; } }
@media(max-width:767px) {
    .dp-review-motion { max-width:420px; }
    .dp-review-caption { margin-top:-5px; font-size:11px; }
    .dp-testimonials .dp-review-scene { margin-top:-24px; transform:translateY(12px); }
    /* Artwork ends at y=434 in a 640x520 viewBox. Keep its caption 10px below it. */
    .dp-testimonials .dp-review-caption { margin-top:calc(-13.4375% + 22px); }
}
