/* /arpa-h-surpass: the page's own world, the protocol's study schema. */

/* ══ The page's own world: the study-schema figure every protocol carries.
   Boxes, arms as lanes, interim-analysis diamonds, an arm that enters, one
   that stops, an enrichment bracket; sections numbered like protocol
   headings under dashed schema rules. ══ */
.page-schema main { counter-reset: psec; }
.schema-hero { padding: 136px 0 80px; }
.schema-hero__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 64px; align-items: end; }
.schema-hero .page-title { max-width: none; font-size: clamp(44px, 5.4vw, 82px); }
.schema-hero .page-lede { margin-top: 0; }
.schema-hero__sol { margin: 0 0 18px; font: 500 11px var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: #9fd8ff; }
.schema { margin: 56px 0 0; padding: 26px 26px 18px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 4px; background: #070b11; box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9); animation: heroUp 0.9s var(--ease-out) 0.2s both; }
.schema svg { display: block; width: 100%; height: auto; overflow: visible; }
.schema text { font: 500 13px var(--font-ui); fill: #e6edf5; }
.schema .schema__ph { font: 600 10px var(--font-ui); letter-spacing: 0.16em; fill: rgba(159, 216, 255, 0.82); }
.schema .schema__ph.is-cont { fill: var(--live); }
.schema__phase { fill: none; stroke: #5cc8ff; stroke-width: 2; }
.schema__box rect { fill: #0b1320; stroke: rgba(255, 255, 255, 0.55); }
.schema__arrow { fill: none; stroke: rgba(255, 255, 255, 0.55); }
.schema__lane { fill: none; stroke: rgba(255, 255, 255, 0.72); stroke-width: 1.5; }
.schema__lane.is-b { stroke: rgba(255, 255, 255, 0.45); }
.schema__lane.is-new { stroke: var(--live); stroke-width: 2; }
.schema .schema__lab { font-size: 12px; fill: var(--muted); }
.schema .schema__lab.is-new { fill: var(--live); }
.schema__ia path { fill: none; stroke: rgba(159, 216, 255, 0.45); stroke-dasharray: 4 5; }
.schema__ia rect { fill: #070b11; stroke: #5cc8ff; }
.schema .schema__ia text { font: 600 11px var(--font-mono); fill: #9fd8ff; }
.schema__stop path { fill: none; stroke: #ff8a82; stroke-width: 2; }
.schema .schema__stop text { fill: #ff8a82; }
.schema__enrich path { fill: none; stroke: #f2c46d; stroke-width: 1.5; }
.schema .schema__enrich text { fill: #f2c46d; }
.schema .schema__lane[data-at], .schema .schema__phase[data-at] { stroke-dasharray: 1000; stroke-dashoffset: 0; transition: stroke-dashoffset 1.5s var(--ease-out), opacity 0.3s ease; }
.schema.is-armed .schema__lane[data-at]:not(.is-on), .schema.is-armed .schema__phase[data-at]:not(.is-on) { opacity: 1; transform: none; stroke-dashoffset: 1000; }
.schema.is-armed g[data-at]:not(.is-on), .schema.is-armed text[data-at]:not(.is-on) { transform: none; }
.schema figcaption { margin-top: 10px; font: 500 10px var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--label); }

/* sections numbered like protocol headings */
.page-schema .section { counter-increment: psec; }
.page-schema .section-head { max-width: none; padding-top: 22px; border-top: 1px dashed rgba(159, 216, 255, 0.3); }
.page-schema .section-head > * { max-width: 760px; }
.page-schema .section-head .kicker::before { content: counter(psec) ".0"; margin-right: 14px; font: 600 14px var(--font-display); letter-spacing: 0; color: #fff; }

@media (max-width: 1100px) { .schema-hero__top { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .schema-hero { padding-top: 112px; }
  .schema { overflow-x: auto; padding: 18px 14px 14px; }
  .schema svg { width: 760px; max-width: none; }
}
