.toc-visual{overflow:hidden;background:#f8f6f1;border:1px solid var(--line);border-radius:18px;color:var(--blue);padding:30px 34px 24px}
.toc-title{position:static;text-align:center;max-width:720px;margin:0 auto}
.toc-title .eyebrow{margin-bottom:5px}
.toc-title h2{margin:0 0 7px}
.toc-title p{display:none}
.toc-cycle{position:relative;width:min(100%,920px);height:610px;margin:8px auto 0}
.toc-ring{position:absolute;left:50%;top:54%;width:340px;height:340px;transform:translate(-50%,-50%);border:2px dashed rgba(36,55,111,.32);border-radius:50%;background:radial-gradient(circle,#fff 0 35%,rgba(220,231,243,.48) 36% 52%,transparent 53%)}
.toc-ring:before,.toc-ring:after{content:"";position:absolute;inset:50%;width:12px;height:12px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 7px #f8f6f1}
.toc-ring:before{transform:translate(-176px,-6px)}
.toc-ring:after{transform:translate(164px,-6px)}
.toc-node{--node-transform:none;position:absolute;z-index:3;width:225px;min-height:124px;padding:17px 18px 15px;border:1px solid rgba(36,55,111,.18);border-radius:15px;background:#fff;text-align:center;box-shadow:0 10px 28px rgba(31,58,95,.08);transform:var(--node-transform);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.toc-cycle .toc-node:hover{transform:var(--node-transform) translateY(-5px);box-shadow:0 15px 34px rgba(31,58,95,.15);border-color:rgba(36,55,111,.42)}
.toc-node span{display:grid;place-items:center;width:31px;height:31px;margin:0 auto 8px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:800}
.toc-node b,.toc-centre b{display:block;text-transform:uppercase;letter-spacing:.045em;font-size:13px;margin-bottom:6px}
.toc-node p,.toc-centre p{margin:0;font-size:13px;line-height:1.42}
.toc-inputs{--node-transform:translateX(-50%);left:50%;top:-10px}
.toc-do{right:7px;top:170px}
.toc-outputs{right:20px;bottom:5px}
.toc-outcomes{left:20px;bottom:5px}
.toc-impact{left:7px;top:170px}
.toc-centre{position:absolute;z-index:2;left:50%;top:54%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:238px;height:238px;padding:34px 36px;border:2px solid var(--blue);border-radius:50%;background:#fff;text-align:center;box-shadow:0 14px 38px rgba(31,58,95,.13)}
.toc-centre>span{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 9px;border-radius:50%;background:var(--blue);color:#fff;font-size:17px}
.toc-centre>div{width:100%;text-align:center}
.toc-centre p{max-width:166px;margin:0 auto}
.toc-arrow{position:absolute;z-index:1;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#dce7f3;color:var(--blue);font-size:27px;font-weight:700;line-height:1}
.arrow-1{left:calc(50% + 109px);top:calc(54% - 150px);transform:translate(-50%,-50%) rotate(36deg)}
.arrow-2{left:calc(50% + 176px);top:calc(54% + 57px);transform:translate(-50%,-50%) rotate(108deg)}
.arrow-3{left:50%;top:calc(54% + 185px);transform:translate(-50%,-50%) rotate(180deg)}
.arrow-4{left:calc(50% - 176px);top:calc(54% + 57px);transform:translate(-50%,-50%) rotate(252deg)}
.arrow-5{left:calc(50% - 109px);top:calc(54% - 150px);transform:translate(-50%,-50%) rotate(324deg)}
.toc-loop-note{display:none}
.toc-loop-note span{font-size:20px;font-weight:700}
.toc-download{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:18px}
.toc-file{color:var(--blue);font-weight:700;text-decoration:underline}
.portrait{font-size:0;background:#dce7f3 url("julieta-founder.png") center/cover no-repeat;border-radius:46% 46% 44% 44%/32% 32% 40% 40%;min-height:520px;box-shadow:0 18px 45px rgba(31,58,95,.12)}
@media(max-width:900px){.toc-visual{padding:26px 20px}.toc-cycle{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.toc-ring,.toc-arrow{display:none}.toc-node{position:relative;inset:auto;width:auto;min-height:0;--node-transform:none}.toc-cycle .toc-node:hover{transform:translateY(-4px)}.toc-centre{position:relative;inset:auto;grid-column:1/-1;grid-row:1;width:min(230px,100%);height:auto;min-height:190px;margin:0 auto 8px;transform:none}.toc-loop-note{margin-top:16px}.portrait{min-height:600px;max-width:520px;width:100%;margin:auto}}
@media(max-width:600px){.toc-visual{padding:23px 14px}.toc-cycle{grid-template-columns:1fr}.toc-centre{grid-column:auto}.toc-loop-note{width:auto;border-radius:14px}.toc-download{flex-direction:column;gap:10px}.portrait{min-height:430px}}
.about-roadmap {
  padding: 24px 36px;
}

.about-roadmap .roadmap-label {
  color: var(--gold);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

body[data-page="about"] .about-roadmap h2 {
  font-size: clamp(22px, 2.3vw, 26px);
  line-height: 1.2;
  margin: 0 0 6px;
}

.about-roadmap p {
  font-size: 15px;
  margin-top: 0;
  margin-bottom: 10px;
}

.about-roadmap-action {
  display: flex;
  justify-content: center;
}

.about-roadmap .btn {
  padding: 9px 16px;
}

.about-roadmap-next {
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid rgba(255, 255, 255, .2);
}

.about-roadmap-next p {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .about-roadmap {
    padding: 22px 18px;
  }
}

/* Gentle motion for the existing Theory of Change layout. */
.toc-ring{animation:toc-orbit 24s linear infinite}
.toc-orbit-motion{position:absolute;z-index:2;left:50%;top:54%;width:340px;height:340px;overflow:visible;transform:translate(-50%,-50%);pointer-events:none}
.toc-orbit-dot{fill:var(--blue);offset-path:path("M170 6 A164 164 0 1 1 169.9 6");offset-distance:0%;offset-rotate:0deg;animation:toc-dot-travel 22s linear infinite}
.toc-centre{animation:toc-mission-pulse 4.8s ease-in-out infinite}
.toc-node{opacity:0;animation:toc-node-enter .55s cubic-bezier(.2,.8,.2,1) forwards,toc-stage-highlight 20s ease-in-out infinite;animation-play-state:paused}
.toc-cycle.is-visible .toc-node{animation-play-state:running}
.toc-inputs{animation-delay:0s,0s}.toc-do{animation-delay:.65s,4s}.toc-outputs{animation-delay:1.3s,8s}.toc-outcomes{animation-delay:1.95s,12s}.toc-impact{animation-delay:2.6s,16s}
@keyframes toc-orbit{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes toc-dot-travel{to{offset-distance:100%}}
@keyframes toc-mission-pulse{0%,100%{box-shadow:0 14px 38px rgba(31,58,95,.13)}50%{box-shadow:0 14px 42px rgba(31,58,95,.22),0 0 0 7px rgba(217,199,161,.14)}}
@keyframes toc-node-enter{from{opacity:0;transform:var(--node-transform) translateY(16px) scale(.96)}to{opacity:1;transform:var(--node-transform)}}
@keyframes toc-stage-highlight{0%,12%{border-color:rgba(31,58,95,.48);box-shadow:0 14px 32px rgba(31,58,95,.16),0 0 0 4px rgba(220,231,243,.65)}20%,100%{border-color:rgba(36,55,111,.18);box-shadow:0 10px 28px rgba(31,58,95,.08)}}
.toc-cycle .toc-node:hover,
.toc-cycle .toc-node:focus-visible{
  border-color:rgba(31,58,95,.48)!important;
  box-shadow:0 14px 32px rgba(31,58,95,.16),0 0 0 4px rgba(220,231,243,.65)!important;
  outline:none;
}
@media(min-width:601px) and (max-width:900px){
  .toc-cycle{display:block;width:100%;height:520px;margin-top:18px}
  .toc-ring{display:block;left:50%;top:52%;width:270px;height:270px}
  .toc-ring:before{transform:translate(-141px,-6px)}
  .toc-ring:after{transform:translate(129px,-6px)}
  .toc-orbit-motion{display:block;left:50%;top:52%;width:270px;height:270px}
  .toc-node{position:absolute;width:175px;min-height:110px;padding:14px 13px}
  .toc-inputs{left:50%;top:-5px;--node-transform:translateX(-50%)}
  .toc-do{right:0;top:145px}
  .toc-outputs{right:10px;bottom:0}
  .toc-outcomes{left:10px;bottom:0}
  .toc-impact{left:0;top:145px}
  .toc-centre{position:absolute;left:50%;top:52%;width:190px;height:190px;min-height:0;padding:25px 23px;transform:translate(-50%,-50%)}
  .toc-centre p{font-size:11px;max-width:145px}
  .toc-arrow{display:grid}
  .arrow-1{left:calc(50% + 87px);top:calc(52% - 119px)}
  .arrow-2{left:calc(50% + 140px);top:calc(52% + 45px)}
  .arrow-3{left:50%;top:calc(52% + 147px)}
  .arrow-4{left:calc(50% - 140px);top:calc(52% + 45px)}
  .arrow-5{left:calc(50% - 87px);top:calc(52% - 119px)}
}
@media(max-width:600px){.toc-orbit-motion{display:none}}
@media(prefers-reduced-motion:reduce){.toc-ring,.toc-centre,.toc-node,.toc-orbit-dot{animation:none}.toc-node{opacity:1}.toc-orbit-dot{display:none}}

/* About introduction: subtle global route and connection layer. */
body[data-page="about"] .hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
body[data-page="about"] .hero>.container{
  position:relative;
  z-index:1;
}
.about-intro-network{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  color:var(--blue);
  pointer-events:none;
}
.about-route-lines{
  fill:none;
  stroke:currentColor;
  stroke-width:.8;
  vector-effect:non-scaling-stroke;
  opacity:.14;
}
.about-route-lines path:nth-child(even){
  stroke:var(--edu);
  stroke-dasharray:4 8;
}
.about-route-nodes{
  fill:var(--blue);
  stroke:var(--white);
  stroke-width:1.2;
  vector-effect:non-scaling-stroke;
  opacity:.2;
}
.about-route-travellers{
  fill:var(--edu);
  opacity:.42;
}
@media(max-width:600px){
  .about-intro-network{
    width:170%;
    left:-35%;
  }
  .about-route-lines{opacity:.1}
  .about-route-nodes{opacity:.15}
  .about-route-travellers{opacity:.34}
}
@media(prefers-reduced-motion:reduce){
  .about-route-travellers{display:none}
}

/* Founder portrait: quiet global collaboration network. */
.founder-portrait-wrap{
  position:relative;
  min-width:0;
  isolation:isolate;
}
.founder-portrait-wrap .portrait{
  position:relative;
  z-index:1;
}
.founder-network{
  position:absolute;
  z-index:0;
  inset:-22%;
  width:144%;
  height:144%;
  overflow:visible;
  color:var(--blue);
  pointer-events:none;
}
.founder-network-lines{
  fill:none;
  stroke:currentColor;
  stroke-width:1.05;
  opacity:.22;
  vector-effect:non-scaling-stroke;
}
.founder-network-lines path:nth-child(even){
  stroke:var(--edu);
  stroke-dasharray:4 9;
}
.founder-network-nodes{
  fill:var(--blue);
  stroke:var(--white);
  stroke-width:1.4;
  opacity:.34;
  vector-effect:non-scaling-stroke;
}
.founder-pulse{
  transform-box:fill-box;
  transform-origin:center;
  animation:founder-node-pulse 5.5s ease-in-out infinite;
}
.founder-pulse-two{animation-delay:-1.8s}
.founder-pulse-three{animation-delay:-3.6s}
.founder-traveller{
  fill:var(--edu);
  opacity:.72;
  offset-path:path("M35 510 C105 310 205 590 310 330 S500 150 565 55");
  offset-distance:0%;
  offset-rotate:0deg;
  animation:founder-dot-travel 18s linear infinite;
}
@keyframes founder-node-pulse{
  0%,100%{opacity:.45;transform:scale(.86)}
  50%{opacity:1;transform:scale(1.35)}
}
@keyframes founder-dot-travel{to{offset-distance:100%}}
@media(max-width:900px){
  .founder-portrait-wrap{
    width:100%;
    max-width:520px;
    margin:auto;
  }
  .founder-network{
    inset:-12%;
    width:124%;
    height:124%;
  }
}
@media(prefers-reduced-motion:reduce){
  .founder-pulse,.founder-traveller{animation:none}
  .founder-traveller{display:none}
}
