/* The paint lives between each original background and the original content.
   A clipped window keeps the trail inside its opted-in plain section without
   changing sticky children, section overflow, text geometry, or hit targets. */
.paint-trail-host { position: relative; isolation: isolate; }
.paint-trail-host > .paint-trail-layer {
  display: block;
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  contain: paint;
  pointer-events: none;
  user-select: none;
}
.paint-trail-host > .paint-trail-layer > .paint-trail-canvas {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  opacity: .88;
  pointer-events: none;
}
.paint-trail-host[data-paint-trail="dark"] > .paint-trail-layer > .paint-trail-canvas { opacity: .64; }
/* Grain stays intact beneath the moving pigment. Its existing pseudo-element
   otherwise sits above the trail in the service-detail stylesheet. */
.paint-trail-host.service-paper::before,
.paint-trail-host.paper-section::before,
.paint-trail-host.service-section::before { z-index: -2; }
@media (max-width: 767px), (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .paint-trail-host > .paint-trail-layer { display: none; }
}
html[data-motion-paused="true"] .paint-trail-layer { display: none; }
