.order-intro {
  /* Clip decoration without letting focused replay scroll the whole scene. */
  overflow: clip;
}

.order-groove-rays {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.order-groove-rays .order-groove-reveal {
  stroke-dashoffset: var(--groove-length);
  transition: stroke-dashoffset var(--groove-duration, 3600ms) cubic-bezier(.19, .72, .22, 1) var(--groove-delay, 0ms);
}

.order-groove-rays.is-visible .order-groove-reveal {
  stroke-dashoffset: 0;
}

.order-groove-rays.is-resizing .order-groove-reveal {
  transition: none;
}

.order-groove-rays.is-static .order-groove-reveal {
  stroke-dashoffset: 0;
  transition: none;
}

.order-groove-replay {
  display: block;
  width: fit-content;
  min-height: 44px;
  margin: .5rem auto 0;
  padding: .55rem .65rem;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 5px 5px 2px 2px;
  background: transparent;
  color: var(--purple);
  font: 700 .76rem/1.3 var(--body);
  cursor: pointer;
}
.order-groove-replay[hidden] { display: none; }

.order-groove-replay:hover { color: var(--blue); }
.order-groove-replay:focus-visible { outline: 3px solid var(--purple); outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  .order-groove-replay { display: none; }
  .order-groove-rays .order-groove-reveal {
    transition: none;
    stroke-dashoffset: 0;
  }
}
