/* Actual node anchors join the image, the reading route and the next section. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hero-visual{padding-bottom:0!important;margin-top:0!important}
.hero-copy{padding-bottom:32px}
.section-bridge{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:172px;align-items:start;padding-top:76px;margin-top:8px}
.bridge-network{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.connection-base{stroke:var(--navy);stroke-opacity:.22;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke}
.connection-signal{stroke:var(--red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.section-bridge.is-connected .connection-signal,.needs-grid.is-connected .connection-signal{animation:connect-route 1.15s var(--ease) both}
.bridge-node{position:relative;justify-self:center;display:flex;flex-direction:column;align-items:center;gap:13px;min-width:108px;min-height:68px;color:var(--navy);font-family:var(--font-display);font-size:17px;font-weight:500;line-height:1.2;z-index:1}
.bridge-socket{display:block;width:20px;height:20px;flex-shrink:0;border:2px solid var(--navy);background:var(--paper);border-radius:50%;box-shadow:0 0 0 7px var(--paper);transition:background .2s,border-color .2s,box-shadow .2s}
.bridge-node:hover,.bridge-node:focus-visible{color:var(--red)}
.bridge-node:hover .bridge-socket,.bridge-node:focus-visible .bridge-socket{background:var(--red);border-color:var(--red);box-shadow:0 0 0 7px var(--paper),0 0 0 8px #df08142b}
.model{padding-top:62px}
.needs-grid{position:relative;isolation:isolate}
.needs-network{position:absolute;top:-20px;left:0;width:100%;height:calc(100% + 20px);pointer-events:none;z-index:-1;overflow:visible}
.needs-network circle{fill:var(--red);stroke:var(--paper);stroke-width:4}
.needs-tabs{position:relative}
.needs-tabs button{position:relative}
.needs-tabs button[aria-selected=true]::after{content:'';position:absolute;top:-8px;left:50%;width:7px;height:7px;border-radius:50%;background:var(--red);transform:translateX(-50%)}
.ecosystem-visual{z-index:1}
.human-photo figcaption strong{font-size:15px}
.model-copy .card-top{margin-bottom:16px}
.model-note p{font-size:14px}
.model-copy .kicker,.need-panel .kicker{font-size:14px;letter-spacing:.02em}
@keyframes connect-route{0%{stroke-dashoffset:1;opacity:1}80%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.55}}
@media(max-width:760px){.hero-copy{padding-bottom:24px}.section-bridge{height:150px;padding-top:63px;margin-top:0}.bridge-node{font-size:15px;min-width:90px;gap:13px}.bridge-socket{width:18px;height:18px}.model{padding-top:42px}.needs-grid{gap:48px}.needs-network{z-index:0}.needs-tabs{z-index:1}.needs-tabs button[aria-selected=true]::after{top:-11px}}
@media(prefers-reduced-motion:reduce){.connection-signal{animation:none!important;stroke-dashoffset:0;opacity:.55}.bridge-socket{transition:none}}
