/* Editorial adjustments are local to this project; retain the shared Hero framing. */
html.research-page[data-project="bim2robot"] {
  --section-space: clamp(28px, 2.8vw, 40px);
  --media-space: 20px;
}
/* Project-specific media measures; shared editorial CSS owns the body grid. */
html.research-page[data-project="bim2robot"] .research-section {
  --media-compact: 640px;
  --media-standard: 840px;
  --media-wide: 1040px;
  --comparison-width: 800px;
  --demo-width: 880px;
}
/* Keep the native scene over the soft poster extension in landscape.
   The shared cover opt-in fills phones and portrait tablets. */
html.research-page[data-project="bim2robot"] .project-hero--video {
  /* Keep the projected bracket and robot wrist together in the portrait crop. */
  --rp-mobile-hero-position: 65% 50%;
  height: 100vh;
  height: 100svh;
}
.research-page .project-hero--video .hero-media-primary {
  display: grid;
  place-items: center;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
}
.research-page .project-hero--video .hero-media-primary video {
  width: min(100%, calc(100svh * 1.7777778));
  height: auto;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center;
  mask-image: linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent),linear-gradient(transparent,#000 8%,#000 92%,transparent);
  mask-composite: intersect;
}

.b2r-hero-gradient,
.b2r-hero-copy {
  position: absolute;
  pointer-events: none;
}
.b2r-hero-gradient {
  inset: 0;
  z-index: 0;
  background: linear-gradient(
    90deg,
    rgba(6, 14, 20, 0.80) 0%,
    rgba(6, 14, 20, 0.55) 28%,
    rgba(6, 14, 20, 0.20) 48%,
    rgba(6, 14, 20, 0) 66%
  );
}
html.research-page[data-project="bim2robot"] .b2r-hero-copy {
  position: absolute;
  top: auto;
  bottom: clamp(56px, 8svh, 112px);
  left: clamp(28px, 5.5vw, 96px);
  width: min(46vw, 650px);
  transform: none;
  z-index: 1;
  font-family: var(--font-noto-sans);
  text-align: left;
}
.b2r-hero-copy > h1.b2r-hero-title {
  margin: 0;
  color: #fff;
  font-size: clamp(46px, 5.3vw, 86px);
  font-weight: 750;
  line-height: 0.99;
  letter-spacing: -0.048em;
  text-wrap: wrap;
}
.b2r-hero-title > span {
  display: block;
}
.b2r-hero-title-accent {
  color: #d2f1cc;
  font-family: Georgia, serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.04em;
}
.b2r-hero-copy > .b2r-hero-description {
  max-width: 470px;
  margin: 28px 0 0;
  color: rgba(255, 255, 255, 0.93);
  font-size: clamp(15px, 1.15vw, 18px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
}
@media (768px <= width <= 1100px) {
  html.research-page[data-project="bim2robot"] .b2r-hero-copy {
    left: 5vw;
    width: min(52vw, 580px);
  }
  .b2r-hero-copy > h1.b2r-hero-title {
    font-size: clamp(44px, 5.3vw, 60px);
  }
  .b2r-hero-copy > .b2r-hero-description {
    max-width: 420px;
    font-size: 15px;
  }
}
@media (max-width: 767px) {
  .b2r-hero-gradient {
    background: linear-gradient(
      to top,
      rgba(8, 16, 22, 0.90) 0%,
      rgba(8, 16, 22, 0.70) 32%,
      rgba(8, 16, 22, 0.17) 66%,
      rgba(8, 16, 22, 0) 85%
    );
  }
  html.research-page[data-project="bim2robot"] .b2r-hero-copy {
    inset: auto 24px clamp(34px, 8vh, 70px);
    width: auto;
    transform: none;
  }
  .b2r-hero-copy > h1.b2r-hero-title {
    font-size: clamp(38px, 10vw, 56px);
    line-height: 1.02;
  }
  .b2r-hero-copy > .b2r-hero-description {
    max-width: 100%;
    margin-top: 22px;
    font-size: 15px;
    line-height: 1.45;
  }
}

/* Relocate the original centered publication block without changing its type,
   measure, internal gaps, author layout, affiliations, or resource buttons. */
.research-page .paper-metadata { padding: var(--section-space) var(--page-gutter); }
.research-page .paper-metadata .research-publication {
  width: min(100%, 980px);
  margin: 0 auto;
  padding: 0;
  gap: 10px;
  color: var(--hero-ink, #17191c);
}
.research-page .paper-metadata .hero-paper-title {
  max-width: 850px;
  color: inherit;
  font-size: clamp(20px, 1.5vw, 26px);
  line-height: 1.35;
}
.research-page .paper-metadata .header-authors { row-gap: 6px; }
.research-page .paper-metadata .research-publication > .text-sm { max-width: 900px; font-size: 14px; line-height: 1.55; }
.research-page .concept-comparison {
  width: min(100%, var(--comparison-width));
  margin: 24px auto 0;
}
.research-page #approach .research-wide { margin-block: var(--media-space) 0; }
.research-page #approach .workface-sequence {
  width: min(100%, var(--media-standard));
  margin-inline: auto;
}
/* The framework's dense labels justify one modest breakout from the text. */
.research-page #approach .workface-framework {
  --framework-width: min(var(--media-wide), calc(100cqw - 2 * var(--page-gutter)), calc((100cqw - 2px) * 1904 / 2074));
  width: var(--framework-width);
  margin-inline: calc((100% - var(--framework-width)) / 2);
}
/* The 1904px source has 170px of transparent space on the right.
   Center the visible artwork without cropping the image. The width guard above
   keeps the complete shifted canvas inside the viewport at intermediate sizes. */
.research-page #approach .workface-framework img {
  transform: translateX(calc(100% * 85 / 1904));
}
.research-page #approach .research-enlarge { margin: 0; }
.research-page #alignment-demo .alignment-gallery { margin-top: 0; }
.research-page #alignment-demo > .research-wide {
  width: min(100%, var(--demo-width));
  margin-inline: auto;
}
.research-page .alignment-gallery [data-tabs-content] { margin-top: 8px; }
.research-page .alignment-gallery [data-tabs-trigger] { font-size: 14px; }
.research-page .demo-heading { margin-bottom: 6px; }
.research-page .speed-label { padding: 0; border: 0; font-size: 14px; }
.research-page .video-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.research-page .alignment-gallery .video-pair figcaption { margin: 0 0 6px; font-size: 14px; }
.research-page .demo-controls { margin-top: 10px; gap: 10px; }
.research-page .demo-controls button { font-size: 14px; }
.research-page .screen-reader-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.research-page .demo-speed { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.research-page .demo-speed select {
  padding: 6px 10px;
  border: 1px solid #dededb;
  border-radius: 6px;
  background: #fff;
  color: inherit;
  font: inherit;
}
/* Keep the numerical results aligned with the demonstration media. */
.research-page .alignment-results {
  width: min(100%, var(--demo-width));
  margin-inline: auto;
}
@media (max-width: 700px) {
  .research-page .video-pair { grid-template-columns: minmax(0, 1fr); }
}
