/* Stable geometry for touch-driven chapters. No transform entrance on pipe labels. */
#network-aperture{position:absolute;z-index:10;overflow:hidden;isolation:isolate;pointer-events:none;contain:layout paint}
#network-aperture .network-chapter{right:auto;bottom:auto;will-change:transform;backface-visibility:hidden}
.system-page .connection-chip{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:#f8fcff}
.system-page .connection-label{backface-visibility:hidden}
.street-story,.system-story,.filter-story{overflow-anchor:none;overscroll-behavior-y:contain}
.flow-v81 .flow-stage{overscroll-behavior-x:contain}
.story-footer .hero-cta{position:relative;isolation:isolate;overflow:hidden;min-width:250px;min-height:68px;justify-content:center;gap:28px;padding:20px 34px;font-size:19px;font-weight:600;border-radius:999px;background:var(--primary-dark);color:#fff;box-shadow:0 9px 30px #0a4da52b;animation:footer-cta-breathe 2.8s ease-in-out infinite}
.story-footer .hero-cta::before{content:'';position:absolute;z-index:-1;inset:-60% auto -60% -80%;width:44%;background:linear-gradient(100deg,transparent,#ffffff70,transparent);transform:skewX(-20deg);animation:footer-cta-shine 3.4s ease-in-out infinite;pointer-events:none}
.story-footer .hero-cta>span{font-size:25px;transition:transform .2s}
.story-footer .hero-cta:hover>span{transform:translate(3px,-3px)}
.story-footer .hero-cta:focus-visible{outline:3px solid var(--secondary);outline-offset:6px}
@keyframes footer-cta-shine{0%,18%{left:-80%}65%,100%{left:150%}}
@keyframes footer-cta-breathe{0%,100%{box-shadow:0 9px 30px #0a4da52b;transform:translateY(0)}50%{box-shadow:0 12px 36px #0a4da54a;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.story-footer .hero-cta,.story-footer .hero-cta::before{animation:none}}
