/* Software follows Network's page rhythm and card proportions. */
@media (min-width: 901px) {
  #main > .hero { padding-top: clamp(5px, .875vh, 10px); }
}
.software-service-grid { margin-top: 38px; }
.software-service-card { scroll-margin-top: 100px; }
.software-service-card > span[id] { scroll-margin-top: 110px; }
@media (hover: hover) and (pointer: fine) {
  #matrix .rda-network-category:hover { background-color: #000043; transform: scale(1.3); }
}
@media (hover: hover) and (pointer: fine) and (max-width: 640px) {
  #matrix .rda-network-category:hover { max-width: calc((100vw - 24px) / 1.3); }
}
#planning-guidance .rda-guidance-grid { width: 80%; margin: 0 auto; gap: 14.4px; }
#planning-guidance .rda-guidance-card {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22.4px 24px;
  border-radius: 11.2px;
  text-decoration: none;
}
#planning-guidance .rda-guidance-card h3 { font-size: 17.6px; line-height: 1.25; margin: 0; color: var(--ink); }
#planning-guidance .rda-guidance-card:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; background-color: #000043; }
@media (hover: hover) and (pointer: fine) {
  #planning-guidance .rda-guidance-card:hover { background-color: #000043; transform: scale(1.3); }
}
@media (max-width: 640px) {
  #planning-guidance .rda-guidance-grid { gap: 11.2px; }
  #planning-guidance .rda-guidance-card { padding: 19.2px 17.6px; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 640px) {
  #planning-guidance .rda-guidance-card:hover { max-width: calc((100vw - 24px) / 1.3); }
}

.software-service-grid > .software-service-card:last-child { grid-column: 1 / -1; width: calc((100% - 18px) / 2); justify-self: center; transform-origin: center; }
@media (max-width: 640px) { .software-service-grid > .software-service-card:last-child { width: 100%; } }
.software-hero .network-hero-scene::before { clip-path: polygon(50% 4%, 96% 50%, 50% 96%, 4% 50%); background: linear-gradient(140deg,#7f9ff319,#14285416 60%,#d2e1ff0c); }
.software-hero .network-hero-slide { inset: 25% 20% 21%; justify-content: center; }
.software-facet { animation: software-facet-light 7s ease-in-out infinite alternate; animation-play-state: paused; }
.software-facet-2 { animation-duration: 11s; animation-delay: -3s; }
.software-facet-3 { animation-duration: 9s; animation-delay: -5s; }
.software-hero.is-enhanced[data-paused="false"] .software-facet { animation-play-state: running; }
@keyframes software-facet-light { from { opacity: .67; } to { opacity: 1; } }
.software-hero .network-hero-controls button { border-color: #c8d7ff32; background: #dbe6ff08; }
.software-hero .network-hero-controls button:hover { border-color: #c8d7ff6b; background: #b6caff1a; }
.rda-site-visual .rda-infographic { background: linear-gradient(135deg,#000043df,#070d28ed); }
.rda-site-visual .rda-visual-copy p { color: #d1dcf5 !important; }
.rda-site-visual .rda-infographic-thumb { background: #070d28; }
.rda-site-visual .rda-visual-actions a:first-child { color: #0a163b !important; }
@media (prefers-reduced-motion: reduce) { #matrix .rda-readable-card:hover, #planning-guidance .rda-readable-card:hover { transform: none; } .software-facet { animation: none !important; } }
@media print { .software-facet { animation: none; } }

.software-type-line { display: block; position: relative; width: max-content; margin: 0 auto; }
.software-type-output { display: none; position: absolute; inset: 0 auto auto 0; white-space: pre; }
.software-hero.is-enhanced .software-type-full { visibility: hidden; }
.software-hero.is-enhanced .software-type-output { display: block; }
.software-type-output.is-typing::after { content: ''; display: inline-block; width: 2px; height: .9em; margin-left: 2px; vertical-align: -.08em; background: #dbe5ff; animation: software-cursor .8s steps(1) infinite; }
.software-hero[data-paused="true"] .software-type-output::after { animation-play-state: paused; }
@keyframes software-cursor { 0%, 45% { opacity: 1; } 46%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .software-type-output::after { animation: none !important; } }
@media print { .software-hero.is-enhanced .software-type-full { visibility: visible; } .software-hero.is-enhanced .software-type-output { display: none; } }
