/* One connected research section, with fixed flow geometry and quiet moving signals. */
.research-cycle {
  max-width: 1500px;
  margin: clamp(44px, 5vw, 76px) auto;
  padding: 0 4vw;
  color: #20231e;
  --research-rule: rgba(32, 35, 30, .2);
}
.research-cycle__header { display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0 clamp(22px,3vw,48px);align-items:end;border:0;padding:0; }
.research-cycle__header>.eyebrow{grid-column:1/-1}
.research-cycle #research-cycle-title {
  font: 400 clamp(36px, 4.3vw, 64px)/1.06 'halyard-display', sans-serif;
  letter-spacing: -.025em;
  margin: 10px 0 12px;
  max-width: none;
  text-wrap: balance;
  scroll-margin-top: 130px;
}
.research-cycle .eyebrow { font: 500 12px/1.5 'Space Grotesk', sans-serif; letter-spacing: .08em; }
.research-cycle__intro {
  max-width: 700px;
  font: 400 clamp(16px, 1.4vw, 19px)/1.55 'Space Grotesk', sans-serif;
  margin: 0;
  color: #50554f;
}
.research-cycle__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 20px 0 0;
  margin-top: 0;
  border: 0;
}
.research-cycle__controls button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 11px 18px;
  border: 1px solid var(--research-rule);
  border-radius: 999px;
  background: transparent;
  color: #20231e;
  font: 500 13px/1.25 'Space Grotesk', sans-serif;
  cursor: pointer;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.research-cycle__controls button span { opacity: .55; font-size: 11px; }
.research-cycle__controls button[aria-pressed="true"] { background: #20231e; border-color: #20231e; color: #fff; }
.research-cycle__controls button:focus-visible { outline: 2px solid #287e91; outline-offset: 4px; }
.research-cycle__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 3vw, 48px);
  padding-top: 0;
}
.research-cycle__graphic { margin: 0; min-width: 0; }
.research-cycle__graphic svg { display: block; width: 100%; height: auto; overflow: visible; }
.research-diagram {
  color: var(--cycle-colour);
  opacity: 0;
  visibility: hidden;
  transition: opacity 650ms ease-in-out, visibility 0s linear 650ms;
}
.research-diagram.is-current { opacity: 1; visibility: visible; transition-delay:0s; }
.research-flow { fill: none; stroke: currentColor; stroke-width: 3.5; stroke-linecap: round; }
.research-flow-signal{marker-end:none!important}
.research-flow-signal{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-dasharray:8 92;stroke-dashoffset:0;opacity:.72;animation:research-travel 6s linear infinite;animation-play-state:paused;pointer-events:none}
.research-cycle.is-running .research-diagram.is-current .research-flow-signal{animation-play-state:running}
@keyframes research-travel{to{stroke-dashoffset:-100}}
.research-flow--loss { color: #a4a6a2; }
.research-node{fill:currentColor}
.research-node use{fill:none;stroke:white;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.research-loss { fill: #a4a6a2; }
.research-label, .research-loss-label, .research-loop-label, .research-centre-label, .research-centre-note {
  font-family: 'Space Grotesk', sans-serif;
  text-anchor: middle;
  fill: #394139;
}
.research-label { font-size: 16px; font-weight: 500; }
.research-loss-label{font-size:14px;fill:#747a72}
.research-loop-label { font-size: 15px; font-weight: 400; fill: currentColor; paint-order:stroke fill;stroke:#e9eae7;stroke-width:8px;stroke-linejoin:round; }
.research-centre-label { font-size: 23px; font-weight: 500; letter-spacing: -.025em; }
.research-centre-note { font-size: 12px; fill: #626961; }
.research-cycle__graphic figcaption {
  margin-top: 12px;
  text-align: center;
  font: 400 11px/1.5 'Space Grotesk', sans-serif;
  color: #697066;
}
.research-cycle__copy { display: grid; min-width: 0; padding: 26px 0; }
.research-cycle__copy article {
  grid-area: 1/1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 450ms ease, visibility 450ms;
}
.research-cycle__copy article.is-current { opacity: 1; visibility: visible; pointer-events: auto; }
.research-cycle__copy h3 {
  font: 400 clamp(26px, 2.6vw, 38px)/1.12 'halyard-display', sans-serif;
  letter-spacing: -.018em;
  margin: 16px 0 20px;
  max-width: 450px;
  text-wrap: balance;
}
.research-cycle__copy article > p:last-child {
  font: 400 clamp(15px, 1.25vw, 18px)/1.65 'Space Grotesk', sans-serif;
  color: #50554f;
  max-width: 440px;
  margin: 0;
}
@media (max-width: 760px) {
  .research-cycle { padding: 0 6vw; }
  .research-cycle__header{display:block}
  .research-cycle__controls { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 18px 0 0; }
  .research-cycle__controls button { font-size: 11px; padding: 10px 12px; gap: 6px; justify-content: center; }
  .research-cycle__controls button span { font-size: 10px; }
  .research-cycle__layout { grid-template-columns: minmax(0, 1fr); gap: 4px; padding-top: 8px; }
  .research-cycle__graphic { width: 100%; max-width: 540px; margin: auto; }
  .research-cycle__copy { padding: 20px 0 0; }
  .research-cycle__copy h3 { max-width: 380px; }
  .research-label { font-size: 18px; }
  .research-loop-label { font-size: 18px; }
  .research-loss-label {font-size:18px}
  .research-centre-note { font-size: 17px; }
  .research-cycle__graphic figcaption { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .research-cycle *, .research-cycle *::before, .research-cycle *::after {
    animation: none !important;
    transition: none !important;
  }
}
