[data-motion^="man-"] {
  --man-travel: 44px;
  --man-rise: 30px;
  --man-angle: 12deg;
  contain: paint;
}

.man-radar,
.man-coordinate-chip,
.man-scan-corners,
.man-branch-map article > i,
.man-branch-spine,
.man-orbit,
.man-film-code,
.man-laser-grid,
.man-altitude-ruler,
.man-signal-board,
.man-signal-route,
.man-rigging-sequence article > i,
.man-tension-lines,
.man-plotter,
.man-dial,
.man-frequency,
.man-vector-code,
.man-night-route,
.man-night-pulse {
  pointer-events: none;
}

/* 1. Radar acquires the photo, sweeps the work zone, then fixes its target. */
.js [data-motion="man-radar-sweep"] .man-hero-photo img {
  animation: man-radar-photo-wake 1.2s cubic-bezier(.18,.78,.22,1) both paused;
}
.js [data-motion="man-radar-sweep"] .man-hero-copy {
  animation: man-radar-copy-lock .9s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="man-radar-sweep"] .man-radar {
  animation: man-radar-unit-lock .82s cubic-bezier(.16,.8,.22,1.08) .2s both paused;
}
.js [data-motion="man-radar-sweep"] .man-radar > span {
  animation: man-radar-sweep-turn 3.8s linear .65s infinite paused;
  transform-origin: 50% 50%;
}
.js [data-motion="man-radar-sweep"] .man-radar > i {
  animation: man-radar-ring-ping 2.4s ease-out infinite paused;
  transform-origin: 50% 50%;
}
.js [data-motion="man-radar-sweep"] .man-radar > i:nth-of-type(2) { animation-delay: .48s; }
.js [data-motion="man-radar-sweep"] .man-radar > i:nth-of-type(3) { animation-delay: .96s; }
.js [data-motion="man-radar-sweep"] .man-radar > b {
  animation: man-radar-target-fix 1.15s steps(3,end) .72s infinite paused;
}
.js [data-motion="man-radar-sweep"] .man-coordinate-chip {
  animation: man-radar-chip-tune .76s steps(5,end) .42s both paused;
}
.js [data-motion="man-radar-sweep"] .man-scan-corners > span {
  animation: man-radar-corner-lock .72s cubic-bezier(.18,.75,.22,1) both paused;
  transform-origin: center;
}
.js [data-motion="man-radar-sweep"] .man-scan-corners > span:nth-child(2) { animation-delay: .08s; }
.js [data-motion="man-radar-sweep"] .man-scan-corners > span:nth-child(3) { animation-delay: .16s; }
.js [data-motion="man-radar-sweep"] .man-scan-corners > span:nth-child(4) { animation-delay: .24s; }

@keyframes man-radar-photo-wake {
  0% { opacity: 0; filter: grayscale(1) contrast(1.35); clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes man-radar-copy-lock {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1)); clip-path: inset(0 18% 0 0); }
  100% { opacity: 1; transform: translateX(0); clip-path: inset(0); }
}
@keyframes man-radar-unit-lock {
  0% { opacity: 0; filter: blur(8px); }
  100% { opacity: 1; filter: blur(0); }
}
@keyframes man-radar-sweep-turn { to { transform: rotate(360deg); } }
@keyframes man-radar-ring-ping {
  0% { opacity: .15; transform: scale(.5); }
  58% { opacity: .75; }
  100% { opacity: 0; transform: scale(1.08); }
}
@keyframes man-radar-target-fix {
  0%, 42% { opacity: .25; filter: brightness(.7); }
  43%, 100% { opacity: 1; filter: brightness(1.45); }
}
@keyframes man-radar-chip-tune {
  0% { opacity: 0; filter: blur(5px); clip-path: inset(0 0 100% 0); }
  100% { opacity: 1; filter: blur(0); clip-path: inset(0); }
}
@keyframes man-radar-corner-lock {
  0% { opacity: 0; transform: scale(1.7); }
  100% { opacity: 1; transform: scale(1); }
}

/* 2. A terrain spine grows and dispatches three independent survey branches. */
.js [data-motion="man-terrain-branch"] .man-terrain-heading {
  animation: man-terrain-heading-set .8s ease-out both paused;
}
.js [data-motion="man-terrain-branch"] .man-terrain-photo {
  animation: man-terrain-photo-cut 1.05s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="man-terrain-branch"] .man-branch-map article {
  animation: man-terrain-branch-rise .68s cubic-bezier(.16,.78,.22,1) both paused;
  animation-delay: calc(.2s + var(--branch) * 135ms);
}
.js [data-motion="man-terrain-branch"] .man-branch-spine {
  animation: man-terrain-stem-grow 1.05s cubic-bezier(.2,.7,.22,1) .14s both paused;
  transform-origin: top;
}
.js [data-motion="man-terrain-branch"] .man-branch-map article > i {
  animation: man-terrain-probe-slide .85s cubic-bezier(.2,.72,.22,1) both paused;
  animation-delay: calc(.48s + var(--branch) * 135ms);
  transform-origin: left;
}
.js [data-motion="man-terrain-branch"] .man-branch-spine > span {
  animation: man-terrain-node-ping 1.7s ease-out infinite paused;
}
.js [data-motion="man-terrain-branch"] .man-branch-spine > span:nth-child(2) { animation-delay: .34s; }
.js [data-motion="man-terrain-branch"] .man-branch-spine > span:nth-child(3) { animation-delay: .68s; }

@keyframes man-terrain-heading-set {
  0% { opacity: 0; transform: translateY(var(--man-rise)); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes man-terrain-photo-cut {
  0% { opacity: 0; filter: saturate(.2); clip-path: polygon(0 0, 22% 0, 0 100%, 0 100%); }
  100% { opacity: 1; filter: none; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}
@keyframes man-terrain-branch-rise {
  0% { opacity: 0; transform: translateY(calc(var(--man-rise) * .65)); filter: blur(4px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes man-terrain-stem-grow {
  0% { opacity: .1; transform: scaleY(.03); }
  100% { opacity: 1; transform: scaleY(1); }
}
@keyframes man-terrain-probe-slide {
  0% { opacity: 0; transform: scaleX(.03); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes man-terrain-node-ping {
  0% { opacity: .25; transform: scale(.55); }
  55% { opacity: 1; }
  100% { opacity: .2; transform: scale(1.35); }
}

/* 3. A camera orbit closes around the frame while the shot list checks in. */
.js [data-motion="man-photo-orbit"] .man-photo-copy {
  animation: man-photo-copy-arc .92s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="man-photo-orbit"] .man-photo-frame {
  animation: man-photo-frame-iris 1.08s cubic-bezier(.18,.78,.22,1) .08s both paused;
}
.js [data-motion="man-photo-orbit"] .man-orbit {
  animation: man-photo-orbit-turn 8s linear .45s infinite paused;
  transform-origin: 50% 50%;
}
.js [data-motion="man-photo-orbit"] .man-orbit > span {
  animation: man-photo-marker-lock .74s cubic-bezier(.15,.74,.22,1.18) both paused;
}
.js [data-motion="man-photo-orbit"] .man-orbit > span:nth-child(2) { animation-delay: .1s; }
.js [data-motion="man-photo-orbit"] .man-orbit > span:nth-child(3) { animation-delay: .2s; }
.js [data-motion="man-photo-orbit"] .man-orbit > span:nth-child(4) { animation-delay: .3s; }
.js [data-motion="man-photo-orbit"] .man-orbit > span:nth-child(5) { animation-delay: .4s; }
.js [data-motion="man-photo-orbit"] .man-orbit > i {
  animation: man-photo-lens-blink 1.4s steps(2,end) infinite paused;
}
.js [data-motion="man-photo-orbit"] .man-shot-list > li {
  animation: man-photo-shot-check .6s ease-out both paused;
  animation-delay: calc(.18s + var(--shot) * 115ms);
}
.js [data-motion="man-photo-orbit"] .man-film-code > span {
  animation: man-photo-film-step 1.25s steps(2,end) infinite paused;
}
.js [data-motion="man-photo-orbit"] .man-film-code > span:nth-child(2n) { animation-delay: .16s; }
.js [data-motion="man-photo-orbit"] .man-film-code > span:nth-child(3n) { animation-delay: .32s; }

@keyframes man-photo-copy-arc {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -.7)); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes man-photo-frame-iris {
  0% { opacity: 0; filter: contrast(1.4) grayscale(.8); clip-path: circle(7% at 50% 50%); }
  100% { opacity: 1; filter: none; clip-path: circle(75% at 50% 50%); }
}
@keyframes man-photo-orbit-turn {
  0% { transform: translate(-50%,-50%) rotate(0deg); }
  100% { transform: translate(-50%,-50%) rotate(360deg); }
}
@keyframes man-photo-marker-lock {
  0% { opacity: 0; transform: scale(.2) rotate(-35deg); }
  72% { opacity: 1; transform: scale(1.16) rotate(4deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes man-photo-lens-blink {
  0%, 46% { opacity: .25; filter: brightness(.7); }
  47%, 100% { opacity: 1; filter: brightness(1.55); }
}
@keyframes man-photo-shot-check {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes man-photo-film-step {
  0%, 42% { opacity: .18; transform: scaleY(.35); }
  43%, 100% { opacity: .9; transform: scaleY(1); }
}

/* 4. Orthogonal laser axes map the clearance plane and confirm four cells. */
.js [data-motion="man-clearance-laser"] .man-clearance-photo {
  animation: man-clearance-photo-gate 1.02s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="man-clearance-laser"] .man-clearance-panel {
  animation: man-clearance-panel-dock .92s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="man-clearance-laser"] .man-clearance-grid > div {
  animation: man-clearance-cell-lock .62s steps(5,end) both paused;
}
.js [data-motion="man-clearance-laser"] .man-clearance-grid > div:nth-child(2) { animation-delay: .11s; }
.js [data-motion="man-clearance-laser"] .man-clearance-grid > div:nth-child(3) { animation-delay: .22s; }
.js [data-motion="man-clearance-laser"] .man-clearance-grid > div:nth-child(4) { animation-delay: .33s; }
.js [data-motion="man-clearance-laser"] .man-laser-grid {
  animation: man-clearance-grid-focus .88s ease-out .25s both paused;
}
.js [data-motion="man-clearance-laser"] .man-laser-grid > i:first-of-type {
  animation: man-clearance-axis-x .95s cubic-bezier(.18,.72,.22,1) .38s both paused;
  transform-origin: left;
}
.js [data-motion="man-clearance-laser"] .man-laser-grid > i:last-of-type {
  animation: man-clearance-axis-y .95s cubic-bezier(.18,.72,.22,1) .48s both paused;
  transform-origin: bottom;
}
.js [data-motion="man-clearance-laser"] .man-laser-grid > span {
  animation: man-clearance-laser-sweep 2.8s cubic-bezier(.45,.02,.3,1) infinite paused;
}
.js [data-motion="man-clearance-laser"] .man-laser-grid > span:nth-of-type(2) { animation-delay: 1.4s; }
.js [data-motion="man-clearance-laser"] .man-laser-grid > b {
  animation: man-clearance-target-ping 1.35s ease-out infinite paused;
}

@keyframes man-clearance-photo-gate {
  0% { opacity: 0; filter: brightness(.45); clip-path: inset(0 0 0 100%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes man-clearance-panel-dock {
  0% { opacity: 0; transform: translateX(var(--man-travel)); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes man-clearance-cell-lock {
  0% { opacity: 0; filter: grayscale(1) blur(4px); }
  100% { opacity: 1; filter: none; }
}
@keyframes man-clearance-grid-focus {
  0% { opacity: 0; filter: blur(9px); }
  100% { opacity: 1; filter: blur(0); }
}
@keyframes man-clearance-axis-x {
  0% { opacity: .15; transform: scaleX(.02); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes man-clearance-axis-y {
  0% { opacity: .15; transform: scaleY(.02); }
  100% { opacity: 1; transform: scaleY(1); }
}
@keyframes man-clearance-laser-sweep {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1.7)); }
  18%, 76% { opacity: .9; }
  100% { opacity: 0; transform: translateX(calc(var(--man-travel) * 1.7)); }
}
@keyframes man-clearance-target-ping {
  0% { opacity: .2; transform: scale(.55); }
  60% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.45); }
}

/* 5. Altitude layers rise from the ground plane while the ruler samples them. */
.js [data-motion="man-airspace-stack"] .man-airspace-heading > div {
  animation: man-airspace-heading-left .78s ease-out both paused;
}
.js [data-motion="man-airspace-stack"] .man-airspace-heading > p {
  animation: man-airspace-heading-right .78s ease-out .12s both paused;
}
.js [data-motion="man-airspace-stack"] .man-airspace-photo {
  animation: man-airspace-photo-lift 1s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="man-airspace-stack"] .man-altitude-scale > article {
  animation: man-airspace-level-stack .72s cubic-bezier(.16,.75,.22,1.08) both paused;
  animation-delay: calc(.18s + var(--level) * 145ms);
}
.js [data-motion="man-airspace-stack"] .man-altitude-ruler > i {
  animation: man-airspace-ruler-tick .54s steps(3,end) both paused;
}
.js [data-motion="man-airspace-stack"] .man-altitude-ruler > i:nth-child(2n) { animation-delay: .1s; }
.js [data-motion="man-airspace-stack"] .man-altitude-ruler > i:nth-child(3n) { animation-delay: .2s; }
.js [data-motion="man-airspace-stack"] .man-altitude-ruler {
  animation: man-airspace-ruler-scan 2.4s ease-in-out .5s infinite paused;
}

@keyframes man-airspace-heading-left {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1)); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes man-airspace-heading-right {
  0% { opacity: 0; transform: translateX(var(--man-travel)); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes man-airspace-photo-lift {
  0% { opacity: 0; filter: saturate(.25); clip-path: inset(100% 0 0 0); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes man-airspace-level-stack {
  0% { opacity: 0; transform: translateY(calc(var(--man-rise) * .8)); filter: blur(4px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes man-airspace-ruler-tick {
  0% { opacity: .12; transform: scaleX(.15); transform-origin: right; }
  100% { opacity: 1; transform: scaleX(1); transform-origin: right; }
}
@keyframes man-airspace-ruler-scan {
  0%, 100% { filter: brightness(.72); }
  48% { filter: brightness(1.45); }
}

/* 6. A signal board hands one packet across three roles and onto the route. */
.js [data-motion="man-signal-handoff"] .man-handoff-photo {
  animation: man-handoff-photo-tune 1.02s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="man-signal-handoff"] .man-handoff-copy {
  animation: man-handoff-copy-receive .88s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="man-signal-handoff"] .man-role-lines > article {
  animation: man-handoff-role-relay .68s cubic-bezier(.18,.74,.22,1) both paused;
  animation-delay: calc(.22s + var(--role) * 145ms);
}
.js [data-motion="man-signal-handoff"] .man-signal-board {
  animation: man-handoff-board-wake .72s steps(5,end) .28s both paused;
}
.js [data-motion="man-signal-handoff"] .man-signal-board > span {
  animation: man-handoff-board-wave 2s ease-out infinite paused;
  transform-origin: center;
}
.js [data-motion="man-signal-handoff"] .man-signal-board > i {
  animation: man-handoff-board-dot 1.15s steps(2,end) infinite paused;
}
.js [data-motion="man-signal-handoff"] .man-signal-board > i:nth-of-type(2) { animation-delay: .22s; }
.js [data-motion="man-signal-handoff"] .man-signal-board > i:nth-of-type(3) { animation-delay: .44s; }
.js [data-motion="man-signal-handoff"] .man-signal-route > span {
  animation: man-handoff-route-trace 1.18s cubic-bezier(.18,.72,.22,1) .42s both paused;
  transform-origin: left;
}
.js [data-motion="man-signal-handoff"] .man-signal-route > i {
  animation: man-handoff-packet-travel 2.8s cubic-bezier(.42,.02,.28,1) .55s infinite paused;
}
.js [data-motion="man-signal-handoff"] .man-signal-route > b,
.js [data-motion="man-signal-handoff"] .man-signal-board > b {
  animation: man-handoff-beacon 1.4s ease-out infinite paused;
}

@keyframes man-handoff-photo-tune {
  0% { opacity: 0; filter: grayscale(1) contrast(1.55); clip-path: inset(0 50%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes man-handoff-copy-receive {
  0% { opacity: 0; transform: translateX(var(--man-travel)); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes man-handoff-role-relay {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); filter: blur(3px); }
  100% { opacity: 1; clip-path: inset(0); filter: blur(0); }
}
@keyframes man-handoff-board-wake {
  0% { opacity: 0; filter: brightness(.35) blur(5px); }
  100% { opacity: 1; filter: brightness(1) blur(0); }
}
@keyframes man-handoff-board-wave {
  0% { opacity: .15; transform: scale(.45); }
  70% { opacity: .8; }
  100% { opacity: 0; transform: scale(1.22); }
}
@keyframes man-handoff-board-dot {
  0%, 44% { opacity: .2; filter: brightness(.65); }
  45%, 100% { opacity: 1; filter: brightness(1.55); }
}
@keyframes man-handoff-route-trace {
  0% { opacity: .15; transform: scaleX(.02); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes man-handoff-packet-travel {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1.5)) scale(.7); }
  16%, 82% { opacity: 1; }
  100% { opacity: 0; transform: translateX(calc(var(--man-travel) * 1.5)) scale(1); }
}
@keyframes man-handoff-beacon {
  0% { opacity: .25; transform: scale(.55); }
  64% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.35); }
}

/* 7. Rigging lines draw taut, anchor, and lock each inspection step. */
.js [data-motion="man-rigging-tension"] .man-rigging-heading {
  animation: man-rigging-heading-set .82s ease-out both paused;
}
.js [data-motion="man-rigging-tension"] .man-rigging-sequence > article {
  animation: man-rigging-step-ratchet .68s cubic-bezier(.15,.72,.22,1.08) both paused;
  animation-delay: calc(.12s + var(--rig) * 125ms);
}
.js [data-motion="man-rigging-tension"] .man-rigging-sequence article > i {
  animation: man-rigging-step-pin .62s steps(4,end) both paused;
  animation-delay: calc(.48s + var(--rig) * 125ms);
}
.js [data-motion="man-rigging-tension"] .man-rigging-photo {
  animation: man-rigging-photo-clamp 1s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="man-rigging-tension"] .man-tension-lines > span {
  animation: man-rigging-line-tension 1.08s cubic-bezier(.3,.02,.24,1) both paused;
  transform-origin: center top;
}
.js [data-motion="man-rigging-tension"] .man-tension-lines > span:nth-child(1) { --man-line-angle: -11deg; }
.js [data-motion="man-rigging-tension"] .man-tension-lines > span:nth-child(2) { --man-line-angle: -4deg; animation-delay: .12s; }
.js [data-motion="man-rigging-tension"] .man-tension-lines > span:nth-child(3) { --man-line-angle: 4deg; animation-delay: .24s; }
.js [data-motion="man-rigging-tension"] .man-tension-lines > span:nth-child(4) { --man-line-angle: 11deg; animation-delay: .36s; }
.js [data-motion="man-rigging-tension"] .man-tension-lines > i {
  animation: man-rigging-anchor-lock .7s cubic-bezier(.15,.72,.22,1.18) .56s both paused;
}
.js [data-motion="man-rigging-tension"] .man-tension-lines {
  animation: man-rigging-knot-pulse 2.2s ease-in-out 1.15s infinite paused;
}

@keyframes man-rigging-heading-set {
  0% { opacity: 0; filter: blur(5px); clip-path: inset(0 0 100% 0); }
  100% { opacity: 1; filter: blur(0); clip-path: inset(0); }
}
@keyframes man-rigging-step-ratchet {
  0% { opacity: 0; transform: translateY(calc(var(--man-rise) * .7)); }
  66% { opacity: 1; transform: translateY(-3px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes man-rigging-step-pin {
  0% { opacity: .12; transform: scaleY(.1); transform-origin: top; }
  100% { opacity: 1; transform: scaleY(1); transform-origin: top; }
}
@keyframes man-rigging-photo-clamp {
  0% { opacity: 0; filter: contrast(1.45); clip-path: polygon(0 0, 48% 0, 48% 100%, 0 100%); }
  100% { opacity: 1; filter: none; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}
@keyframes man-rigging-line-tension {
  0% { opacity: .15; transform: rotate(var(--man-line-angle)) scaleY(.08); }
  68% { opacity: 1; transform: rotate(var(--man-line-angle)) scaleY(1.04); }
  100% { opacity: 1; transform: rotate(var(--man-line-angle)) scaleY(1); }
}
@keyframes man-rigging-anchor-lock {
  0% { opacity: 0; transform: scale(1.8) rotate(28deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes man-rigging-knot-pulse {
  0%, 100% { filter: brightness(.82); }
  50% { filter: brightness(1.3); }
}

/* 8. A plotter feeds the quote sheet, draws its rail, then stamps the result. */
.js [data-motion="man-quote-plotter"] .man-quote-photo {
  animation: man-quote-photo-expose 1.05s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="man-quote-plotter"] .man-quote-sheet {
  animation: man-quote-sheet-feed .94s cubic-bezier(.17,.78,.22,1) .08s both paused;
}
.js [data-motion="man-quote-plotter"] .man-quote-inputs > div {
  animation: man-quote-row-plot .58s steps(5,end) both paused;
}
.js [data-motion="man-quote-plotter"] .man-quote-inputs > div:nth-child(2) { animation-delay: .1s; }
.js [data-motion="man-quote-plotter"] .man-quote-inputs > div:nth-child(3) { animation-delay: .2s; }
.js [data-motion="man-quote-plotter"] .man-quote-inputs > div:nth-child(4) { animation-delay: .3s; }
.js [data-motion="man-quote-plotter"] .man-plotter > span {
  animation: man-quote-rail-draw 1.1s cubic-bezier(.18,.72,.22,1) .35s both paused;
  transform-origin: left;
}
.js [data-motion="man-quote-plotter"] .man-plotter > i {
  animation: man-quote-pen-travel 2.65s cubic-bezier(.42,.02,.28,1) .58s infinite paused;
}
.js [data-motion="man-quote-plotter"] .man-plotter > i:nth-of-type(2) { animation-delay: .86s; }
.js [data-motion="man-quote-plotter"] .man-plotter > i:nth-of-type(3) { animation-delay: 1.14s; }
.js [data-motion="man-quote-plotter"] .man-plotter > b {
  animation: man-quote-seal-stamp 1.55s steps(3,end) 1s infinite paused;
}

@keyframes man-quote-photo-expose {
  0% { opacity: 0; filter: grayscale(1) brightness(.6); clip-path: inset(100% 0 0); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes man-quote-sheet-feed {
  0% { opacity: 0; transform: translateY(calc(var(--man-rise) * -1)); filter: blur(5px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes man-quote-row-plot {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes man-quote-rail-draw {
  0% { opacity: .12; transform: scaleX(.02); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes man-quote-pen-travel {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1.4)) translateY(8px); }
  18%, 78% { opacity: 1; }
  100% { opacity: 0; transform: translateX(calc(var(--man-travel) * 1.4)) translateY(-8px); }
}
@keyframes man-quote-seal-stamp {
  0%, 44% { opacity: .25; transform: scale(1.25); filter: brightness(.7); }
  45%, 100% { opacity: 1; transform: scale(1); filter: brightness(1.4); }
}

/* 9. The FAQ dial indexes each channel while a frequency bank responds. */
.js [data-motion="man-faq-dial"] .man-faq-copy {
  animation: man-faq-copy-tune .88s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="man-faq-dial"] .man-faq-list > details {
  animation: man-faq-item-tune .55s ease-out both paused;
}
.js [data-motion="man-faq-dial"] .man-faq-list > details:nth-child(2) { animation-delay: .07s; }
.js [data-motion="man-faq-dial"] .man-faq-list > details:nth-child(3) { animation-delay: .14s; }
.js [data-motion="man-faq-dial"] .man-faq-list > details:nth-child(4) { animation-delay: .21s; }
.js [data-motion="man-faq-dial"] .man-faq-list > details:nth-child(5) { animation-delay: .28s; }
.js [data-motion="man-faq-dial"] .man-faq-list > details:nth-child(6) { animation-delay: .35s; }
.js [data-motion="man-faq-dial"] .man-faq-photo {
  animation: man-faq-photo-aperture 1.08s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="man-faq-dial"] .man-dial {
  animation: man-faq-dial-turn 5.8s cubic-bezier(.42,.02,.28,1) .4s infinite paused;
  transform-origin: 50% 50%;
}
.js [data-motion="man-faq-dial"] .man-dial > span {
  animation: man-faq-dial-ring 1.9s ease-out infinite paused;
  transform-origin: 50% 50%;
}
.js [data-motion="man-faq-dial"] .man-dial > i {
  animation: man-faq-dial-tick 1.25s steps(2,end) infinite paused;
}
.js [data-motion="man-faq-dial"] .man-dial > i:nth-of-type(2n) { animation-delay: .2s; }
.js [data-motion="man-faq-dial"] .man-dial > i:nth-of-type(3n) { animation-delay: .4s; }
.js [data-motion="man-faq-dial"] .man-dial > b {
  animation: man-faq-dial-beacon 1.4s ease-out infinite paused;
}
.js [data-motion="man-faq-dial"] .man-frequency > span {
  animation: man-faq-frequency-rise .92s ease-in-out infinite alternate paused;
  transform-origin: bottom;
}
.js [data-motion="man-faq-dial"] .man-frequency > span:nth-child(2n) { animation-delay: .13s; }
.js [data-motion="man-faq-dial"] .man-frequency > span:nth-child(3n) { animation-delay: .26s; }

@keyframes man-faq-copy-tune {
  0% { opacity: 0; filter: blur(6px); transform: translateX(calc(var(--man-travel) * -1)); }
  100% { opacity: 1; filter: blur(0); transform: translateX(0); }
}
@keyframes man-faq-item-tune {
  0% { opacity: 0; clip-path: inset(0 0 100% 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes man-faq-photo-aperture {
  0% { opacity: 0; filter: contrast(1.5) grayscale(.7); clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%); }
  100% { opacity: 1; filter: none; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}
@keyframes man-faq-dial-turn {
  0% { transform: translateX(-50%) rotate(-42deg); }
  42% { transform: translateX(-50%) rotate(125deg); }
  72% { transform: translateX(-50%) rotate(88deg); }
  100% { transform: translateX(-50%) rotate(318deg); }
}
@keyframes man-faq-dial-ring {
  0% { opacity: .2; transform: scale(.6); }
  62% { opacity: .9; }
  100% { opacity: 0; transform: scale(1.18); }
}
@keyframes man-faq-dial-tick {
  0%, 44% { opacity: .2; filter: brightness(.7); }
  45%, 100% { opacity: 1; filter: brightness(1.5); }
}
@keyframes man-faq-dial-beacon {
  0% { opacity: .3; transform: rotate(-35deg) scale(.6); }
  58% { opacity: 1; }
  100% { opacity: 0; transform: rotate(-35deg) scale(1.4); }
}
@keyframes man-faq-frequency-rise {
  0% { opacity: .35; transform: scaleY(.18); }
  100% { opacity: 1; transform: scaleY(1); }
}

/* 10. Night vectors trace the approved route and carry one moving waypoint. */
.js [data-motion="man-night-vector"] .man-contact-photo img {
  animation: man-night-photo-pan 9s ease-in-out infinite alternate paused;
}
.js [data-motion="man-night-vector"] .man-contact-console {
  animation: man-night-console-rise .96s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="man-night-vector"] .man-final-links > a {
  animation: man-night-link-lock .55s ease-out both paused;
}
.js [data-motion="man-night-vector"] .man-final-links > a:nth-child(2) { animation-delay: .08s; }
.js [data-motion="man-night-vector"] .man-final-links > a:nth-child(3) { animation-delay: .16s; }
.js [data-motion="man-night-vector"] .man-final-links > a:nth-child(4) { animation-delay: .24s; }
.js [data-motion="man-night-vector"] .man-vector-code > span {
  animation: man-night-code-pulse 1.2s steps(2,end) infinite paused;
}
.js [data-motion="man-night-vector"] .man-vector-code > span:nth-child(2n) { animation-delay: .15s; }
.js [data-motion="man-night-vector"] .man-vector-code > span:nth-child(3n) { animation-delay: .3s; }
.js [data-motion="man-night-vector"] .man-night-route > span {
  animation: man-night-route-trace 1.35s cubic-bezier(.18,.72,.22,1) .32s both paused;
  transform-origin: left;
}
.js [data-motion="man-night-vector"] .man-night-route > i {
  animation: man-night-waypoint 1.45s ease-out infinite paused;
}
.js [data-motion="man-night-vector"] .man-night-route > i:nth-of-type(2) { animation-delay: .34s; }
.js [data-motion="man-night-vector"] .man-night-route > i:nth-of-type(3) { animation-delay: .68s; }
.js [data-motion="man-night-vector"] .man-night-route > b {
  animation: man-night-vehicle-travel 4s cubic-bezier(.42,.02,.28,1) .72s infinite paused;
}
.js [data-motion="man-night-vector"] .man-night-pulse {
  animation: man-night-field-pulse 3.2s ease-out infinite paused;
}

@keyframes man-night-photo-pan {
  0% { transform: scale(1.01) translateX(0); filter: saturate(.86) brightness(.86); }
  100% { transform: scale(1.055) translateX(-1.2%); filter: saturate(1.08) brightness(.98); }
}
@keyframes man-night-console-rise {
  0% { opacity: 0; transform: translateY(var(--man-rise)); filter: blur(5px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes man-night-link-lock {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes man-night-code-pulse {
  0%, 42% { opacity: .16; transform: scaleY(.22); }
  43%, 100% { opacity: .9; transform: scaleY(1); }
}
@keyframes man-night-route-trace {
  0% { opacity: .15; transform: scaleX(.02); }
  100% { opacity: 1; transform: scaleX(1); }
}
@keyframes man-night-waypoint {
  0% { opacity: .2; transform: scale(.5); }
  62% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.45); }
}
@keyframes man-night-vehicle-travel {
  0% { opacity: 0; transform: translateX(calc(var(--man-travel) * -1.8)) rotate(-5deg); }
  14%, 84% { opacity: 1; }
  100% { opacity: 0; transform: translateX(calc(var(--man-travel) * 1.8)) rotate(3deg); }
}
@keyframes man-night-field-pulse {
  0% { opacity: 0; transform: scale(.72); filter: blur(7px); }
  45% { opacity: .7; }
  100% { opacity: 0; transform: scale(1.18); filter: blur(1px); }
}

.js [data-motion^="man-"].is-motion-active,
.js [data-motion^="man-"].is-motion-active *,
.js [data-motion^="man-"].is-motion-active *::before,
.js [data-motion^="man-"].is-motion-active *::after {
  animation-play-state: running;
}

@media (max-width: 1080px) {
  [data-motion^="man-"] {
    --man-travel: 34px;
    --man-rise: 25px;
    --man-angle: 9deg;
  }

  .js [data-motion="man-photo-orbit"] .man-orbit { animation-duration: 9s; }
  .js [data-motion="man-faq-dial"] .man-dial { animation-duration: 6.5s; }
}

@media (max-width: 840px) {
  [data-motion^="man-"] {
    --man-travel: 26px;
    --man-rise: 20px;
    --man-angle: 7deg;
  }

  .js [data-motion="man-radar-sweep"] .man-radar > span,
  .js [data-motion="man-photo-orbit"] .man-orbit,
  .js [data-motion="man-faq-dial"] .man-dial { animation-duration: 7.5s; }

  .js [data-motion="man-clearance-laser"] .man-laser-grid > span,
  .js [data-motion="man-signal-handoff"] .man-signal-route > i,
  .js [data-motion="man-night-vector"] .man-night-route > b { animation-duration: 3.4s; }
}

@media (max-width: 560px) {
  [data-motion^="man-"] {
    --man-travel: 18px;
    --man-rise: 15px;
    --man-angle: 5deg;
  }

  .js [data-motion="man-terrain-branch"] .man-branch-map article,
  .js [data-motion="man-photo-orbit"] .man-shot-list > li,
  .js [data-motion="man-airspace-stack"] .man-altitude-scale > article,
  .js [data-motion="man-rigging-tension"] .man-rigging-sequence > article { animation-duration: .52s; }

  .js [data-motion="man-night-vector"] .man-contact-photo img { animation-duration: 11s; }
}

@media (max-width: 380px) {
  [data-motion^="man-"] {
    --man-travel: 12px;
    --man-rise: 10px;
    --man-angle: 3deg;
  }

  .js [data-motion="man-radar-sweep"] .man-hero-copy,
  .js [data-motion="man-clearance-laser"] .man-clearance-panel,
  .js [data-motion="man-signal-handoff"] .man-handoff-copy,
  .js [data-motion="man-night-vector"] .man-contact-console { animation-duration: .72s; }
}

@media (prefers-reduced-motion: reduce) {
  [data-motion^="man-"],
  [data-motion^="man-"] *,
  [data-motion^="man-"] *::before,
  [data-motion^="man-"] *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
