/* BUYER REVIEWS (plan Task 14; spec amendment item 4, 5 Oct 2026). Cards between sections slide in from
   alternating sides (motion.css: data-rise); the strip is a belt of short quotes that moves only when
   motion.js has switched motion on. Without it, or with reduced motion, the loop copy (.rv-dup) is not
   even displayed and the single list scrolls by hand. A pause button covers WCAG 2.2.2.
   The credit is eBay's masked form (owner ruling, 5 Oct 2026). --gold stays money-only. */
.rv-between { max-width: var(--max); margin: 18px auto; padding: 0 20px; overflow-x: clip; }
.rv-card { position: relative; margin: 0; max-width: 720px; padding: 26px 26px 20px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(180deg, var(--shell-2), var(--shell)); }
.rv-card[data-rise="right"] { margin-left: auto; }
.rv-card::before { content: '\201C'; position: absolute; top: -14px; left: 18px; font-family: var(--display); font-size: 72px; line-height: 1; background: var(--holo); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rv-text { margin: 0 0 10px; font-size: clamp(17px, 2.2vw, 21px); color: var(--ink); }
.rv-who { display: flex; flex-wrap: wrap; gap: 4px 10px; color: var(--dim); font-size: 14px; }
.rv-name { font-family: var(--labelface); letter-spacing: 1px; color: var(--ink); }
.rv-strip { position: relative; overflow-x: auto; padding: 14px 0; border-block: 1px solid var(--line); background: rgba(255, 255, 255, .02); }
.rv-belt { display: flex; width: max-content; }
.rv-track { list-style: none; display: flex; gap: 14px; margin: 0; padding: 0 7px; }
.rv-chip { white-space: nowrap; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--shell); color: var(--ink); font-size: 14px; }
.rv-chip .rv-name { margin-left: 6px; color: var(--dim); font-size: 12px; }
.rv-dup { display: none; }
.rv-pause { position: absolute; right: 12px; top: 8px; z-index: 1; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--shell-2); color: var(--ink); font: 700 12px var(--body); cursor: pointer; }
.rv-pause[hidden] { display: none; }
@keyframes rv-belt { to { transform: translateX(-50%); } }
/* Room above the belt for the Pause button, so it never sits on a chip (seen at 1440, 6 Oct 2026). */
.motion-on .rv-strip { overflow: hidden; padding-top: 46px; }
.motion-on .rv-dup { display: flex; }
.motion-on .rv-belt { animation: rv-belt 60s linear infinite; }
.motion-on .rv-strip:hover .rv-belt, .motion-on .rv-strip.is-paused .rv-belt { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .rv-belt { animation: none !important; width: auto; }
  .rv-dup { display: none !important; }
  .rv-strip { overflow-x: auto !important; }
  .rv-pause { display: none !important; }
}
