/* Standalone services sphere. The preceding carousel keeps its native layout. */
.particle-interlude { position: relative; height: 100svh; background: var(--paper, #101111); color: #fff; isolation: isolate; }
.particle-stage { position: sticky; top: 0; height: 100svh; overflow: clip; background: var(--paper, #101111); }
.particle-backdrop,
.particle-foreground,
.particle-canvas-host,
.particle-poster,
.particle-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.particle-backdrop { z-index: 0; background: var(--paper, #101111); pointer-events: none; }
.particle-photo-backdrop { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.particle-photo-backdrop img { position: absolute; width: clamp(54px, 7vw, 110px); height: auto; aspect-ratio: 1.3; object-fit: cover; opacity: .6; }
.particle-photo-backdrop img:nth-child(1) { left: 8%; top: 30%; transform: rotate(-9deg); }
.particle-photo-backdrop img:nth-child(2) { right: 10%; top: 18%; transform: rotate(13deg); }
.particle-photo-backdrop img:nth-child(3) { left: 20%; bottom: 12%; transform: rotate(7deg); }
.particle-photo-backdrop img:nth-child(4) { right: 18%; bottom: 18%; transform: rotate(-13deg); }
.particle-photo-backdrop img:nth-child(5) { left: 46%; top: 20%; transform: rotate(5deg); }
[data-photos-ready="true"] .particle-photo-backdrop { visibility: hidden; }
.particle-foreground { z-index: 2; }
.particle-poster { display: block; pointer-events: none; }
.particle-poster img { display: block; width: 100%; height: 100%; object-fit: contain; }
.particle-canvas { display: block; touch-action: pan-y; }
.particle-canvas-host[data-ready="true"] + .particle-poster { visibility: hidden; }
.sphere-in-view.header-on-dark .site-header { background: #101111; }
.particle-stage::after {
  content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (hover: hover) and (pointer: fine) {
  .particle-canvas { cursor: grab; }
  .particle-canvas-host[data-dragging="true"] .particle-canvas { cursor: grabbing; }
}
@media (prefers-reduced-motion: reduce) {
  .particle-interlude { height: 100svh; }
  .particle-stage { position: relative; }
  .particle-canvas { cursor: default; }
}
