/* Shared SVG language for service, industry, and editorial illustrations. */
.system-illustration {
  margin: 0 0 26px;
  overflow: hidden;
  border: 1px solid #2c3830;
  background-color: #111111;
  background-image: radial-gradient(ellipse at 76% 12%, #4242424d, transparent 65%), linear-gradient(#ffffff05 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px);
  background-size: 100% 100%, 28px 28px, 28px 28px;
}
.system-illustration svg { display: block; width: 100%; height: auto; aspect-ratio: 320 / 196; }
.system-illustration text { fill: #b2bfb5; font: 500 9px var(--sans); letter-spacing: .25px; text-anchor: middle; }
.system-illustration .si-kicker { fill: #9d9d9d; font-size: 8px; letter-spacing: 1.5px; text-anchor: start; }
.system-illustration .si-label { fill: #edf3ed; font-weight: 600; font-size: 10px; }
.system-illustration .si-dark { fill: #2d2d2d; }
.system-illustration .si-panel { fill: #1b1b1b; stroke: #6b6b6b; stroke-width: 1; }
.system-illustration .si-core { fill: #e7f0e5; stroke: #e7f0e5; stroke-width: 1; }
.system-illustration .si-soft { fill: #363636; }
.system-illustration .si-accent { fill: #fff200; }
.system-illustration .si-wire { fill: none; stroke: #7f7f7f; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.system-illustration .si-grid { fill: none; stroke: #393939; stroke-width: 1; }
.system-illustration .si-line { fill: none; stroke: #fff200; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.system-illustration .si-flow { fill: none; stroke: #fff200; stroke-width: 2; stroke-dasharray: 6 14; }
.system-illustration .si-check { fill: none; stroke: #fff200; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.system-illustration .si-core-check { stroke: #494949; }
.system-illustration .si-outline { fill: none; stroke: #fff200; stroke-width: 1; stroke-dasharray: 3 5; }
.system-illustration .si-dot { fill: #fff200; }
.system-illustration .si-rise { transform-box: fill-box; transform-origin: center bottom; }
.system-illustration .si-arrive { transform-box: fill-box; transform-origin: center; }
.system-illustration.motion-in-view .si-flow { animation: system-flow 4s linear both; }
.system-illustration.motion-in-view .si-draw { stroke-dasharray: 420; animation: system-draw 2.4s .15s ease both; }
.system-illustration.motion-in-view .si-rise { animation: system-rise 1.4s .15s cubic-bezier(.2,.7,.2,1) both; }
.system-illustration.motion-in-view .si-arrive { animation: system-arrive 1s .2s ease both; }
.system-illustration.motion-in-view .si-dot { animation: system-signal 1.3s 3 ease-in-out; }
.system-illustration .si-delay { animation-delay: .45s !important; }
.system-illustration .si-delay-more { animation-delay: .8s !important; }
.service-deliverables article::before, .service-deliverables article::after { display: none; content: none; }
.industry-capability-card .system-illustration { width: 100%; margin-bottom: 28px; }
.industry-capability-card { min-width: 0; }
.industry-capability-card > span { color: #616161; }
.delivery-steps .system-illustration { margin-bottom: 24px; }
.delivery-steps:has(.system-illustration) h3 { margin-top: 20px; }
.article-body .article-diagram { margin: 36px 0 44px; }
.article-diagram .system-illustration { margin: 0; }
.article-diagram .system-illustration svg { max-height: 340px; }
.article-diagram figcaption { padding: 16px 0 0; font-size: 13px; line-height: 1.65; color: #5c665e; }
.article-diagram figcaption strong { display: block; color: #353535; font-weight: 650; margin-bottom: 4px; }
.illustration-replay { display: none; margin: 18px 0 0 auto; padding: 9px 12px; border: 1px solid #6c7a6d; background: transparent; color: inherit; font: 600 11px/1.5 var(--sans); cursor: pointer; }
.illustration-replay.is-available { display: block; }
.illustration-replay:hover { background: #a4a4a420; }
.illustration-replay:focus-visible { outline: 2px solid #898989; outline-offset: 4px; }
.illustrations-paused *, .illustrations-paused *::before, .illustrations-paused *::after { animation-play-state: paused !important; }
@keyframes system-flow { from { stroke-dashoffset: 80; } to { stroke-dashoffset: 0; } }
@keyframes system-draw { from { stroke-dashoffset: 420; } to { stroke-dashoffset: 0; } }
@keyframes system-rise { from { transform: scaleY(.2); opacity: .35; } to { transform: scaleY(1); opacity: 1; } }
@keyframes system-arrive { from { transform: translateY(8px); opacity: .2; } to { transform: translateY(0); opacity: 1; } }
@keyframes system-signal { 50% { opacity: .35; } }
@media (max-width: 1100px) and (min-width: 701px) {
  .service-deliverables { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .industry-capability-card { padding: 22px; }
}
@media (max-width: 1100px) and (min-width: 801px) {
  .industry-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .system-illustration *, .it-consulting-illustration *, .pm-illustration *, .service-visual *, .platform-visual * { animation: none !important; transition: none !important; stroke-dashoffset: 0 !important; }
  .illustration-replay.is-available { display: none; }
}
