/* SPICE Connect™: connect.jpg rebuilt in HTML/SVG (markup in template-parts/fig-connect.php).
   Sizes are canvas pixels × --k: on desktop the canvas is 1400×670 scaled to the column; on phones --k is 1px. */
.fig-connect .fg-connect-root{container:fgconn/inline-size;max-width:1240px;margin:0 auto;color:#fff;-webkit-font-smoothing:antialiased}
.fig-connect .fg-connect-root *{box-sizing:border-box}
.fig-connect .fg-connect-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:where(.fig-connect) a{text-decoration:none;color:inherit}
.fig-connect a:focus-visible{outline:2px solid #ff5a1a;outline-offset:3px;border-radius:8px}
.fig-connect svg.i{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fig-connect ul,.fig-connect ol{list-style:none;margin:0;padding:0}

.fg-connect-stage{--k:calc(100cqw / 1400);position:relative;aspect-ratio:1400/670}
.fg-connect-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fg-connect-wire path{fill:none;stroke-linecap:round}
.fg-connect-wire .core{stroke:var(--c);stroke-width:3.5}
.fg-connect-wire .pulse{stroke:#fff;stroke-width:3;stroke-dasharray:8 92;stroke-dashoffset:100;opacity:.95;animation:fg-connect-flow 2.8s linear infinite;animation-delay:var(--d)}
.fg-connect-wire circle{fill:var(--c);stroke:#fff;stroke-width:3}
@keyframes fg-connect-flow{to{stroke-dashoffset:0}}

/* logo badge, top right */
.fg-connect-badge{position:absolute;left:84.29%;top:1.79%;width:14.64%;height:12.69%;display:grid;place-items:center;border-radius:calc(14 * var(--k));background:#0e1118;box-shadow:0 calc(6 * var(--k)) calc(16 * var(--k)) rgba(17,24,47,.18)}
.fg-connect-badge-logo{width:78%;height:auto}

/* limited internal capacity */
.fg-connect-team{position:absolute;left:1.29%;top:28.36%;width:18.14%;height:64.48%;display:flex;flex-direction:column;align-items:center;gap:calc(10 * var(--k));
  padding:calc(22 * var(--k)) calc(10 * var(--k)) calc(10 * var(--k));border-radius:calc(18 * var(--k));background:linear-gradient(180deg,#fff,#eef0f5);border:calc(1.5 * var(--k)) solid #e2e5ec;color:#141a3a;transition:box-shadow .25s}
.fg-connect-team b{font-size:calc(21 * var(--k));line-height:1.15;font-weight:800;text-transform:uppercase;text-align:center;letter-spacing:.01em}
.fg-connect-people{width:100%;flex:1;min-height:0}
.fg-connect-p1{transform-origin:66px 180px;animation:fg-connect-sway 4s ease-in-out infinite}
@keyframes fg-connect-sway{50%{transform:rotate(-2deg)}}
.fg-connect-team:hover{box-shadow:0 0 0 calc(2 * var(--k)) #ffb066,0 calc(10 * var(--k)) calc(26 * var(--k)) rgba(255,122,26,.25)}

/* channels */
.fg-connect-chans li{position:absolute;left:20.14%;width:10%;height:9.85%}
.fg-connect-chans a{display:flex;align-items:center;gap:calc(14 * var(--k));width:100%;height:100%;padding:0 calc(14 * var(--k));border-radius:calc(12 * var(--k));background:#10131c;
  box-shadow:0 calc(6 * var(--k)) calc(14 * var(--k)) rgba(17,24,47,.22);transition:transform .2s,box-shadow .2s}
.fg-connect-chans svg.i{font-size:calc(30 * var(--k));color:var(--c)}
.fg-connect-chans b{font-size:calc(15 * var(--k));font-weight:700;text-transform:uppercase;letter-spacing:.01em}
.fg-connect-chans li:last-child a{gap:calc(9 * var(--k));padding:0 calc(10 * var(--k))}
.fg-connect-chans li:last-child b{font-size:calc(10.5 * var(--k));letter-spacing:0}
.fg-connect-chans a:hover,.fg-connect-chans a:focus-visible{transform:translateX(calc(4 * var(--k)));box-shadow:0 0 0 calc(2 * var(--k)) var(--c),0 0 calc(18 * var(--k)) var(--c)}

/* the SPICE Connect program */
.fg-connect-hub{position:absolute;left:35.93%;top:40%;width:39.86%;height:38.06%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(26 * var(--k));
  padding:0 calc(20 * var(--k));border-radius:calc(20 * var(--k));background:#10131c;
  border:calc(4 * var(--k)) solid transparent;background:linear-gradient(#10131c,#10131c) padding-box,linear-gradient(90deg,#ff7a1a,#ff3a4a 50%,#ff2d9a) border-box;
  box-shadow:0 0 calc(18 * var(--k)) rgba(255,70,60,.55),0 0 calc(50 * var(--k)) rgba(255,40,120,.25)}
.fg-connect-name{display:flex;align-items:center;gap:calc(14 * var(--k))}
.fg-connect-logo{width:calc(176 * var(--k));height:auto}
.fg-connect-name>span:not(.fg-connect-sr){font-size:calc(50 * var(--k));font-weight:300;letter-spacing:.02em;text-transform:uppercase;line-height:1;margin-top:calc(4 * var(--k))}
.fg-connect-name sup{font-size:.35em;vertical-align:top;margin-left:2px}
.fg-connect-name:hover>span{color:#ffd0a8}
.fg-connect-steps{display:flex;align-items:flex-start;gap:calc(14 * var(--k))}
.fg-connect-steps li{position:relative}
.fg-connect-steps li+li::before{content:'›';position:absolute;left:calc(-12 * var(--k));top:calc(20 * var(--k));font-size:calc(28 * var(--k));color:#c9ccd6;line-height:1}
.fg-connect-steps a{display:flex;flex-direction:column;align-items:center;gap:calc(12 * var(--k));width:calc(90 * var(--k))}
.fg-connect-dot{display:grid;place-items:center;width:calc(72 * var(--k));height:calc(72 * var(--k));border-radius:50%;font-size:calc(30 * var(--k));color:#fff;background:var(--g);
  box-shadow:0 0 calc(12 * var(--k)) var(--s);transition:transform .25s,box-shadow .25s}
.fg-connect-steps li:nth-child(1){--g:linear-gradient(135deg,#ffa31a,#ff6a00);--s:rgba(255,122,26,.55)}
.fg-connect-steps li:nth-child(2){--g:linear-gradient(135deg,#ff6a3d,#ff3a2a);--s:rgba(255,80,50,.55)}
.fg-connect-steps li:nth-child(3){--g:linear-gradient(135deg,#ff4a5a,#e8203f);--s:rgba(255,58,74,.55)}
.fg-connect-steps li:nth-child(4){--g:linear-gradient(135deg,#ff3d8a,#d9137f);--s:rgba(255,45,130,.55)}
.fg-connect-steps li:nth-child(5){--g:linear-gradient(135deg,#f23aa6,#b8128a);--s:rgba(230,40,160,.55)}
.fg-connect-steps b{font-size:calc(12.5 * var(--k));line-height:1.25;font-weight:700;text-transform:uppercase;text-align:center}
.fg-connect-steps a:hover .fg-connect-dot,.fg-connect-steps a:focus-visible .fg-connect-dot{transform:scale(1.08);box-shadow:0 0 calc(24 * var(--k)) var(--s)}
.fg-connect-steps li .fg-connect-dot{animation:fg-connect-step 7.5s ease-in-out infinite}
.fg-connect-steps li:nth-child(2) .fg-connect-dot{animation-delay:1.5s}
.fg-connect-steps li:nth-child(3) .fg-connect-dot{animation-delay:3s}
.fg-connect-steps li:nth-child(4) .fg-connect-dot{animation-delay:4.5s}
.fg-connect-steps li:nth-child(5) .fg-connect-dot{animation-delay:6s}
@keyframes fg-connect-step{0%,14%,100%{box-shadow:0 0 calc(12 * var(--k)) var(--s)}6%{box-shadow:0 0 0 calc(5 * var(--k)) rgba(255,255,255,.25),0 0 calc(30 * var(--k)) var(--s)}}

/* trading partners */
.fg-connect-tps li{position:absolute;left:81.79%;width:17.36%;height:17.31%}
.fg-connect-tps a{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 calc(12 * var(--k)) 0 calc(20 * var(--k));border-radius:calc(14 * var(--k));background:#10131c;
  box-shadow:0 calc(8 * var(--k)) calc(18 * var(--k)) rgba(17,24,47,.22);transition:transform .2s,box-shadow .2s}
.fg-connect-tp-l{display:flex;flex-direction:column;gap:calc(10 * var(--k))}
.fg-connect-tp-l svg.i{font-size:calc(34 * var(--k));color:var(--c)}
.fg-connect-tp-l b{font-size:calc(16 * var(--k));font-weight:700;text-transform:uppercase}
.fg-connect-art{width:calc(112 * var(--k));height:auto}
.fg-connect-tps a:hover,.fg-connect-tps a:focus-visible{transform:translateX(calc(-4 * var(--k)));box-shadow:0 0 0 calc(2 * var(--k)) var(--c),0 0 calc(18 * var(--k)) var(--c)}

/* Phones and narrow columns: one column, top to bottom */
@container fgconn (max-width:760px){
  .fg-connect-stage{--k:1px;aspect-ratio:auto;display:flex;flex-direction:column;gap:14px}
  .fg-connect-wires,.fg-connect-badge{display:none}
  .fg-connect-team,.fg-connect-hub,.fg-connect-chans li,.fg-connect-tps li{position:relative;left:auto;top:auto!important;width:auto;height:auto}
  .fg-connect-team{flex-direction:row;padding:14px 16px;gap:14px}
  .fg-connect-team b{font-size:16px;text-align:left;flex:1}
  .fg-connect-people{width:110px;flex:none;height:auto}
  .fg-connect-chans{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .fg-connect-chans a{height:52px;padding:0 10px;gap:8px}
  .fg-connect-chans svg.i{font-size:20px}
  .fg-connect-chans b,.fg-connect-chans li:last-child b{font-size:11px}
  .fg-connect-hub{padding:22px 10px;gap:20px}
  .fg-connect-logo{width:120px}
  .fg-connect-name>span:not(.fg-connect-sr){font-size:34px}
  .fg-connect-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:16px 6px;width:100%}
  .fg-connect-steps li{grid-column:span 2}
  .fg-connect-steps li:nth-child(4){grid-column:2/span 2}
  .fg-connect-steps li+li::before{display:none}
  .fg-connect-steps a{width:auto;gap:8px}
  .fg-connect-dot{width:46px;height:46px;font-size:20px}
  .fg-connect-steps b{font-size:10.5px;letter-spacing:0}
  .fg-connect-tps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .fg-connect-tps a{height:96px;padding:0 8px 0 12px}
  .fg-connect-tp-l svg.i{font-size:24px}
  .fg-connect-tp-l b{font-size:12px}
  .fg-connect-art{width:64px}
  .fg-connect-chans::before,.fg-connect-tps::before{content:'';display:block;grid-column:1/-1;width:3px;height:14px;margin:-14px auto 0;background:linear-gradient(#ff7a1a,#ff2d7a)}
}
@media (prefers-reduced-motion:reduce){.fig-connect .pulse{display:none}.fig-connect *{animation:none!important;transition:none!important}}

/* No standalone logo badge (Sean, 2026-10-29): the canvas's empty top band (y 0–140, where the badge sat) is trimmed,
   so the diagram starts under the section padding, as far below the hero as the next text is below it. */
@container fgconn (min-width:761px){.fg-connect-stage{margin-top:calc(-146 * var(--k));clip-path:inset(calc(140 * var(--k)) -40px 0 -40px)}}
