/* Outreach shares the portfolio's planes, palette and expansion geometry.
   Every graph keeps its nodes, labels and wires in one SVG coordinate system. */
.wp-outreach .oc-layer-tag{position:absolute;top:16px;right:18px;font:6px var(--mono);letter-spacing:.12em;color:#647c9f}
.wp-outreach .oc-map{display:block;pointer-events:none;overflow:hidden;font-family:var(--sans);font-weight:400}
.wp-outreach .oc-layer-map{position:absolute;left:0;top:42px;width:100%;height:calc(100% - 54px)}
.wp-outreach .oc-source-node{fill:#1b2941;stroke:#4d6388;stroke-width:1}
.wp-outreach .oc-node-title{font-size:13px;fill:#c8d6f1;letter-spacing:-.02em}
.wp-outreach .oc-node-caption{font-family:var(--mono);font-size:8px;fill:#7f94b8}
.wp-outreach .oc-document-glyph{stroke:#9fb5dc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.wp-outreach .oc-wire{stroke:#607ba7;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.wp-outreach .oc-port{fill:#142039;stroke:#91a9d7;stroke-width:1}
.wp-outreach .oc-port--bright{fill:#c8d8fb;stroke:#c8d8fb}
.wp-outreach .oc-junction{fill:#b4c6ec}
.wp-outreach .oc-wire-caption{font-family:var(--mono);font-size:7px;fill:#738aae;letter-spacing:.03em}
.wp-outreach .oc-evidence-node{fill:#131e32;stroke:#425776;stroke-width:1}
.wp-outreach .oc-evidence-node--fact{fill:#1c2a43;stroke:#8a9fc7}
.wp-outreach .oc-evidence-node--hypothesis{stroke:#6b7fa2;stroke-dasharray:4 3}
.wp-outreach .oc-evidence-title{font-size:13px;fill:#c1d0ed;text-anchor:middle;letter-spacing:-.02em}
.wp-outreach .oc-evidence-caption{font-family:var(--mono);font-size:8px;fill:#7b90b2;text-anchor:middle}
.wp-outreach .oc-code-label{font-family:var(--mono);font-size:8px;fill:#647da4}
.wp-outreach .oc-code-label--right{text-anchor:end;fill:#536b91;font-size:7px}
.wp-outreach .oc-logic-title{font-size:14px;fill:#c9d6f2;text-anchor:middle;letter-spacing:-.025em}
.wp-outreach .oc-match-node{fill:#233454;stroke:#9badd5;stroke-width:1.2}
.wp-outreach .oc-logic-title--match{font-size:13px;fill:#d9e3fa}
.wp-outreach .oc-role-node{fill:#18253e;stroke:#566d97;stroke-width:1}
.wp-outreach .oc-role-title{font-size:12px;fill:#b9ccea;text-anchor:middle}
.wp-outreach .oc-role-title--long{font-size:10.5px}

.wp-outreach .wp-plane-interface{display:flex;flex-direction:column}
.wp-outreach .wp-window-bar{flex:none}
.wp-outreach .oc-proposal{width:100%;height:0;min-height:0;flex:1;background:#111a2b}
.wp-outreach .oc-sidebar-fill{fill:#142036}
.wp-outreach .oc-divider{stroke:#2e3d57;stroke-width:1}
.wp-outreach .oc-section-caption{font-family:var(--mono);font-size:8px;letter-spacing:.1em;fill:#7e96be}
.wp-outreach .oc-context-item{fill:#18263d;stroke:#344963;stroke-width:.8}
.wp-outreach .oc-context-glyph{stroke:#9aafd4;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round}
.wp-outreach .oc-context-title{font-size:11px;fill:#bccce8;letter-spacing:-.02em}
.wp-outreach .oc-context-caption{font-size:7.5px;fill:#7088ad}
.wp-outreach .oc-recipient{fill:#283c5c;stroke:#8b9fc8;stroke-width:.8}
.wp-outreach .oc-recipient--secondary{fill:#19273d;stroke:#3d5373}
.wp-outreach .oc-recipient-label{font-family:var(--mono);font-size:9px;text-anchor:middle;fill:#d1ddf5}
.wp-outreach .oc-recipient-label--secondary{font-size:8px;fill:#91a6c9}
.wp-outreach .oc-context-note{font-family:var(--mono);font-size:7.5px;fill:#637fa7}
.wp-outreach .oc-proposal-title{font-size:14px;fill:#dbe5f8;letter-spacing:-.025em}
.wp-outreach .oc-proposal-caption{font-family:var(--mono);font-size:7px;fill:#667ea5;letter-spacing:.07em}
.wp-outreach .oc-argument{fill:#142037;stroke:#34465f;stroke-width:1}
.wp-outreach .oc-argument--linked{fill:#1b2a45;stroke:#7187af}
.wp-outreach .oc-argument-index{font-family:var(--mono);font-size:8px;fill:#718aad}
.wp-outreach .oc-argument-title{font-size:12px;fill:#cbd8f2;letter-spacing:-.015em}
.wp-outreach .oc-argument-caption{font-size:8px;fill:#7e95b8}
.wp-outreach .oc-source-mark{fill:#293d60;stroke:#8198c4;stroke-width:.7}
.wp-outreach .oc-source-mark-label{font-family:var(--mono);font-size:8px;text-anchor:middle;fill:#b9cdf1}
.wp-outreach .oc-attached-source{fill:#18263e;stroke:#526c98;stroke-width:.8}
.wp-outreach .oc-attached-source-label{font-family:var(--mono);font-size:8px;fill:#9eb5da}
.wp-outreach .oc-source-wire{stroke:#7a94c0;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.wp-outreach .oc-schematic-note{color:#7185a5;letter-spacing:.025em;white-space:nowrap}
.wp-outreach .oc-case-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:23px;padding:12px 16px;border:1px solid #4c6084;border-radius:3px;background:#18263e;color:#c6d5f2;font-size:11px;line-height:1.4;transition:background .2s,border-color .2s,color .2s}
.wp-outreach .oc-case-cta:hover{background:#223552;border-color:#8fa4cf;color:#f0f4ff}

/* The front source signal runs only in the visible panel. Covered back planes
   remain still until the visitor expands the system. No timers or frame loop. */
.wp-outreach .oc-flow-packet{fill:none;stroke:#d4e1ff;stroke-width:2.3;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;animation:oc-source-flow 7.4s linear infinite;animation-play-state:paused;opacity:.8}
.wp-outreach .oc-interface-packet{animation-duration:6.8s}
.wp-outreach .oc-flow-packet--logic{animation-duration:8.3s;animation-delay:-2.4s}
.wp-section[data-motion="running"] .wp-panel:not([hidden]) .oc-interface-packet,
.wp-section[data-motion="running"] .wp-showcase.is-expanded .wp-panel:not([hidden]) .oc-depth-packet{animation-play-state:running}
@keyframes oc-source-flow{to{stroke-dashoffset:0}}

@media(max-width:860px){
  .wp-outreach .oc-layer-map{top:31px;height:calc(100% - 41px)}
  .wp-outreach .oc-layer-tag{top:12px;right:12px;font-size:5.5px}
  .wp-outreach .oc-case-cta{font-size:10px;margin-top:20px;padding:11px 14px}
}
@media(max-width:620px){
  .wp-outreach .oc-case-cta{font-size:11px;margin-top:21px;padding:12px 15px}
}
@media(prefers-reduced-motion:reduce){
  .wp-outreach .oc-flow-packet{animation:none!important;display:none}
  .wp-outreach .oc-case-cta{transition:none}
}
