/* Desktop review thread — a quiet, scroll-drawn connection between cards. */
.rv-grid[data-review-grid] {
  position: relative;
  isolation: isolate;
}

.rv-grid[data-review-grid] .rv-card {
  z-index: 2;
}

.rv-review-connector {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  opacity: 0;
  transition: opacity 500ms ease;
}

.rv-review-connector.is-ready {
  opacity: 1;
}

.rv-review-connector__ambient,
.rv-review-connector__glow,
.rv-review-connector__line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.rv-review-connector__ambient {
  stroke: url("#rv-connector-gradient");
  stroke-width: 1.2;
  opacity: .13;
}

.rv-review-connector__glow,
.rv-review-connector__line {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.rv-review-connector__glow {
  stroke: url("#rv-connector-gradient");
  stroke-width: 9;
  opacity: .16;
  filter: url("#rv-connector-glow");
}

.rv-review-connector__line {
  stroke: url("#rv-connector-gradient");
  stroke-width: 1.8;
  opacity: .82;
}

.rv-review-connector__node-halo,
.rv-review-connector__node {
  transform-box: fill-box;
  transform-origin: center;
  opacity: var(--rv-node-opacity, 0);
  transform: scale(var(--rv-node-scale, .55));
  transition: opacity 180ms linear, transform 260ms var(--ease-out);
  vector-effect: non-scaling-stroke;
}

.rv-review-connector__node-halo {
  fill: rgb(120 208 231 / .14);
  stroke: rgb(120 208 231 / .32);
  stroke-width: 1;
}

.rv-review-connector__node {
  fill: #f7fcff;
  stroke: #1689bd;
  stroke-width: 1.5;
  filter: url("#rv-connector-node-glow");
}

@media (max-width: 900px) {
  .rv-review-connector {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rv-review-connector {
    transition: none;
  }

  .rv-review-connector__glow,
  .rv-review-connector__line {
    stroke-dashoffset: 0 !important;
  }

  .rv-review-connector__node-halo,
  .rv-review-connector__node {
    --rv-node-opacity: .72 !important;
    --rv-node-scale: 1 !important;
    transition: none;
  }
}
