

.rv-avg{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.rv-avg b{font-family:var(--display,system-ui);font-size:20px;color:var(--ink,#0A1622)}
.rv-avg span{font-size:var(--t-caption,13px);color:var(--ink-3,#6B7684)}
.rv-stars{display:inline-flex;gap:2px;line-height:0}
.rv-stars i{display:inline-block;width:16px;height:16px}
.rv-stars svg{width:16px;height:16px;fill:var(--line,#E5E8EC)}
.rv-stars i.on svg{fill:var(--amber,#F59E0B)}

.rv-rail{position:relative;width:0;min-width:100%}
.rv-list{
  display:flex;gap:14px;align-items:flex-start;
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  padding-bottom:4px;
  scrollbar-width:none;
}
.rv-list::-webkit-scrollbar{display:none}
.rv-list:focus-visible{outline:3px solid var(--blue,#2563EB);outline-offset:4px;border-radius:8px}
.rv-list>.rv-card{flex:0 0 86%;scroll-snap-align:start}
@media (min-width:560px){ .rv-list>.rv-card{flex-basis:340px} }
@media (min-width:1040px){ .rv-list{gap:16px} }

@media (max-width:559px){
  .rv-list{
    margin-inline:calc(var(--gutter,20px) * -1);
    padding-inline:var(--gutter,20px);
    scroll-padding-inline:var(--gutter,20px);
  }
}

.rv-arrows{display:none}
@media (hover:hover) and (pointer:fine) and (min-width:760px){
  .rv-arrows{display:flex;gap:8px;justify-content:flex-end;margin-bottom:12px}
  .rv-arrow{
    width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
    background:var(--bg,#fff);border:1px solid var(--line,#E5E8EC);color:var(--ink,#0A1622);
    cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease;
  }
  .rv-arrow:hover:not(:disabled){background:var(--bg-2,#F6F7F9);border-color:var(--ink-3,#6B7684)}
  .rv-arrow:disabled{opacity:.32;cursor:default}
  .rv-arrow svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;
    stroke-linecap:round;stroke-linejoin:round}
}

.rv-card{margin:0;background:var(--bg-2,#F6F7F9);border:1px solid var(--line,#E5E8EC);
  border-radius:14px;padding:18px 20px;display:flex;flex-direction:column}
.rv-card blockquote{margin:10px 0 0;font-size:15px;color:var(--ink-2,#3D4A5C);line-height:1.65}
.rv-card figcaption{margin-top:auto;padding-top:12px;font-size:var(--t-caption,13px);color:var(--ink-3,#6B7684)}
.rv-card figcaption b{display:block;font-family:var(--display,system-ui);font-weight:600;
  color:var(--ink,#0A1622);font-size:15px}
.rv-who{display:block;margin-top:1px}
.rv-what{display:inline-block;margin-top:4px;font-size:13px;font-weight:600;color:var(--ink-3,#6B7684);
  background:rgba(16,42,80,.06);border-radius:999px;padding:3px 9px}
.rv-more{margin-top:18px;font-size:var(--t-caption,13px);color:var(--ink-3,#6B7684)}

.rv-card .rv-body{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden}
.rv-card.open .rv-body{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}
.rv-toggle{align-self:flex-start;margin-top:6px;padding:4px 0;border:0;background:none;cursor:pointer;
  font:inherit;font-size:14px;font-weight:700;color:var(--blue,#2563EB)}
.rv-toggle:hover{text-decoration:underline}
.rv-card figcaption{margin-top:12px}

.swn{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}
.swn[hidden]{display:none}
.swn-b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;
  background:transparent;color:inherit;border:1.5px solid currentColor;opacity:.75;transition:opacity .15s,transform .15s}
.swn-b:hover:not(:disabled){opacity:1}
.swn-b:disabled{opacity:.22;cursor:default}
.swn-b svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.swn-n:not(:disabled){background:#2563EB;border-color:#2563EB;color:#fff;opacity:1}
.swn:not(.swn-used) .swn-n:not(:disabled){animation:swnPulse 1.6s ease-in-out 3}
.swn-d{display:flex;align-items:center;gap:6px}
.swn-d i{display:block;width:7px;height:7px;border-radius:99px;background:currentColor;opacity:.25;transition:width .2s,opacity .2s}
.swn-d i.on{width:20px;opacity:.85}
.swn-t{font-size:.85rem;font-weight:700;opacity:.75;min-width:3.5em;text-align:center}
@keyframes swnPulse{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.swn-nudge>*{animation:swnNudge .9s ease-in-out 2}
@keyframes swnNudge{0%,100%{transform:translateX(0)}45%{transform:translateX(-34px)}}
@media (prefers-reduced-motion:reduce){.swn-nudge>*,.swn .swn-n{animation:none!important}}
.rv-arrows{display:none!important}
