/* Internal-element animation concept. No background motion, raster wobble or page-wide scan. */
.approved-home.capabilities-page .cap-live-art {
  display: block;
  width: 100%;
  height: auto;
  max-height: 475px;
  margin-inline: auto;
  overflow: hidden;
  color: #153247;
  font-family: Inter, Arial, sans-serif;
  shape-rendering: geometricPrecision;
}
.approved-home.capabilities-page .cap-overview-art .cap-live-art {
  max-height: 465px;
}
.approved-home.capabilities-page .cap-connection-art .cap-live-art {
  max-height: 570px;
}
.approved-home.capabilities-page .diagram-label {
  fill: #153247;
  font-weight: 550;
  letter-spacing: -0.02em;
}
.approved-home.capabilities-page .diagram-white {
  fill: #fff;
  font-weight: 450;
}
.approved-home.capabilities-page .diagram-flow {
  animation: cap-path-flow 3s linear infinite;
}
.approved-home.capabilities-page .diagram-platform-circuit {
  animation: cap-path-flow 3s linear infinite;
}
.approved-home.capabilities-page .diagram-gear {
  transform-box: fill-box;
  transform-origin: center;
  animation: cap-gear-turn 12s linear infinite;
}
.approved-home.capabilities-page .diagram-bar {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: cap-bars 3.6s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-rotor {
  transform-box: fill-box;
  transform-origin: center;
  animation: cap-gear-turn 15s linear infinite;
}
.approved-home.capabilities-page .diagram-source-ring {
  transform-box: fill-box;
  transform-origin: center;
  animation: cap-gear-turn 18s linear infinite;
}
.approved-home.capabilities-page .diagram-core-ring {
  transform-box: fill-box;
  transform-origin: center;
  animation: cap-core-ring 3.4s ease-out infinite;
}
.approved-home.capabilities-page .diagram-core-light {
  animation: cap-core-light 3s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-node-active {
  animation: cap-node-activity 6s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-node-status {
  animation: cap-node-status 6s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-plane-sweep {
  animation: cap-plane-read 4.5s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-check {
  stroke-dasharray: 40;
  stroke-dashoffset: 0;
  animation: cap-approval 6s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-db-activity {
  stroke: #12a8bb;
  animation: cap-core-light 3s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-document-lines {
  animation: cap-core-light 3s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-shield-core {
  fill: #128fa3;
  animation: cap-core-light 3s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-handoff-left {
  animation: cap-handoff 4s ease-in-out infinite;
}
.approved-home.capabilities-page .diagram-handoff-right {
  animation: cap-handoff 4s ease-in-out infinite reverse;
}
.approved-home.capabilities-page .diagram-orbit {
  animation: cap-orbit 8s linear infinite;
}
.approved-home.capabilities-page .cap-live-art * {
  animation-play-state: paused;
}
.approved-home.capabilities-page .cap-live-art[data-running="true"] * {
  animation-play-state: running;
}
.approved-home.capabilities-page
  .cap-live-art[data-running="false"]
  .diagram-packet {
  visibility: hidden;
}

@keyframes cap-path-flow {
  to {
    stroke-dashoffset: -180;
  }
}
@keyframes cap-gear-turn {
  to {
    transform: rotate(360deg);
  }
}
@keyframes cap-orbit {
  to {
    stroke-dashoffset: -568;
  }
}
@keyframes cap-bars {
  0%,
  100% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(0.56);
  }
}
@keyframes cap-core-ring {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.4;
  }
  65% {
    transform: scale(1.12);
    opacity: 0.85;
  }
}
@keyframes cap-core-light {
  0%,
  100% {
    opacity: 0.55;
  }
  50% {
    opacity: 1;
  }
}
@keyframes cap-node-activity {
  0%,
  52%,
  100% {
    opacity: 0.08;
  }
  68%,
  82% {
    opacity: 0.85;
  }
}
@keyframes cap-node-status {
  0%,
  40%,
  100% {
    opacity: 0.35;
  }
  62%,
  82% {
    opacity: 1;
  }
}
@keyframes cap-plane-read {
  0%,
  100% {
    transform: translateY(0);
    opacity: 0.1;
  }
  50% {
    transform: translateY(170px);
    opacity: 0.8;
  }
}
@keyframes cap-approval {
  0%,
  20%,
  100% {
    stroke-dashoffset: 40;
  }
  40%,
  88% {
    stroke-dashoffset: 0;
  }
}
@keyframes cap-handoff {
  0%,
  100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(5px);
  }
}

@media (max-width: 850px) {
  .approved-home.capabilities-page .cap-art .cap-live-art {
    max-height: none;
    width: min(100%, 690px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .approved-home.capabilities-page .cap-live-art * {
    animation: none !important;
  }
  .approved-home.capabilities-page .diagram-packet {
    visibility: hidden;
  }
}

/* Selective technology stages: keep the surrounding page and its typography light. */
.approved-home.capabilities-page .cap-stage-dark {
  padding: 18px;
  border: 1px solid #24495b;
  border-radius: 16px;
  background:
    radial-gradient(ellipse at 58% 45%, #153c4b 0%, transparent 67%),
    linear-gradient(135deg, #0d293b, #071b2a 75%);
  box-shadow:
    0 16px 36px #12334714,
    inset 0 1px 0 #8be5ed12;
}
.approved-home.capabilities-page .cap-stage-dark .cap-live-art {
  color: #b8eaf0;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-label {
  fill: #e7f6fa;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-white {
  fill: #fff;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-flow {
  stroke: #67d9df;
}
.approved-home.capabilities-page
  .cap-stage-dark
  .diagram-packet
  > circle:first-child {
  fill: #6be3ec;
  opacity: 0.2;
}
.approved-home.capabilities-page
  .cap-stage-dark
  .diagram-packet
  > circle:last-child {
  fill: #a4fbf6;
  stroke: #e6ffff;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-node-active {
  stroke: #60d4de;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-core-light {
  fill: #d0ffff;
}
.approved-home.capabilities-page .cap-stage-dark .diagram-node-status {
  fill: #87e9ec;
}
@media (max-width: 600px) {
  .approved-home.capabilities-page .cap-stage-dark {
    padding: 10px;
    border-radius: 12px;
  }
}

/* A single story step determines which connections carry activity. */
.approved-home.capabilities-page .story-link .diagram-packet,
.approved-home.capabilities-page .story-feed .diagram-packet {
  visibility: hidden;
}
.approved-home.capabilities-page
  .cap-live-art[data-running="true"]
  .story-link[data-active="true"]
  .diagram-packet,
.approved-home.capabilities-page
  .cap-live-art[data-running="true"]
  .story-feed[data-active="true"]
  .diagram-packet {
  visibility: visible;
}
.approved-home.capabilities-page .story-link .diagram-flow {
  opacity: 0.08;
}
.approved-home.capabilities-page .story-link[data-active="true"] .diagram-flow {
  opacity: 1;
}
.approved-home.capabilities-page
  .story-link[data-exception="true"]
  .diagram-flow {
  stroke: #bb7917;
}
.approved-home.capabilities-page
  .story-link[data-exception="true"]
  .diagram-packet
  > circle:last-child {
  fill: #e4a442;
  stroke: #fff3dc;
}
.approved-home.capabilities-page
  .story-link[data-exception="true"]
  .diagram-packet
  > circle:first-child {
  fill: #f0bd68;
}
.approved-home.capabilities-page .story-node .diagram-node-active,
.approved-home.capabilities-page .story-node .diagram-node-status {
  animation: none;
  opacity: 0.12;
  transition:
    opacity 0.35s ease,
    stroke 0.35s ease;
}
.approved-home.capabilities-page
  .story-node[data-state="active"]
  .diagram-node-active {
  opacity: 1;
}
.approved-home.capabilities-page
  .story-node[data-state="complete"]
  .diagram-node-status {
  opacity: 1;
}
.approved-home.capabilities-page
  .story-node[data-state="exception"]
  .diagram-node-active {
  opacity: 1;
  stroke: #c48b35;
}
.approved-home.capabilities-page .story-node .diagram-check {
  animation: none;
  stroke-dashoffset: 0;
}
.approved-home.capabilities-page
  .story-node[data-state="pending"]
  .diagram-check {
  opacity: 0.2;
}
.approved-home.capabilities-page
  .story-node:not([data-state="active"])
  .diagram-gear,
.approved-home.capabilities-page .story-feed[data-active="false"] .diagram-gear,
.approved-home.capabilities-page .story-feed[data-active="false"] .diagram-bar,
.approved-home.capabilities-page
  .story-feed[data-active="false"]
  .diagram-source-ring,
.approved-home.capabilities-page
  .story-capability[data-selected="false"]
  .diagram-gear,
.approved-home.capabilities-page
  .story-capability[data-selected="false"]
  .diagram-bar,
.approved-home.capabilities-page
  .story-capability[data-selected="false"]
  .diagram-orbit,
.approved-home.capabilities-page
  .diagram-platform[data-active="false"]
  .diagram-platform-circuit {
  animation-play-state: paused;
}
.approved-home.capabilities-page
  .story-capability[data-selected="false"]
  .diagram-orbit {
  opacity: 0.15;
}
.approved-home.capabilities-page
  .story-feed[data-active="false"]
  .diagram-flow {
  opacity: 0.12;
}
.approved-home.capabilities-page .story-routine[data-filtered="true"] > circle,
.approved-home.capabilities-page
  .story-routine[data-filtered="true"]
  .story-link {
  opacity: 0.22;
}
.approved-home.capabilities-page .story-exception[data-visible="false"],
.approved-home.capabilities-page .story-hidden {
  visibility: hidden;
}
.approved-home.capabilities-page .story-gate-open {
  opacity: 0;
  transition: opacity 0.25s ease;
}
.approved-home.capabilities-page
  .story-gate[data-released="true"]
  .story-gate-open {
  opacity: 1;
}
.approved-home.capabilities-page
  .story-gate[data-released="true"]
  .story-gate-closed {
  opacity: 0;
}
.approved-home.capabilities-page
  .story-outcome[data-complete="false"]
  > circle {
  opacity: 0.24;
  animation-play-state: paused;
}
.approved-home.capabilities-page
  .story-priority-panel[data-complete="false"]
  > rect {
  opacity: 0.45;
}
.approved-home.capabilities-page .cap-story-caption {
  min-height: 80px;
  border-top: 1px solid #c6dde3;
  margin-top: 7px;
  padding-top: 12px;
}
.approved-home.capabilities-page .cap-story-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #52717c;
  font:
    600 9px/1.4 Inter,
    Arial,
    sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.approved-home.capabilities-page .cap-story-caption p {
  margin: 8px 0 10px;
  color: #24495b;
  font:
    500 13px/1.45 Inter,
    Arial,
    sans-serif;
}
.approved-home.capabilities-page .cap-story-progress {
  display: flex;
  gap: 5px;
}
.approved-home.capabilities-page .cap-story-progress span {
  flex: 1;
  height: 2px;
  background: #d6e5e9;
}
.approved-home.capabilities-page .cap-story-progress span[data-current="true"] {
  background: #097f91;
}
.approved-home.capabilities-page
  .cap-story-progress
  span[data-complete="true"] {
  background: #8cc6cc;
}
.approved-home.capabilities-page .cap-stage-dark .cap-story-caption {
  border-color: #335565;
}
.approved-home.capabilities-page .cap-stage-dark .cap-story-meta {
  color: #a2c6d0;
}
.approved-home.capabilities-page .cap-stage-dark .cap-story-caption p {
  color: #e2f3f7;
}
.approved-home.capabilities-page .cap-stage-dark .cap-story-progress span {
  background: #294b5c;
}
.approved-home.capabilities-page
  .cap-stage-dark
  .cap-story-progress
  span[data-current="true"] {
  background: #83e5e3;
}
.approved-home.capabilities-page
  .cap-stage-dark
  .cap-story-progress
  span[data-complete="true"] {
  background: #407983;
}
@media (max-width: 600px) {
  .approved-home.capabilities-page .cap-story-caption {
    min-height: 98px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .approved-home.capabilities-page .cap-live-art .diagram-packet {
    visibility: hidden !important;
  }
  .approved-home.capabilities-page .cap-live-art * {
    transition: none !important;
  }
}

/* Fit the complete artwork and its caption into a short laptop browser window.
   SVG meet-scaling preserves all content; no cover/crop or fixed-height clipping. */
.approved-home.capabilities-page .cap-art .cap-live-art {
  max-height: min(440px, calc(100svh - 250px));
}
.approved-home.capabilities-page .cap-art {
  scroll-margin-block: 0 12px;
}
@media (min-width: 851px) and (max-height: 760px) {
  .approved-home.capabilities-page .cap-hero {
    padding-block: 32px;
  }
  .approved-home.capabilities-page .cap-band {
    padding-block: 26px;
  }
  .approved-home.capabilities-page .cap-stage-dark {
    padding: 14px;
  }
  .approved-home.capabilities-page .cap-story-caption {
    min-height: 72px;
    padding-top: 10px;
  }
}

/* Light figures have no dark-stage padding; allocate that saved space to artwork. */
.approved-home.capabilities-page .cap-art .cap-live-art[data-tone="light"] {
  max-height: min(440px, calc(100svh - 215px));
}
