:root{--blue:#1D70B7;--light-blue:#55A8E0;--grey:#7D7978;--ink:#15202b;--soft:#f4f8fb;--line:#dfe8ef;--white:#fff;--container:1220px;--radius:24px;--shadow:0 28px 70px rgba(18,46,70,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Montserrat",Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit}button,input,textarea{font:inherit}.container{width:min(100% - 44px,var(--container));margin-inline:auto}.skip-link{position:absolute;left:-999px;top:0}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.75rem 1rem;z-index:9999;border-radius:8px}.page-progress{position:fixed;inset:0 0 auto;height:3px;z-index:120;background:transparent}.page-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--light-blue),var(--blue))}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:box-shadow .25s,border-color .25s}.site-header.scrolled{border-color:var(--line);box-shadow:0 8px 28px rgba(18,28,39,.06)}.nav-wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand img{width:220px;max-height:68px;object-fit:contain}.primary-nav{display:flex;align-items:center;gap:1.7rem}.primary-nav>a:not(.button){font-size:.9rem;font-weight:700;text-decoration:none}.nav-toggle{display:none;border:0;background:none;padding:.5rem}.nav-toggle span{display:block;width:26px;height:2px;background:var(--ink);margin:5px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.8rem 1.45rem;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font-size:.88rem;font-weight:800;letter-spacing:.01em;border:1px solid var(--blue);transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(29,112,183,.22);background:#155f9d}.button-small{min-height:42px;padding:.65rem 1.1rem}.button-secondary{background:#fff;color:var(--blue);border-color:rgba(29,112,183,.28)}.button-secondary:hover{background:var(--soft)}
.eyebrow{margin:0 0 1rem;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3{line-height:1.09;margin:0 0 1rem}h1{font-size:clamp(3.2rem,6.2vw,6.5rem);letter-spacing:-.055em;max-width:890px}h2{font-size:clamp(2.25rem,4vw,4rem);letter-spacing:-.04em}h3{font-size:1.2rem}.section{padding:7.7rem 0}.section-heading{margin-bottom:3rem}.split-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:5rem;align-items:end}.split-heading>p{margin:0;color:#5c6975;max-width:590px}
.hero{position:relative;min-height:calc(100vh - 88px);padding:6.4rem 0 5.6rem;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fff 48%,#f4f9fd 100%)}.hero-background{position:absolute;inset:0;background-image:linear-gradient(rgba(29,112,183,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(29,112,183,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to right,transparent 0,#000 35%,#000 100%)}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:center}.hero-intro{font-size:clamp(1.05rem,1.45vw,1.27rem);max-width:720px;color:#52606c}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin:2.2rem 0 2.6rem}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border-top:1px solid var(--line);padding-top:2rem}.hero-proof div{display:flex;flex-direction:column;gap:.25rem}.hero-proof strong{font-size:2.1rem;color:var(--blue);line-height:1}.hero-proof span{font-size:.77rem;color:var(--grey);max-width:170px}.hero-visual{min-width:0}.funding-visual{position:relative;border:1px solid rgba(29,112,183,.14);border-radius:38px;background:rgba(255,255,255,.82);box-shadow:var(--shadow);padding:1.15rem;transform-style:preserve-3d;transition:transform .18s ease;overflow:hidden}.funding-visual::before{content:"";position:absolute;inset:-25%;background:radial-gradient(circle at 55% 45%,rgba(85,168,224,.17),transparent 50%);animation:visualGlow 7s ease-in-out infinite}.funding-svg{position:relative;z-index:2;width:100%;height:auto;display:block}.visual-halo{fill:none;stroke:url(#ringGradient);stroke-width:1.25;opacity:.25;stroke-dasharray:7 12;transform-origin:310px 310px}.halo-a{animation:spin 32s linear infinite}.halo-b{animation:spinReverse 24s linear infinite;opacity:.18}.halo-c{stroke-dasharray:2 10;animation:spin 18s linear infinite;opacity:.3}.connection-lines path{fill:none;stroke:#55A8E0;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 10;opacity:.48;animation:dashFlow 7s linear infinite}.orbit{fill:#55A8E0;transform-origin:310px 310px;animation:spin 22s linear infinite}.funding-node rect{fill:#fff;stroke:#d8e7f1;stroke-width:1.3}.funding-node circle{fill:#1D70B7}.funding-node text{font-family:Montserrat,Arial,sans-serif;font-size:13px;font-weight:700;fill:#244052}.node-grants{animation:nodeFloat 5.7s ease-in-out infinite}.node-finance{animation:nodeFloat 6.4s ease-in-out infinite .4s}.node-green{animation:nodeFloat 6.1s ease-in-out infinite .8s}.node-innovation{animation:nodeFloat 5.9s ease-in-out infinite 1.1s}.visual-core{animation:corePulse 5.5s ease-in-out infinite}.core-label rect{fill:#1D70B7}.core-label text{fill:#fff;font-family:Montserrat,Arial,sans-serif;font-size:13px;font-weight:700}.visual-caption{position:absolute;left:1.7rem;right:1.7rem;bottom:1.3rem;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.82rem 1rem;border-radius:14px;background:rgba(255,255,255,.9);border:1px solid rgba(29,112,183,.1);backdrop-filter:blur(12px)}.visual-caption span{font-size:.7rem;color:var(--grey);text-transform:uppercase;letter-spacing:.12em;font-weight:800}.visual-caption strong{font-size:.76rem;color:var(--blue)}
.trust-strip{background:#121c27;color:#fff}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr)}.trust-grid div{padding:2rem;border-right:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:45px 1fr;gap:.2rem 1rem;align-items:start}.trust-grid div:last-child{border-right:0}.trust-icon{grid-row:span 2;color:#6fc2f1;font-size:.73rem;font-weight:800}.trust-grid strong{font-size:.98rem}.trust-grid div>span:last-child{color:#93a3b1;font-size:.78rem}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.service-card{position:relative;min-height:230px;padding:2rem 2.1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:background .25s,transform .25s}.service-card:hover{background:var(--soft);transform:translateY(-3px);z-index:2}.service-card>span{color:var(--light-blue);font-size:.72rem;font-weight:800;letter-spacing:.12em}.service-card h3{font-size:1.28rem;margin:2rem 0 .7rem}.service-card p{color:#5d6975;margin:0;max-width:520px}
.section-blue{position:relative;background:linear-gradient(145deg,#1965a6,#1D70B7 55%,#205d8f);color:#fff;overflow:hidden}.section-blue::after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;border:1px solid rgba(255,255,255,.12);right:-200px;bottom:-300px}.light .eyebrow{color:#cce9fa}.light>p{color:#dcecf8}.framework-list{position:relative;z-index:2;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);overflow:hidden}.framework-list li{background:rgba(29,112,183,.78);padding:2rem;min-height:190px}.framework-list li:hover{background:rgba(22,91,150,.96)}.framework-list li>span{color:#bfe5fb;font-weight:800;font-size:.78rem}.framework-list h3{margin:1.8rem 0 .55rem}.framework-list p{color:#dbeafa;margin:0;font-size:.91rem}
.sector-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.sector-card{padding:1.55rem 1.7rem;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:42px 1fr;gap:.8rem;background:#fff;transition:transform .25s,border-color .25s,box-shadow .25s}.sector-card:hover{transform:translateY(-4px);border-color:rgba(29,112,183,.35);box-shadow:0 16px 38px rgba(18,28,39,.08)}.sector-card span{color:var(--light-blue);font-size:.72rem;font-weight:800}.sector-card h3{font-size:1rem;margin:0;line-height:1.45}
.section-soft{background:var(--soft)}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:5rem;align-items:center}.about-visual{position:relative;min-height:500px;background:#fff;border:1px solid var(--line);border-radius:30px;display:grid;place-items:center;box-shadow:var(--shadow);overflow:hidden}.about-visual::before{content:"";position:absolute;width:350px;height:350px;border-radius:50%;background:rgba(85,168,224,.1);top:-150px;right:-120px}.about-symbol{width:60%;position:relative;z-index:2}.about-caption{position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;display:flex;gap:.6rem;flex-wrap:wrap}.about-caption span{padding:.55rem .8rem;background:var(--soft);border:1px solid var(--line);border-radius:999px;font-size:.72rem;color:var(--blue);font-weight:700}.about-copy p{color:#52606c}.about-copy blockquote{margin:2.2rem 0 0;padding:1.5rem 0 1.5rem 1.5rem;border-left:4px solid var(--light-blue);font-size:1.35rem;font-weight:700;color:var(--ink);line-height:1.45}
.leader-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.leader-card{position:relative;display:grid;grid-template-columns:78px 1fr;gap:1.3rem;padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s}.leader-card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(85,168,224,.08);right:-90px;bottom:-110px}.leader-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(18,28,39,.08)}.leader-initials{width:68px;height:68px;border-radius:18px;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--blue),var(--light-blue))}.leader-card h3{font-size:1.38rem;margin-bottom:.35rem}.role{color:var(--blue)!important;font-weight:700;margin-top:0}.leader-card p:last-child{color:#53606b}
.cta-section{position:relative;padding:7.5rem 0;background:linear-gradient(135deg,#121c27,#1e405a);color:#fff;overflow:hidden}.cta-glow{position:absolute;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(85,168,224,.22),transparent 68%);right:-220px;top:-220px}.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:.95fr 1.05fr;gap:5rem;align-items:center}.cta-section .eyebrow{color:#92d0f4}.cta-section p{color:#c5d1db}.contact-panel{background:#fff;color:var(--ink);padding:2.5rem;border-radius:var(--radius);display:grid;gap:1.35rem;box-shadow:var(--shadow)}.contact-label{color:var(--grey)!important;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;margin:0}.contact-email{font-size:clamp(1.15rem,2.3vw,1.65rem);font-weight:700;color:var(--blue);text-decoration:none;overflow-wrap:anywhere}.contact-note{margin:0;color:#6c7883!important;font-size:.82rem}
.site-footer{background:#0d151d;color:#fff;padding:4.2rem 0 1.5rem}.footer-grid{display:grid;grid-template-columns:1.25fr .65fr .9fr 1.2fr;gap:3.5rem}.footer-logo{width:200px;height:80px;object-fit:contain;object-position:left;filter:brightness(0) invert(1);opacity:.92}.site-footer h3{font-size:.76rem;color:#9cd4f5;text-transform:uppercase;letter-spacing:.13em}.site-footer p{color:#b4c0ca;font-size:.84rem}.site-footer a{color:#d2eafa;text-decoration:none}.muted{color:#84919c!important}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding-top:1.3rem;display:flex;justify-content:space-between;gap:1rem;font-size:.76rem;color:#8996a1}.footer-bottom a{text-decoration:none}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.2,.65,.2,1),transform .75s cubic-bezier(.2,.65,.2,1)}.reveal.visible{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.05s}.reveal:nth-child(3){transition-delay:.1s}.reveal:nth-child(4){transition-delay:.15s}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinReverse{to{transform:rotate(-360deg)}}@keyframes dashFlow{to{stroke-dashoffset:-160}}@keyframes nodeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes corePulse{0%,100%{transform:scale(1);transform-origin:310px 310px}50%{transform:scale(1.025);transform-origin:310px 310px}}@keyframes visualGlow{0%,100%{transform:translate3d(-2%,0,0) scale(1)}50%{transform:translate3d(6%,-3%,0) scale(1.08)}}
@media(max-width:1050px){.hero-grid,.about-grid,.cta-grid{grid-template-columns:1fr;gap:3.5rem}.hero-copy{max-width:850px}.hero-visual{max-width:720px;margin-inline:auto}.split-heading{grid-template-columns:1fr;gap:1.2rem}.framework-list{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.hero{min-height:auto}.primary-nav{position:absolute;top:82px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;background:#fff;padding:1rem;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.primary-nav.open{display:flex}.nav-toggle{display:block}.trust-grid{grid-template-columns:1fr}.trust-grid div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}}
@media(max-width:700px){.container{width:min(100% - 28px,var(--container))}.section,.cta-section{padding:5.4rem 0}.services-grid,.sector-grid,.leader-cards,.footer-grid{grid-template-columns:1fr}.framework-list{grid-template-columns:1fr}.hero{padding:4.4rem 0 4.8rem}.hero-proof{grid-template-columns:1fr}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.funding-visual{padding:.35rem;border-radius:26px}.visual-caption{position:static;margin:.4rem .7rem .7rem}.funding-node text{font-size:12px}.brand img{width:180px}.leader-card{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.service-card{min-height:auto}.nav-wrap{min-height:78px}h1{font-size:clamp(2.8rem,14vw,4.1rem)}h2{font-size:2.45rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Version 3 signature network visual */
@font-face{font-family:MontserratLocal;src:url('assets/montserrat-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
body{font-family:Montserrat,MontserratLocal,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.network-stage{position:relative;min-height:620px;border-radius:36px;overflow:hidden;background:radial-gradient(circle at 50% 44%,rgba(85,168,224,.18),transparent 29%),linear-gradient(145deg,#0c1b28 0%,#102b40 46%,#154d73 100%);box-shadow:0 34px 80px rgba(13,36,55,.2);isolation:isolate;border:1px solid rgba(255,255,255,.12)}
.network-stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(circle at center,#000 10%,transparent 78%);opacity:.8}
.network-stage::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;border:1px solid rgba(132,211,255,.12);left:50%;top:45%;transform:translate(-50%,-50%);box-shadow:0 0 0 70px rgba(85,168,224,.035),0 0 0 140px rgba(85,168,224,.025)}
#funding-network{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.network-glow{position:absolute;inset:10% 8%;z-index:0;background:radial-gradient(circle at center,rgba(85,168,224,.24),rgba(29,112,183,.06) 38%,transparent 70%);filter:blur(22px);animation:networkBreathe 6s ease-in-out infinite}
.network-core{position:absolute;z-index:4;left:50%;top:45%;width:190px;height:190px;transform:translate(-50%,-50%);display:grid;place-items:center}
.core-ring{position:absolute;border-radius:50%;border:1px solid rgba(177,228,255,.46)}
.core-ring-a{inset:0;animation:coreOrbit 11s linear infinite}.core-ring-a::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#82d1ff;top:11px;left:50%;box-shadow:0 0 20px #55A8E0}
.core-ring-b{inset:18px;border-style:dashed;border-color:rgba(255,255,255,.25);animation:coreOrbitReverse 18s linear infinite}
.core-disc{position:relative;width:128px;height:128px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(222,244,255,.92));box-shadow:0 28px 65px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.9);overflow:hidden}
.core-disc::before{content:"";position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.9) 50%,transparent 65%);transform:translateX(-80%) rotate(10deg);animation:coreSheen 6s ease-in-out infinite}
.core-disc img{position:relative;z-index:2;width:76%;height:76%;object-fit:contain}
.network-label{position:absolute;z-index:5;padding:.72rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.17);background:rgba(8,27,41,.72);backdrop-filter:blur(12px);color:#eaf7ff;font-size:.73rem;font-weight:700;letter-spacing:.02em;box-shadow:0 12px 28px rgba(0,0,0,.18);animation:labelFloat 5.2s ease-in-out infinite}
.network-label span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#68c2f3;margin-right:.55rem;box-shadow:0 0 12px #55A8E0}
.label-grants{left:7%;top:16%;animation-delay:-.4s}.label-finance{right:5%;top:19%;animation-delay:-1.8s}.label-green{left:6%;top:69%;animation-delay:-3.1s}.label-innovation{right:5%;top:66%;animation-delay:-4.2s}
.network-statement{position:absolute;z-index:5;left:2rem;right:2rem;bottom:1.8rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-end;color:#fff}
.network-statement small{font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;color:#8ed3f8;font-weight:800}.network-statement strong{max-width:355px;text-align:right;font-size:1.02rem;line-height:1.45}
@keyframes coreOrbit{to{transform:rotate(360deg)}}@keyframes coreOrbitReverse{to{transform:rotate(-360deg)}}@keyframes networkBreathe{0%,100%{transform:scale(.96);opacity:.75}50%{transform:scale(1.06);opacity:1}}@keyframes labelFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes coreSheen{0%,55%{transform:translateX(-100%) rotate(10deg)}80%,100%{transform:translateX(100%) rotate(10deg)}}
@media(max-width:700px){.network-stage{min-height:520px;border-radius:26px}.network-core{width:150px;height:150px;top:42%}.core-disc{width:102px;height:102px}.network-label{font-size:.61rem;padding:.58rem .7rem}.label-grants{left:4%;top:12%}.label-finance{right:3%;top:18%}.label-green{left:3%;top:63%}.label-innovation{right:3%;top:68%}.network-statement{left:1.1rem;right:1.1rem;bottom:1.1rem;display:block}.network-statement strong{display:block;text-align:left;margin-top:.45rem;font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.network-glow,.core-ring,.core-disc::before,.network-label{animation:none!important}}

/* v3.1 cache-safe hero corrections */
.hero-visual, .network-stage { min-width: 0; }
.network-stage { width: 100%; }
.network-core img { display:block; max-width:100%; height:auto; }
.network-label { white-space: nowrap; line-height: 1; }
.network-statement small,
.network-statement strong { font-family: Montserrat, Arial, sans-serif; }
.network-statement small { line-height: 1.35; }
.network-statement strong { line-height: 1.35; }

/* A visible CSS animation remains active even if canvas JS is delayed. */
.network-core { animation: veCoreFloat 5s ease-in-out infinite; }
.network-glow { animation: veGlowDrift 7s ease-in-out infinite alternate; }
@keyframes veCoreFloat {
  0%,100% { transform:translate(-50%,-50%) translateY(0); }
  50% { transform:translate(-50%,-50%) translateY(-9px); }
}
@keyframes veGlowDrift {
  0% { transform:translate3d(-2%,-1%,0) scale(.96); opacity:.58; }
  100% { transform:translate3d(3%,2%,0) scale(1.05); opacity:.9; }
}
@media (max-width:700px) {
  .network-stage { min-height: 500px; }
  .network-statement small { font-size:.62rem; }
  .network-statement strong { font-size:.86rem; max-width:none; }
}
@media (prefers-reduced-motion: reduce) {
  .network-core,.network-glow { animation:none!important; }
}
