/* ring: commons
 * seed: inherit (scrub is t, not personality — the door seed still owns transitions)
 * still: ./still.md
 * reduced: replace (freeze at t≈0.15 — reduced.css)
 * when-not: Canon doors (their ticker is already raf-scroll-t), Lenis/ScrollSmoother, pin-as-premium, payload numbers riding the mark
 *
 * C-SCROLL-SCRUB — visual bound to the house --c-t contract.
 * Cheapest lane: inherit --c-t from css-scroll/scroll-t.mjs (raf).
 * GSAP ScrollTrigger may write a LOCAL --c-t on this element when registerFor grants it.
 * Never a second t. Never pin. First paint: t=0 → empty fill, mark at origin.
 */

[data-c-scrub] .c-scrub-rail {
  container-type: inline-size;
  position: relative;
  height: 8px;
  border-radius: var(--os-radius-pill);
  background: var(--os-rule);
}

[data-c-scrub] .c-scrub-fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--os-indigo);
  transform: scaleX(var(--c-t, 0));
  transform-origin: left center;
  will-change: transform;
}

[data-c-scrub] .c-scrub-mark {
  position: absolute;
  top: 50%;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: var(--os-radius-pill);
  background: var(--os-gold);
  transform: translate3d(calc(var(--c-t, 0) * 100cqi - 6px), -50%, 0);
  will-change: transform;
}

[data-c-scrub] [data-payload] {
  transform: none !important;
}
