/* Broken pencil trajectories: each belongs to its own drawing, not a shared ring. */
.room-orbit-host { isolation: isolate; }
.room-orbit-host > .room-orbit-layer {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  contain: layout style;
}
.room-orbit-back { z-index: 0; }
.room-orbit-front { z-index: 2; }
.room-orbit-layer .room-orbit-route {
  stroke: #788666;
  stroke-width: .85;
  opacity: .52;
  fill: none;
}
.room-orbit-layer .room-orbit-rail {
  stroke: #a58c59;
  stroke-width: .65;
  opacity: .37;
}
.room-orbit-layer .room-orbit-witness {
  stroke: #748166;
  stroke-width: .65;
  opacity: .36;
}
.room-orbit-layer .room-orbit-near {
  stroke: #968058;
  stroke-width: 1;
  opacity: .63;
}
.room-orbit-traveller {
  transform: translate(var(--room-still-x), var(--room-still-y));
  transform-box: view-box;
  opacity: .85;
}
.room-orbit-point { fill: #9b8150; stroke: none; }
.room-orbit-seed { fill: #c5cdbb; stroke: #6c7b5b; stroke-width: .7; }
.room-orbit-tail { stroke: #97825a; stroke-width: .65; opacity: .6; }
.room-orbit-traveller-second { opacity: .7; }

@supports (offset-path: path('M0 0C10 0 10 10 0 10Z')) {
  .room-orbit-traveller {
    transform: none;
    offset-path: var(--room-route);
    offset-position: 0 0;
    offset-anchor: 0 0;
    offset-rotate: auto;
    offset-distance: 13%;
    animation: room-orbit-travel 76s linear infinite;
  }
  .room-orbit-traveller-second {
    offset-distance: 67%;
    animation-name: room-orbit-travel-second;
    animation-duration: 92s;
  }
}
@keyframes room-orbit-travel { from { offset-distance: 13%; } to { offset-distance: 113%; } }
@keyframes room-orbit-travel-second { from { offset-distance: 67%; } to { offset-distance: 167%; } }

/* Commission's orbit lives inside the six choices and leaves the caption clear. */
.room-orbit-host-commission > .loom-orbits { display: none; }
.room-orbit-host-commission > .room-orbit-layer {
  inset: 0 auto auto 24%;
  width: 52%;
  height: 82%;
}
.room-orbit-host-commission > .service-sketch-stage { z-index: 1; }
.room-orbit-host-commission > .loom-focus,
.room-orbit-host-commission > .loom-coordinate { z-index: 3; }

/* Loose leaves pass in front of the long route; short strokes turn around them. */
.room-orbit-host-collection > .page-sketch { z-index: 1; }
.room-orbit-host-collection > .folio-lenses,
.room-orbit-host-collection > .sketch-aside { z-index: 3; }
.room-orbit-host-collection .room-orbit-route { opacity: .43; }
.room-orbit-host-collection .room-orbit-traveller { animation-duration: 84s; }
.room-orbit-host-collection .room-orbit-traveller-second { animation-duration: 108s; }

.room-orbit-host-empty > .liberty-page-sketch { position: relative; z-index: 1; }
.room-orbit-host-empty .room-orbit-route { opacity: .39; }
.room-orbit-host-empty .room-orbit-traveller { animation-duration: 88s; }
.room-orbit-host-empty .room-orbit-traveller-second { animation-duration: 103s; }

/* The notebook's orbit makes a marginal knot, keeping the chapters readable. */
.room-orbit-host-notebook > .notebook-sketch { z-index: 1; }
.profile-world .room-orbit-host-notebook > .atlas-portrait,
.profile-world .room-orbit-host-notebook > .atlas-nodes,
.profile-world .room-orbit-host-notebook > .atlas-node-label { z-index: 3; }
.room-orbit-host-notebook .room-orbit-route { opacity: .44; }
.room-orbit-host-notebook .room-orbit-traveller { animation-duration: 96s; }
.room-orbit-host-notebook .room-orbit-traveller-second { animation-duration: 119s; }

.room-orbit-host-workbench > .workbench-art { z-index: 1; }
.room-orbit-host-workbench > .room-orbit-layer { height: auto; aspect-ratio: 250 / 220; }
.room-orbit-host-workbench > figcaption { z-index: 3; }
.room-orbit-host-workbench .room-orbit-route { stroke-width: .7; opacity: .48; }
.room-orbit-host-workbench .room-orbit-near { stroke-width: .75; }
.room-orbit-host-workbench .room-orbit-traveller { animation-duration: 82s; }
.room-orbit-host-workbench .room-orbit-traveller-second { animation-duration: 107s; }

/* All drawings keep their own existing pause behaviour, plus these light layers. */
.room-orbit-resting .room-orbit-traveller,
.room-orbits-hidden .room-orbit-traveller,
.is-offscreen .room-orbit-traveller,
.paused .room-orbit-traveller { animation-play-state: paused !important; }

@media (max-width: 900px) {
  .room-orbit-host-commission > .room-orbit-layer { left: 23%; width: 54%; height: 78%; top: 1%; }
}
@media (max-width: 650px) {
  .room-orbit-host-commission > .room-orbit-layer { left: 4%; width: 92%; height: 90%; top: -5%; }
  .room-orbit-layer .room-orbit-route { stroke-width: .9; }
  .room-orbit-layer .room-orbit-near { stroke-width: 1.05; }
  .room-orbit-host-workbench .room-orbit-route { stroke-width: .6; }
  .room-orbit-host-workbench .room-orbit-near { stroke-width: .7; }
  .room-orbit-host-workbench .room-orbit-traveller-second { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .room-orbit-traveller { animation: none !important; }
}
