/* Research carousel. Colors and type follow the site's shared tokens. */
.research-carousel { position: relative; }
.research-slide { min-width: 0; }
.research-slide[hidden] { display: none; }
.research-carousel:not([data-research-ready]) .research-slide + .research-slide { margin-top: 64px; }
.research-title {
  max-width: 25ch;
  min-height: 2.4em;
  margin: 0 180px 32px 0;
  color: var(--fg);
  font-family: var(--font-display);
  font-size: var(--fs-h2);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.research-title a { color: inherit; text-decoration: none; }
.research-title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.research-title a:focus-visible,
.research-control:focus-visible { outline: 2px solid var(--brand); outline-offset: 5px; }
.research-figure { margin: 0; }
.research-visual {
  display: grid;
  place-items: center;
  min-height: 540px;
  padding: 40px;
  overflow: hidden;
  background: var(--bg-2);
}
.research-visual--benchmark { display: block; padding: 0; }
.research-caption { display: grid; gap: 12px; margin-top: 24px; }
.research-summary {
  max-width: 74ch;
  margin: 0;
  color: var(--fg-muted);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.6;
}
.research-source {
  margin: 0;
  color: var(--fg-muted);
  font-family: var(--font-body);
  font-size: var(--fs-mono-sm);
  line-height: 1.5;
}
.research-controls {
  position: absolute;
  top: 0;
  right: var(--gutter);
  display: flex;
  align-items: center;
  gap: 12px;
}
.research-controls[hidden] { display: none; }
.research-counter {
  min-width: 50px;
  color: var(--fg-muted);
  font-family: var(--font-body);
  font-size: var(--fs-mono-sm);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.research-control {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: transparent;
  color: var(--fg);
  cursor: pointer;
}
.research-control:hover { background: var(--bg-2); border-color: var(--fg-muted); }
.research-control svg { width: 18px; height: 18px; }
@media (max-width: 700px) {
  .research-carousel { display: flex; flex-direction: column; }
  .research-title { min-height: 0; max-width: 28ch; margin-right: var(--gutter); margin-bottom: 28px; }
  .research-controls { position: static; order: 2; justify-content: flex-end; margin-top: 24px; }
  .research-visual { min-height: 350px; padding: 28px 20px; }
  .research-visual--benchmark { padding: 0; }
}
/* The source chart uses the same quiet frame as the article slides. */
.research-visual .imp-panel { border:0; border-radius:0; box-shadow:none; }
.research-visual .imp-chart { padding:32px 24px 20px; }
.research-visual .imp-tick, .research-visual .imp-axis-title,
.research-visual .imp-guide-lbl, .research-visual .imp-lbl-name,
.research-visual .imp-lbl-val { font-family:var(--font-body); }
.research-visual .imp-guide-lbl { font-size:12px; }
@media(max-width:700px) {
  .research-visual .imp-chart { padding:16px 0; }
}
.research-visual--benchmark > .imp-grid { width:100%; }

.research-visual--navier { background:#090909; padding:0; }
.research-visual--bloom { background:#f0eee6; padding:0; }
.research-image-link { display:flex; width:100%; height:540px; align-items:center; justify-content:center; }
.research-image { display:block; width:100%; height:100%; object-fit:contain; }
.research-image-link:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
@media(max-width:700px) {
  .research-image-link { height:350px; }
}

.nowrap { white-space:nowrap; }
