/* ============================================================================
   public/pl-ticker/ticker.css — the two-row review ticker under the hero on
   /pianoles/ and /about/ (Senja sunset, 2026-09-26, Vela). Replaces Senja's
   "Testimonial Highlights Dark" widget 612eb907.

   Values: "Team Inbox/testimonials-inhouse/ARIA-senja-sunset-values-2026-09-26.md" §5.
   Pianoles-scoped (approved by Eleanor 2026-09-26 as Pianoles Option B values,
   same routing as the four 2026-09-24 values): pill wash/border/padding and the
   20px/s drift. Font = the served page's own body face (Trebuchet MS).
   Every selector starts with .pl-ticker. Nothing under 16px.

   Round 3 (Lars, 2026-09-26: "much lower, much narrower in the original …
   the two rows close together … more padding under 6000 volgers"): Aria's
   "## Round 2" D values, measured against the live Senja original — pill 38px
   high (padding 6px 12px, 24px face), 8px between pills, 8px between the rows
   (pill bottom → next row's pill top), font kept at 16px. Eleanor's ruling:
   the "Meer dan 6000 volgers" line → first-row pill top = 32px.
   ========================================================================== */
.pl-ticker {
  display: flex;
  flex-direction: column;
  gap: 0;                 /* the rows' own 4px padding-block gives 8px pill → pill */
  width: 100%;
  padding: 0;
  margin-top: 28px;       /* + the row's 4px top padding = 32px under the 6000 line */
}
.pl-ticker__row {
  position: relative;
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;
  padding-block: 4px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
}
.pl-ticker__row[data-dragging="true"],
.pl-ticker__row[data-dragging="true"] * { cursor: grabbing; }
.pl-ticker__row:focus-visible { outline: 2px solid rgba(255, 255, 255, 0.6); outline-offset: 2px; }
.pl-ticker__track {
  display: flex;
  width: max-content;
  will-change: transform;
  -webkit-user-select: none;
          user-select: none;
}
.pl-ticker__set {
  display: flex;
  gap: 8px;
  padding: 0 8px 0 0;     /* = the pill gap, so the loop seam is seamless */
  margin: 0;
  list-style: none;
}
.pl-ticker .pl-ticker__pill {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 38px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  font-family: "Trebuchet MS", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
  white-space: nowrap;
  transition: background 200ms ease, border-color 200ms ease, transform 200ms ease;
}
.pl-ticker .pl-ticker__pill:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  transform: translateY(-2px);
}
.pl-ticker .pl-ticker__avatar {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  margin-right: 8px;
  max-width: none;
  border-radius: 50%;
  object-fit: cover;
  -webkit-user-drag: none;
}
.pl-ticker .pl-ticker__initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.92);
  font-family: "Trebuchet MS", sans-serif;
  font-size: 16px;
  line-height: 1;
}
.pl-ticker__q {
  font-family: "Trebuchet MS", sans-serif;
  font-size: 20px;
  line-height: 1;
  color: rgba(255, 255, 255, 0.5);
  margin-left: 2px;
}
.pl-ticker__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
/* Reduced motion: both rows still, hover still applies (Aria §5); the row can
   be scrolled by hand. */
@media (prefers-reduced-motion: reduce) {
  .pl-ticker__row { overflow-x: auto; cursor: auto; -webkit-mask-image: none; mask-image: none; }
  .pl-ticker__set[aria-hidden="true"] { display: none; }
  .pl-ticker .pl-ticker__pill { transition: none; }
}
