@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-italic-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/source-serif-4-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --paper: #fff;
  --ink: #262624;
  --muted: #696a67;
  --line: #e4e5e7;
  --surface: #f7f7f8;
  --red: #326f69;
  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 var(--serif); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, select, summary { cursor: pointer; }
button { color: inherit; }
a, button, input, select, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #315db3; outline-offset: 4px; }
svg { display: block; }
::selection { background: #f5dde0; }
h1, h2, h3, h4, p { margin-top: 0; }
h2 { margin-bottom: 0; font-size: 28px; font-weight: 400; line-height: 1.35; letter-spacing: -.35px; }
h3 { font-weight: 600; line-height: 1.45; }
p { margin-bottom: 18px; }
sup { margin-left: 2px; font-size: .65em; line-height: 0; }
.wrap { width: min(980px, calc(100% - 64px)); margin-inline: auto; }
.section-space { padding-block: 54px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 100; top: -80px; left: 20px; background: var(--ink); color: #fff; padding: 12px 20px; }
.skip-link:focus { top: 10px; }
.tiny-label, .kicker { font-size: 11px; font-weight: 500; letter-spacing: .5px; }
.subtle { color: var(--muted); font-size: 13px; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #6c737d; display: inline-block; flex-shrink: 0; }

/* The paper title, authors and resources are the entire page header. */
.hero { padding-top: 64px; text-align: left; }
.hero-heading { max-width: 900px; margin-inline: auto; }
.paper-title { max-width: 980px; margin: 0 0 24px; font-size: 36px; font-weight: 400; letter-spacing: -.6px; line-height: 1.25; }
.paper-title > span { display: block; }
.title-subtitle { margin-top: 5px; font-size: .86em; line-height: 1.3; letter-spacing: -.4px; text-wrap: balance; }
.authors { max-width: 760px; }
.author-row { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 3px 20px; margin: 0 0 4px; }
.author-row > span { white-space: nowrap; font-size: 16px; font-weight: 400; line-height: 1.7; }
.authors sup { color: #50535a; }
.affiliations { max-width: 760px; margin: 16px 0 0; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 4px 16px; color: #636661; font: 12px/1.7 var(--sans); }
.affiliations > span { white-space: nowrap; }
.contribution-note { margin: 8px 0 0; font: 11px/1.7 var(--sans); color: var(--muted); }
.hero-actions { display: flex; justify-content: flex-start; gap: 22px; margin: 20px 0 0; }
.resource-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 4px 0; border: 0; border-radius: 0; font: 13px/1.4 var(--sans); color: #326f69; transition: color .15s; }
.resource-button:not(:disabled):hover { color: #214e49; text-decoration: underline; text-underline-offset: 4px; }
.resource-button:disabled { cursor: default; opacity: 1; }
.paper-button { background: transparent; color: #777b77; }
.paper-button:not(:disabled):hover { background: transparent; }
.code-button { background: transparent; }
.code-button:hover { background: transparent; }
.resource-icon { width: 16px; height: 16px; flex-shrink: 0; }

/* The authors' original figure stays uncropped at every screen size. */
.hero-figure { margin: 36px 0 0; }
.hero-figure > a, .hero-figure img, .hero-figure video { display: block; }
.hero-figure img, .hero-figure video { width: 100%; height: auto; }
/* Match the rounded frame baked into the animation and hide its square edge. */
.hero-figure > a { overflow: hidden; border-radius: 2% / 7%; }
.hero-figure video { clip-path: inset(0 0 1px round 2% / 7%); }

/* Scroll-aware contents rail; stays outside the reading column. */
.contents-nav { position: fixed; z-index: 30; left: max(12px, calc((100vw - 980px) / 2 - 204px)); top: 50%; width: 164px; font-family: var(--serif); transform: translate(-8px, -50%); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, transform .2s, visibility .2s; }
.contents-nav.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(0, -50%); }
.contents-toggle { display: none; }
.contents-heading { margin: 0 0 13px; font-size: 20px; font-weight: 600; }
.contents-list { list-style: none; margin: 0; padding: 0 0 0 12px; position: relative; border-left: 1px solid #212d29; }
.contents-list a { position: relative; display: flex; align-items: center; min-height: 42px; color: #07857d; font-size: 15px; font-weight: 400; line-height: 1.4; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: #9ac9c3; transition: color .18s; }
.contents-list a:hover { color: #00594f; text-decoration-color: currentColor; }
.contents-list a[aria-current="location"] { color: #153f36; font-weight: 600; text-decoration-color: currentColor; }
.contents-list a[aria-current="location"]::before { content: ''; position: absolute; left: -14px; top: 10px; bottom: 10px; width: 3px; background: #07857d; }
@media (min-width: 1280px) {
  .wrap { width: min(980px, calc(100% - 400px)); }
}
@media (max-width: 1279px) {
  .contents-nav { top: auto; bottom: max(20px, env(safe-area-inset-bottom)); left: 20px; width: auto; transform: translateY(8px); }
  .contents-nav.is-visible { transform: translateY(0); }
  .contents-heading { display: none; }
  .contents-toggle { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 11px 15px; border: 1px solid #dedfe2; border-radius: 24px; background: #fff; box-shadow: 0 3px 16px #2021240d; font-size: 12px; font-weight: 500; }
  .contents-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
  .contents-current { color: var(--red); padding-left: 9px; border-left: 1px solid var(--line); }
  .contents-list { display: none; position: absolute; bottom: calc(100% + 10px); left: 0; width: 180px; padding: 12px 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 28px #20212414; }
  .contents-list a[aria-current="location"]::before { left: -17px; }
  .contents-nav.is-open .contents-list { display: block; }
  footer.wrap { padding-bottom: 90px; }
}

/* One continuous research page. */
.section-intro { max-width: 840px; margin: 0 auto 35px; text-align: center; }
.intro-copy { margin-top: 22px; color: #51555d; font-size: 16px; line-height: 1.85; }
.intro-copy p:last-child { margin-bottom: 0; }
.text-link { display: inline-flex; gap: 17px; font-size: 13px; border-bottom: 1px solid #b5b7bd; padding-bottom: 2px; margin-top: 6px; }
.text-link:hover { color: var(--red); border-color: var(--red); }
/* Method: opening explanation beside the always-visible algorithm. */
.method-band { display: flow-root; margin-top: 40px; background: #fcfcfb; }
.method-section > h2 { text-align: left; text-wrap: balance; }
.method-content { color: inherit; font: inherit; min-width: 0; }
.method-content p { margin-bottom: 14px; }
.method-content p:last-child { margin-bottom: 0; }
.method-introduction { margin: 0 0 24px; }
.method-steps { display: grid; gap: 22px; list-style: none; padding: 0; margin: 0; }
.method-step { min-width: 0; }
.method-step h3 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 12px; font: 600 20px/1.4 var(--serif); color: #253e32; }
.method-step-number { flex-shrink: 0; font: 500 12px/1 var(--sans); color: #07857d; letter-spacing: .04em; }
.method-preference-equation, .method-dpo-equation { margin-block: 20px; padding-block: 6px; }
.method-dpo-equation { display: flex; justify-content: center; align-items: baseline; }
.method-content strong, .method-curriculum strong { font-weight: 600; }
.method-definition { padding: 0; border: 0; border-bottom: 1px dotted #829abc; border-radius: 0; background: transparent; color: inherit; font-weight: 400; line-height: inherit; }
.method-definition:hover, .method-definition[aria-expanded="true"] { color: #294f80; border-bottom-style: solid; }
.math-inline { white-space: nowrap; }
.method-section .katex { font-size: 1.1em; color: inherit; }
.math-display { text-align: center; max-width: 100%; margin: 20px 0; padding: 2px 5px; overflow-x: auto; overflow-y: hidden; }
.math-display .katex-display { margin: 0; }
.method-curriculum { width: min(760px, 100%); margin: 32px auto 0; padding: 22px 26px; border: 1.5px solid #dbc3a8; border-radius: 6px; background: #fffaf4; text-align: left; }
.method-curriculum .math { color: #000; }
.method-curriculum p { margin-bottom: 0; }
.method-curriculum .curriculum-equation { margin: 18px 0; padding-block: 4px; text-align: center; }
.method-curriculum p:last-child { margin-bottom: 0; }
.algorithm-box { container-type: inline-size; width: 100%; max-width: 520px; margin: 0 auto; min-width: 0; font-family: KaTeX_Main, 'Times New Roman', serif; }
.algorithm-box h3 { display: grid; gap: 4px; margin: 0 -16px; padding: 14px 16px; border-bottom: 1px solid #e7d7c3; border-radius: 5px 5px 0 0; background: #fff3e3; font-size: 18px; font-weight: 400; line-height: 1.5; }
.algorithm-box h3 > span:first-child { color: #94633c; font: 600 11px/1.4 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.algorithm-name { white-space: nowrap; }
.algorithm-inputs { margin: 15px 0 13px; font-size: 14px; line-height: 1.6; }
.algorithm-input { white-space: nowrap; }
.algorithm-inputs strong, .algorithm-line strong { font-weight: 700; }
.algorithm-inputs strong { margin-right: .18em; }
.algorithm-code { list-style: none; counter-reset: algorithm-line; margin: 0; padding: 0; font-size: 18px; line-height: 1.6; }
.algorithm-row { counter-increment: algorithm-line; display: grid; grid-template-columns: 1.15em minmax(0, 1fr); align-items: baseline; column-gap: .4em; padding-block: 1px; }
.algorithm-row::before { content: counter(algorithm-line) ':'; text-align: right; color: #8a6b50; font-size: .88em; font-variant-numeric: tabular-nums; }
.algorithm-line { display: flex; align-items: baseline; gap: .16em; min-width: 0; white-space: nowrap; }
.algorithm-loop .algorithm-line { padding-left: .85em; }
.algorithm-sample-line { flex-wrap: wrap; column-gap: .3em; }
.algorithm-box .katex { font-size: 1em; }
.algorithm-function { display: inline-block; flex: 0 0 auto; padding: 0; border: 0; border-bottom: 1px dotted #c3946f; border-radius: 0; background: transparent; color: #934f1d; line-height: 1.3; cursor: pointer; transition: color .15s, border-color .15s; }
.algorithm-function-name { font-variant: small-caps; }
.algorithm-function:hover, .algorithm-function[aria-expanded="true"] { color: #6d370f; border-bottom-style: solid; border-bottom-color: currentColor; }
.function-popover { display: none; position: fixed; z-index: 100; inset: auto; margin: 0; width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; overscroll-behavior: contain; padding: 22px 24px 16px; border: 1px solid #cddbeb; border-radius: 16px; background: #fff; color: var(--ink); font: 15px/1.75 var(--sans); box-shadow: 0 14px 50px #20212421; }
.function-popover[data-open] { display: block; }
.function-popover[data-current-function="learnable"] { width: min(360px, calc(100vw - 32px)); }
.function-popover [data-function-panel="learnable"] p { margin-bottom: 0; }
.function-popover::backdrop { background: transparent; pointer-events: none; }
.function-popover-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 15px; }
.function-popover h3 { margin: 0; font-size: 18px; line-height: 1.5; }
#close-function-details { flex: 0 0 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 24px; line-height: 1; }
#close-function-details:hover { background: var(--surface); }
.function-popover p { margin-bottom: 14px; }
.function-popover strong { font-weight: 600; }
.function-popover .math-display { margin-block: 18px; }
.function-popover [data-function-panel][hidden] { display: none; }
@media (max-width: 760px) {
  .method-curriculum { padding: 18px; }
}
@media (max-width: 900px) {
  .method-dpo-equation { flex-direction: column; align-items: center; gap: 14px; }
  .dpo-equation-space { display: none; }
}
@media (max-width: 430px) {
  .method-band { margin-top: 40px; }
  .algorithm-box { border-radius: 6px; }
  .algorithm-box h3 { border-radius: 5px 5px 0 0; }
  .algorithm-loop .algorithm-line { padding-left: .5em; }
  .function-popover { padding: 18px 16px 14px; }
  .function-popover .katex { font-size: 1em; }
}

summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; list-style: none; padding: 18px 0; font-size: 14px; }
summary::-webkit-details-marker { display: none; }
summary > span { color: #70747c; font-size: 21px; line-height: 1; }
details[open] > summary > span { transform: rotate(45deg); }
figure { margin: 15px 0 25px; }
figure img { width: 100%; height: auto; background: #fff; }
figcaption { font-size: 12px; line-height: 1.7; margin-top: 12px; color: var(--muted); }
.explorer-section { border-block: 1px solid var(--line); background: #fafafa; }
.explorer-shell { display: grid; grid-template-columns: 230px minmax(0,1fr); min-height: 550px; border: 1px solid #dddfe3; border-radius: 9px; overflow: hidden; background: #fff; }
.task-sidebar { padding: 25px 14px; background: #f6f6f7; border-right: 1px solid var(--line); }
.task-sidebar > .tiny-label { display: block; margin: 0 12px 17px; color: #60646c; }
.task-category { margin: 21px 12px 9px; font-size: 10px; color: #62666e; letter-spacing: .5px; }
.task-button { display: block; width: 100%; border: 1px solid transparent; border-radius: 6px; background: transparent; padding: 13px 12px; text-align: left; font-size: 13px; color: #53565f; line-height: 1.45; margin-bottom: 5px; }
.task-button:hover { background: #eaeaec; }
.task-button[aria-pressed=true] { background: #fff; border-color: #c7c9ce; color: #202124; }
.task-button small { display: block; font-size: 10px; margin-top: 6px; color: #666a72; }
.sidebar-footer { display: flex; gap: 7px; align-items: center; margin: 28px 12px 0; font-size: 10px; color: #62666e; }
.explorer-main { padding: 27px 31px; min-width: 0; }
.task-header-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.task-header-line h3 { margin-bottom: 10px; font-size: 25px; font-weight: 500; letter-spacing: -.65px; }
.generator-badge { padding: 4px 8px; font-size: 10px; color: #565b65; border: 1px solid #d8d9de; border-radius: 4px; white-space: nowrap; }
.task-goal { max-width: 740px; font-size: 13px; line-height: 1.8; color: #62666e; margin-bottom: 22px; }
.stage-label { display: flex; justify-content: space-between; gap: 15px; align-items: center; color: #656970; }
.stage-label > span:last-child { font-size: 10px; }
.stage-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 23px; }
.stage-button { min-width: 44px; padding: 7px 13px; border: 1px solid #d3d5da; background: #fff; border-radius: 5px; font-size: 13px; color: #555b66; }
.stage-button:hover { border-color: #777; }
.stage-button[aria-pressed=true] { background: #2b2c30; border-color: #2b2c30; color: #fff; }
.stage-summary { font-size: 16px; line-height: 1.8; color: #4d525d; margin: 9px 0 12px; }
.summary-label { font-size: 11px; color: #676c76; }
.goal-quotation q { font-style: italic; quotes: "“" "”" "‘" "’"; }
.explorer-tabs { display: flex; gap: 27px; border-bottom: 1px solid var(--line); margin-top: 23px; }
.explorer-tabs button { background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 11px 0; font-size: 12px; color: #62666e; }
.explorer-tabs button[aria-selected=true] { color: #25262a; border-bottom-color: #25262a; }
.explorer-tabs button span { font-size: 10px; background: #f0f0f2; padding: 2px 5px; border-radius: 3px; margin-left: 3px; }
.explorer-panel { padding: 21px 0 3px; min-height: 180px; font-size: 13px; color: #62666e; }
.explorer-panel[hidden] { display: none; }
.panel-label { font-size: 11px; font-weight: 500; color: #585e69; margin-bottom: 9px; }
.panel-description { font-size: 13px; color: #5b606b; line-height: 1.85; }
.selection-card { background: #f5f7fb; border: 1px solid #dde3ed; border-radius: 14px; padding: 22px 24px; margin-bottom: 0; color: #333b48; }
.selection-card h4 { font-size: 18px; margin: 9px 0 14px; color: #29364a; }
.selection-card p { font-size: 16px; line-height: 1.7; margin: 0; }
.evidence-status { font-size: 10px; letter-spacing: .035em; font-weight: 600; color: #55627a; }
.selection-limitations, .selection-bridge { border-top: 1px solid #dce2ec; margin-top: 18px; padding-top: 16px; }
.selection-limitations strong, .selection-bridge strong { display: block; font-size: 12px; margin-bottom: 7px; }
.selection-bridge summary { cursor: pointer; color: #3a506e; font-weight: 600; }
.selection-bridge p, .selection-bridge ul { margin-top: 14px; }
.selection-bridge li { margin: 5px 0; }
.trace-pair + .trace-pair { border-top: 1px solid #e0e5ed; padding-top: 22px; margin-top: 8px; }
.trace-pair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.trace-pair-grid.single-candidate { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
.trace-card { border: 1px solid #dce1df; border-radius: 6px; padding: 18px; margin-bottom: 18px; background: #fff; min-width: 0; }
.trace-card-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; font-size: 10px; margin-bottom: 15px; color: #626773; }
.judgment-badge { font-size: 10px; font-weight: 600; letter-spacing: .2px; padding: 4px 7px; border-radius: 4px; }
.judgment-positive { color: #275b3d; background: #eaf4ec; }
.judgment-negative { color: #914042; background: #fbeded; }
.judgment-abstain { color: #545861; background: #eeeef0; }
.candidate-representation { background: #f5f6f8; border: 1px solid #e6e8ed; border-radius: 7px; padding: 12px; margin-bottom: 13px; }
.representation-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.representation-label { font-size: 10px; font-weight: 600; letter-spacing: .055em; text-transform: uppercase; color: #596374; }
.candidate-representation code { display: block; font-size: 13px; line-height: 1.7; color: #24364d; overflow-wrap: anywhere; word-break: break-word; white-space: pre-wrap; }
.peptide-sequence code { letter-spacing: .09em; font-size: 14px; }
.copy-candidate { padding: 2px 0 2px 7px; border: 0; background: none; color: #375b83; font-size: 11px; }
.copy-candidate:hover { text-decoration: underline; }
.candidate-observables { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 0 0 17px; }
.candidate-observables div { min-width: 0; }
.candidate-observables dt { font-size: 10px; color: #6a7381; margin-bottom: 3px; }
.candidate-observables dd { font-size: 11px; color: #3f4b5d; margin: 0; }
.judge-passes { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 12px 0; border-top: 1px solid #e6e8ed; margin-bottom: 4px; }
.judge-passes button { background: #fff; border: 1px solid #d7dce5; border-radius: 5px; padding: 5px 8px; font-size: 11px; color: #566075; }
.judge-passes button[aria-pressed=true] { background: #eaf0f8; border-color: #b4c5df; color: #2e4e75; font-weight: 600; }
.judge-output[hidden] { display: none; }
.trace-field h5 { font-size: 14px; font-weight: 600; color: #303b4b; margin: 12px 0 8px; }
.trace-card .trace-field p { font-size: 15px; color: #46505f; margin: 0; line-height: 1.8; overflow-wrap: anywhere; }
.trace-uncertainty { border-top: 1px solid #e9ebef; margin-top: 16px; padding-top: 1px; }
.trace-placeholder { border-style: dashed; background: #fcfcfd; }
.selection-placeholder { border-style: dashed; background: #fafbfc; }
.placeholder-notice { padding: 13px 16px; border: 1px solid #e1e4e9; border-radius: 8px; background: #f7f8fa; margin-bottom: 20px; line-height: 1.8; }
.representation-pending p { margin: 8px 0 0; color: #818897; font-size: 16px; }
.placeholder-note { font-size: 10px; color: #7a808c; line-height: 1.7; margin: 18px 0 0; }
@media (max-width: 1100px) {
  .trace-pair-grid { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 600px) {
  .selection-card { padding: 18px; }
  .trace-card { padding: 16px; }
  .explorer-tabs { gap: 19px; }
}
.trace-empty { border: 1px dashed #bfc3cc; border-radius: 5px; padding: 18px; color: #656b77; font-size: 13px; line-height: 1.9; }
.explorer-panel summary { font-size: 12px; }
.text-button { display: inline-flex; gap: 14px; align-items: center; padding: 0; border: 0; background: none; color: inherit; font-size: 11px; }
.text-button:hover { text-decoration: underline; text-underline-offset: 4px; }

.result-number { font-size: 36px; font-weight: 500; letter-spacing: -1.4px; line-height: 1.1; }
.result-number small { font-size: 12px; font-weight: 400; letter-spacing: 0; margin-left: 5px; color: var(--muted); }
.result-baseline { font-size: 11px; color: var(--muted); margin-top: 12px; }
.result-bar { height: 3px; background: #eeeef0; margin-top: 18px; border-radius: 3px; }
.result-bar span { display: block; height: 100%; background: #686c74; border-radius: 3px; }
.results-table-shell { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.table-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px 25px; border-bottom: 1px solid var(--line); }
.table-controls .tiny-label { font-size: 10px; color: var(--muted); }
.table-controls h3 { font-size: 19px; margin: 3px 0 0; font-weight: 500; }
select { max-width: 100%; background: #fff; color: #454b58; border: 1px solid #d3d5db; border-radius: 5px; padding: 9px 29px 9px 12px; font-size: 13px; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: right; font: 13px/1.65 var(--sans); font-variant-numeric: tabular-nums; white-space: nowrap; }
th, td { padding: 14px 22px; }
thead th { font-size: 11px; font-weight: 500; background: #f7f7f8; color: #5b626e; }
th:first-child, td:first-child { text-align: left; }
tbody th { font-weight: 400; }
tbody th, td { border-top: 1px solid var(--line); color: #5b626e; }
tr.ours { background: #f1f2f4; }
tr.ours th, tr.ours td, .best { color: #202124; font-weight: 600; }
.table-note { border-top: 1px solid var(--line); padding: 16px 25px; margin: 0; font-size: 11px; color: var(--muted); line-height: 1.9; }
.paper-results-figure { margin-top: 37px; padding: 15px; border: 1px solid var(--line); border-radius: 7px; }
.paper-results-figure img { display: block; }
.paper-results-figure figcaption strong { font-weight: 500; color: #3f4550; }
.paper-results-figure figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.docking-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-top: 28px; }
.docking-gallery figure { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; margin: 0; }
.docking-image { padding: 25px; }
.docking-image img { display: block; width: 100%; height: 240px; object-fit: contain; }
.docking-gallery figcaption { display: flex; flex-direction: column; gap: 9px; padding: 23px; margin: 0; border-top: 1px solid var(--line); }
.docking-gallery .tiny-label { font-size: 10px; }
.docking-gallery strong { font-size: 19px; font-weight: 500; color: #3b414b; line-height: 1.5; letter-spacing: -.4px; }
.docking-gallery figcaption > span:last-child { font-size: 11px; }
.ood-callout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; padding: 32px; margin-top: 37px; background: #f8f8f9; border-radius: 8px; }
.ood-callout h3 { font-size: 22px; font-weight: 500; letter-spacing: -.5px; margin-bottom: 17px; }
.ood-callout p { font-size: 14px; color: #5f6671; }
.ood-stats { display: flex; flex-direction: column; justify-content: center; gap: 29px; border-left: 1px solid #dcdee2; padding-left: 45px; }
.ood-stats strong { display: block; font-size: 31px; font-weight: 500; line-height: 1.2; letter-spacing: -.8px; }
.ood-stats strong span { font-size: 14px; letter-spacing: 0; font-weight: 400; color: #656b77; }
.ood-stats > div > span { display: block; font-size: 12px; margin-top: 8px; color: #646a75; }
.closing-section { border-top: 1px solid var(--line); padding-bottom: 45px; }
.closing-top { text-align: center; }
.citation { margin-top: 27px; padding: 23px 26px; background: #f7f7f8; border: 1px solid var(--line); border-radius: 7px; }
.citation > div { display: flex; justify-content: space-between; align-items: center; }
.citation .tiny-label { font-size: 11px; color: #626873; }
.citation pre { margin: 19px 0 0; overflow-x: auto; font-size: 12px; line-height: 1.9; color: #575e6a; }
.citation p { margin: 13px 0 0; font-size: 11px; color: #656b76; }
footer { padding-block: 26px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 20px; color: #696f7a; font-size: 11px; }
#toast { position: fixed; z-index: 50; bottom: 25px; left: 50%; transform: translate(-50%,20px); opacity: 0; pointer-events: none; max-width: 90vw; background: #25262a; color: #fff; border-radius: 7px; padding: 12px 22px; font-size: 13px; transition: .2s; }
#toast.show { opacity: 1; transform: translate(-50%,0); }
.noscript { padding: 20px; background: #f5f5f6; }
.noscript a { text-decoration: underline; }

@media (max-width: 1050px) {
  .wrap { width: calc(100% - 48px); }
  .author-row { gap: 7px 18px; }
  .explorer-shell { grid-template-columns: 195px minmax(0,1fr); }
  .task-sidebar { padding-inline: 10px; }
  .explorer-main { padding: 26px; }
  .ood-callout { gap: 35px; }
  .ood-stats { padding-left: 30px; }
}
@media (max-width: 760px) {
  .wrap { width: calc(100% - 36px); }
  .hero { padding-top: 44px; }
  .paper-title { font-size: 32px; letter-spacing: -.45px; margin-bottom: 24px; }
  .title-subtitle { font-size: .86em; letter-spacing: -.3px; }
  .author-row > span { font-size: 15px; }
  .author-row { gap: 8px 17px; }
  .affiliations { font-size: 11px; gap: 5px 14px; margin-top: 16px; }
  .hero-actions { margin-top: 18px; gap: 22px; }
  .resource-button { min-height: 44px; }
  .resource-icon { width: 16px; height: 16px; }
  .hero-figure { margin-top: 28px; }
  .section-space { padding-block: 42px; }
  h2 { font-size: 26px; }
  .section-intro { margin-bottom: 27px; }
  .intro-copy { font-size: 15px; margin-top: 18px; }
  .explorer-shell { grid-template-columns: minmax(0, 1fr); }
  .task-sidebar { min-width: 0; padding: 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .task-sidebar > .tiny-label { margin: 0 0 12px; }
  .task-category, .sidebar-footer { display: none; }
  #task-list { display: flex; gap: 7px; overflow-x: auto; padding: 1px 1px 6px; scrollbar-width: thin; }
  .task-button { flex-shrink: 0; width: auto; padding: 11px 13px; margin: 0; font-size: 12px; }
  .task-button small { font-size: 10px; }
  .explorer-main { padding: 23px; }
  .task-header-line h3 { font-size: 23px; }
  .paper-results-figure { overflow-x: auto; padding: 12px; }
  .paper-results-figure img { min-width: 660px; }
  .docking-image { padding: 15px; }
  .docking-image img { height: 180px; }
  .docking-gallery { gap: 18px; }
  .docking-gallery figcaption { padding: 18px; }
  .docking-gallery strong { font-size: 17px; }
  .ood-callout { grid-template-columns: 1fr; gap: 25px; padding: 27px; }
  .ood-stats { border-left: 0; border-top: 1px solid #dcdee2; padding: 25px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
  .citation { padding: 20px; }
  .citation pre { font-size: 11px; }
}
@media (max-width: 430px) {
  .math-display { padding-inline: 2px; }
  .method-content .math-display .katex, .method-curriculum .math-display .katex { font-size: 1em; }
  .hero { padding-top: 35px; }
  .paper-title { font-size: 29px; line-height: 1.25; letter-spacing: -.4px; }
  .title-subtitle { font-size: .86em; margin-top: 5px; }
  .author-row > span { font-size: 15px; }
  .author-row { gap: 6px 14px; }
  .affiliations { font-size: 11px; gap: 5px 12px; }
  .contribution-note { font-size: 11px; }
  .resource-button { gap: 7px; min-height: 44px; }
  .resource-icon { width: 16px; height: 16px; }
  .contents-nav { left: 14px; bottom: max(14px, env(safe-area-inset-bottom)); }
  .explorer-main { padding: 20px 17px; }
  .task-header-line { gap: 9px; }
  .task-header-line h3 { font-size: 21px; }
  .generator-badge { font-size: 9px; }
  .stage-label { align-items: flex-start; }
  .stage-label .tiny-label { font-size: 10px; }
  .stage-label > span:last-child { font-size: 9px; text-align: right; }
  .stage-summary { font-size: 14px; }
  .stage-rounds { font-size: 10px; }
  .stage-button { min-width: 37px; padding: 7px 11px; }
  .explorer-tabs { gap: 19px; }
  .explorer-tabs button { font-size: 11px; }
  .result-number { font-size: 32px; }
  .table-controls { padding: 18px 15px; }
  .table-controls h3 { font-size: 17px; }
  .table-controls select { font-size: 11px; max-width: 168px; }
  .docking-gallery { grid-template-columns: 1fr; }
  .docking-image img { height: 200px; }
  .ood-callout { padding: 24px 20px; }
  .ood-stats strong { font-size: 25px; }
  .ood-stats > div > span { font-size: 11px; }
  footer { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Keep the slightly larger algorithm readable in narrower columns. */
@container (max-width: 350px) {
  .algorithm-box h3, .algorithm-code { font-size: 16px; }
  .algorithm-inputs { font-size: 14px; }
}
[data-generator="PepDFM"] { --goal-accent: #345d86; --goal-surface: #f7f9fc; --goal-border: #d7e0ea; --goal-strong: #284b70; --goal-selected: #edf2f8; }
[data-generator="FlowMol3"] { --goal-accent: #216d62; --goal-surface: #f6faf8; --goal-border: #d3e3db; --goal-strong: #1b584f; --goal-selected: #edf5f0; }
.generator-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 14px 0; font-size: 13px; }
.generator-legend > span:first-child { margin-right: 4px; color: #535964; }
.generator-label { display: inline-flex; align-items: center; gap: 5px; padding: 2px 0; border: 0; border-radius: 0; background: transparent; color: var(--goal-strong); font-size: 12px; font-weight: 500; line-height: 1.5; white-space: nowrap; }
.generator-label > span { font-weight: 400; }
/* Full-width experiment disclosures keep each discovery prompt beside its results. */
.goal-accordions { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; margin: 18px 0 20px; }
.goal-accordion { min-width: 0; border: 1px solid var(--goal-border); border-radius: 7px; background: var(--goal-surface); transition: border-color .18s, box-shadow .18s; }
.goal-accordion.is-open { border-color: var(--goal-accent); box-shadow: none; }
.goal-heading { margin: 0; font: inherit; }
.result-card { position: relative; display: block; width: 100%; border: 0; border-radius: 6px; padding: 20px 54px 20px 24px; text-align: left; background: transparent; color: var(--goal-strong); }
.result-card:hover { background: var(--goal-selected); }
.result-card:focus-visible { outline-color: var(--goal-accent); outline-offset: 3px; }
.result-card.is-selected { border-radius: 6px 6px 0 0; background: var(--goal-selected); }
.goal-title-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.goal-number { font-size: 22px; line-height: 1.3; font-weight: 600; white-space: nowrap; }
.result-task-name { font-size: 19px; line-height: 1.4; font-weight: 600; }
.goal-prompt { display: block; margin-top: 10px; color: #565c66; font-size: 15px; font-weight: 400; line-height: 1.65; }
.goal-prompt strong { font-weight: 600; }
.goal-card-state { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border: 1px solid var(--goal-border); border-radius: 50%; color: var(--goal-accent); background: #ffffff80; }
.goal-card-state::before, .goal-card-state::after, .disclosure-icon::before, .disclosure-icon::after { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 12px; height: 2px; background: currentColor; border-radius: 1px; }
.goal-card-state::after, .disclosure-icon::after { width: 2px; height: 12px; }
[aria-expanded="true"] > .goal-card-state::after, [aria-expanded="true"] > .disclosure-icon::after { display: none; }
.disclosure-icon { position: relative; display: inline-block; flex: 0 0 18px; width: 18px; height: 18px; }

.goal-content { border-top: 1px solid var(--goal-border); border-radius: 0 0 6px 6px; overflow: hidden; }
@media (max-width: 600px) {
  .goal-accordions { gap: 12px; }
  .result-card { padding: 16px 44px 16px 18px; }
  .goal-title-line { gap: 4px 9px; }
  .goal-number { font-size: 21px; }
  .result-task-name { font-size: 17px; }
  .goal-prompt { font-size: 15px; line-height: 1.65; margin-top: 8px; }
  .goal-card-state { right: 13px; }
}

.results-explorer { padding: 18px 24px 22px; background: #fff; overflow: hidden; }
.results-explorer[hidden], .goal-content[hidden] { display: none; }
#task-results-plots { padding: 20px 0; }
#task-results-plots:empty { display: none; }
#task-results-plots:empty + .results-details { border-top: 0; }
.interactive-chart { width: 100%; min-width: 0; height: 370px; -webkit-tap-highlight-color: transparent; }
.task-peptide-bars { margin: 0; }
.results-details { border-top: 1px solid var(--line); padding-top: 20px; }
.results-values, #task-scaffold-novelty { min-width: 0; }
#task-scaffold-novelty:empty { display: none; }
.results-details.has-novelty, .results-details.has-comparison { display: grid; grid-template-columns: minmax(460px,1.18fr) minmax(0,1fr); gap: 28px; align-items: stretch; }
.has-novelty .results-table th, .has-novelty .results-table td, .has-comparison .results-table th, .has-comparison .results-table td { padding-inline: 8px; }
.has-novelty .results-table .table-mean, .has-comparison .results-table .table-mean { font-size: 14px; }
.has-novelty .results-table .table-uncertainty, .has-comparison .results-table .table-uncertainty { font-size: 11px; }
.has-comparison .results-table thead th { white-space: normal; }
.has-comparison #task-results-plots { min-width: 0; padding: 0; }
.scaffold-novelty { margin: 0; }
.scaffold-novelty .interactive-chart { height: 320px; }
.novelty-chart-frame { position: relative; }
.novelty-axis-help { position: absolute; bottom: 6px; left: 0; right: 0; padding-left: 62px; padding-right: 16px; text-align: center; }
.metric-help-label { min-height: 34px; padding: 4px 0; border: 0; background: transparent; color: #4b515c; font: 12px/1.5 var(--sans); text-decoration: underline dotted #9299a4; text-underline-offset: 4px; cursor: help; }
.metric-help-label:hover { color: var(--ink); }
.metric-help-label:focus-visible { outline: 2px solid #426ba4; outline-offset: 3px; border-radius: 3px; }
.metric-tooltip { position: fixed; z-index: 60; width: min(350px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; padding: 16px 18px; border: 1px solid #d8dce3; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px #20212424; color: var(--ink); text-align: left; font-size: 12px; line-height: 1.65; }
.metric-tooltip[hidden] { display: none; }
.metric-tooltip > strong { display: block; font-size: 14px; margin-bottom: 7px; }
.metric-tooltip p { margin: 0 0 9px; }
.metric-citations { display: flex; flex-wrap: wrap; gap: 5px 12px; }
.metric-citations a { color: #345d86; text-decoration: underline; text-underline-offset: 3px; font-size: 11px; }
.metric-citations a:focus-visible { outline: 2px solid #426ba4; outline-offset: 3px; }
.results-table .metric-help-label { font: inherit; color: inherit; text-align: inherit; line-height: inherit; min-height: 28px; padding: 0; }
.metric-svg-label { cursor: help; pointer-events: all; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 4px; }
.metric-svg-label:focus-visible { outline: 2px solid #426ba4; outline-offset: 3px; }
@media (max-width: 1199px) {
  .results-details.has-novelty, .results-details.has-comparison { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .scaffold-novelty, .has-comparison #task-results-plots { border-top: 1px solid var(--line); padding-top: 20px; }
}
.task-results-evidence { padding: 0; }
.figure-evidence { margin-block: 24px; color: #565c66; font-size: 13px; }
.figure-evidence > summary { cursor: pointer; min-height: 40px; display: list-item; }
.figure-evidence p { max-width: 880px; margin-top: 10px; font-size: 13px; }
.figure-evidence a { text-decoration: underline; text-underline-offset: 3px; }
.plot-key { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px; font-size: 11px; margin: 8px 0 0; color: #565c66; }
.plot-key span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.plot-key svg { flex: 0 0 11px; width: 11px; height: 11px; }
.chart-data-links { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-block: 20px; font-size: 13px; }
.chart-data-links a { text-decoration: underline; text-underline-offset: 3px; }
#task-results-evidence:empty { display: none; }
@media (max-width: 1279px) {
  .contents-list a { min-height: 48px; font-size: 14px; gap: 16px; }
}
@media (max-width: 600px) {
  .results-explorer { padding: 0 18px 20px; border-radius: 0; }
  #task-results-plots { padding: 18px 0; }
  .interactive-chart { height: 340px; }
  .task-results-evidence { padding-inline: 0; }
}

/* Results share the generator colors, while chart markers continue to identify methods. */
.metric-policy { font-size: 12px; font-weight: 500; color: var(--goal-strong); }
.task-context-grid { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: start; margin-bottom: 18px; }
.observable-context { min-width: 0; container-type: inline-size; }
.task-molecule { min-width: 0; margin: 0; align-self: center; }
.task-molecule img { display: block; }
.task-molecule img { width: 100%; height: auto; max-height: 280px; object-fit: contain; }
/* Goal disclosures contain inputs and the immediately visible trace view. */
.goal-section { margin: 0; padding: 22px 0; border: 0; border-radius: 0; background: none; }
.goal-section + .goal-section { border-top: 2px solid #d6dcd8; }
#task-result-context { border-bottom: 2px solid #d6dcd8; margin-bottom: 22px; }
.goal-section-title { margin: 0; font-size: 18px; line-height: 1.5; font-weight: 600; color: var(--ink); }
.section-heading-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; }
.observable-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0; border: 0; background: none; color: var(--goal-strong); font-size: 13px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--goal-border); }
.observable-toggle:hover { text-decoration-color: currentColor; }
.observable-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 24px; margin: 14px 0 0; padding-left: 17px; color: #535b67; font-size: 12px; line-height: 1.65; }
.observable-list[hidden] { display: none; }
.goal-section.result-curriculum { margin: 0 0 22px; padding: 18px 20px; border: 1px solid var(--goal-border); border-radius: 6px; background: var(--goal-surface); }
.curriculum-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 8px; }
.curriculum-tabs button { min-height: 38px; min-width: 46px; padding: 7px 13px; border: 1px solid var(--goal-border); border-radius: 4px; background: #fff; font-size: 13px; color: var(--goal-strong); }
.curriculum-tabs sub { font-size: .75em; line-height: 0; }
.curriculum-tabs button[aria-selected="true"] { background: var(--goal-accent); border-color: var(--goal-accent); color: #fff; }
.curriculum-preview { padding: 4px 0 2px; }
.curriculum-preview > p { margin: 10px 0 12px; font-size: 16px; line-height: 1.7; }
.curriculum-traces { margin-top: 14px; scroll-margin-top: 80px; }
.curriculum-traces .explorer-tabs { margin-top: 14px; }
.curriculum-traces .explorer-tabs button { font-size: 13px; }
.curriculum-traces .explorer-tabs button[aria-selected=true] { color: var(--goal-strong); border-bottom-color: var(--goal-accent); }
.curriculum-traces .selection-card { background: none; border: 0; border-radius: 0; padding: 8px 0 0; }
.curriculum-traces .selection-card h4, .curriculum-traces .selection-limitations > strong { font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.5; color: var(--goal-strong); margin: 9px 0 12px; }
.inline-trace-view { min-width: 0; }
.results-table th, .results-table td { padding-block: 13px; }
.results-table thead th { font-size: 13px; font-weight: 600; background: #fafbfc; }
.results-table .table-method { font-size: 16px; font-weight: 600; }
.results-table .table-mean { font-weight: 500; font-size: 15px; color: #343d4a; }
.results-table .table-uncertainty { color: #343d4a; font-size: 12px; font-weight: 400; }
.results-table tr.ours { background: var(--goal-surface); }
.results-table tr.ours th { color: var(--goal-strong); box-shadow: inset 3px 0 var(--goal-accent); }
.results-table .best .table-mean { font-weight: 700; color: var(--goal-strong); }
.results-table .best .table-uncertainty { color: var(--goal-strong); }
.discovery-summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,360px); gap: 32px; padding: 0 0 28px; align-items: center; }
.discovery-prior { padding: 0 0 20px; border-bottom: 1px solid var(--goal-border); }
.discovery-zero { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; font-size: 58px; font-weight: 600; letter-spacing: -1.8px; line-height: 1.3; color: var(--goal-strong); font-variant-numeric: tabular-nums; }
.discovery-zero > span { font-size: 26px; font-weight: 400; letter-spacing: -.5px; }
.discovery-comparison p { font-size: 14px; margin: 3px 0 0; color: #535e67; }
.discovery-hit { padding-top: 20px; }
.discovery-hit strong { display: block; margin-top: 7px; font-size: 27px; font-weight: 600; color: var(--goal-strong); letter-spacing: -.5px; line-height: 1.4; }
.goal5-hit { width: 100%; max-width: 360px; justify-self: end; margin: 0; padding: 0; }
.goal5-hit img { width: 100%; height: auto; }
.goal5-hit img { display: block; }
@media (max-width: 900px) {
  .task-context-grid { grid-template-columns: 1fr; gap: 22px; }
  .task-molecule { width: 100%; max-width: 640px; justify-self: center; }
}
@media (max-width: 600px) {
  .task-context-grid { padding-inline: 0; }
  .context-source { padding-inline: 0; }
  .goal-section { padding: 18px 0; }
  .goal-section.result-curriculum { padding: 16px 12px; }
  .discovery-summary { grid-template-columns: 1fr; padding: 0 0 24px; gap: 24px; }
  .goal5-hit { max-width: 280px; justify-self: center; }
  .discovery-zero { font-size: 48px; }
  .discovery-zero > span { font-size: 23px; }
  .discovery-hit strong { font-size: 25px; }
}

/* Keep the task heading and discovery content readable within the results panel. */
#result-discovery:empty { display: none; }
@media (max-width: 600px) {
  .observable-list { grid-template-columns: 1fr; }
}

/* Grouped docking bars share the existing method colors and reported uncertainties. */
.molecular-results { display: grid; grid-template-columns: minmax(0,1fr); align-items: center; gap: 24px; }
.task-docking { min-width: 0; margin: 0; }
.molecular-results .task-molecule { width: 100%; max-width: 480px; justify-self: center; }
.docking-chart-scroll { overflow-x: auto; overflow-y: hidden; }
.docking-bar-chart { min-width: 640px; height: 385px; }

/* Share the table's natural height with the neighboring plot and its lower legend. */
.has-comparison .plot-key, .scaffold-novelty .plot-key, .molecular-results .plot-key { gap: 5px 8px; font-size: 10.5px; }
@media (min-width: 1200px) {
  .molecular-results { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); }
  .molecular-results .docking-bar-chart { min-width: 0; }
  .has-comparison .results-values, .has-novelty .results-values { display: flex; flex-direction: column; }
  .has-comparison .table-scroll, .has-novelty .table-scroll { flex: 1; }
  .has-comparison .results-table, .has-novelty .results-table { height: 100%; }
  .has-comparison .task-peptide-bars, .scaffold-novelty { display: flex; flex-direction: column; height: 100%; }
  .has-comparison .result-plot-frame, .has-novelty .result-plot-frame { position: relative; flex: 1; min-height: 240px; }
  .has-comparison .interactive-chart, .has-novelty .scaffold-novelty .interactive-chart { position: absolute; inset: 0; height: 100%; }
}

/* Serif reading text, with a consistent sans-serif layer for navigation and data. */
.generator-legend, .observable-toggle, .observable-list,
.curriculum-tabs, .explorer-tabs, .plot-key, .metric-tooltip, .judgment-badge,
.candidate-observables, .representation-header, .judge-passes, .evidence-status,
.placeholder-note, .placeholder-notice, figcaption, footer, #toast { font-family: var(--sans); }
.generator-label::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--goal-accent); margin-right: 3px; }
.function-popover, .metric-tooltip { border-radius: 6px; box-shadow: 0 8px 28px #20212414; }
.candidate-representation { border-radius: 4px; background: #fafbfa; }
.results-section > h2 { max-width: 760px; }
@media (max-width: 760px) {
  body { font-size: 16px; }
  .hero-heading { max-width: 600px; }
  .goal-title-line { flex-direction: column; gap: 3px; }
}

/* Author identities and institutional marks form a single editorial masthead. */
.author-row a { color: #286b66; text-decoration: underline; text-decoration-color: #b2cbc5; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.author-row a:hover { color: #133e3a; text-decoration-color: currentColor; }
.affiliations { display: flex; align-items: center; justify-content: space-between; gap: 14px 22px; margin-top: 25px; }
.institution { display: flex; align-items: center; gap: 5px; min-width: 0; min-height: 48px; }
.institution sup { align-self: flex-start; margin-top: 8px; font: 10px/1 var(--sans); color: #717875; }
.institution img { display: block; width: 100px; height: 40px; object-fit: contain; }
.institution-eth img { width: 108px; }
.institution-ai img { width: 90px; }
.institution-tu img { width: 38px; height: 38px; }
.institution-aithyra img { width: 91px; }
.institution-penn img { width: 109px; }
.institution-oxford img { width: 108px; }
.contribution-note { margin-top: 14px; }
.hero-actions { margin: 0; }
.hero-figure { width: calc(100% + 40px); margin: 24px -20px 0; }

/* Shared section typography and academic styling for the pseudocode. */
.method-band { background: #fff; margin-top: 28px; }
.method-section { border-top: 1px solid #b9c8c4; padding-block: 28px 0; }
.method-section > .section-heading { text-wrap: initial; }
.section-heading, .case-study h3.section-heading { display: flex; align-items: baseline; gap: 13px; margin: 0 0 20px; font-size: 32px; font-weight: 600; line-height: 1.25; letter-spacing: -.55px; color: #171b19; }
.section-anchor { flex-shrink: 0; color: #07857d; font-weight: 400; text-decoration: none; }
.section-anchor:hover { color: #00594f; }
.algorithm-box { padding: 0 14px 12px; border: 1.5px solid #8b9d95; border-radius: 14px; background: #fff; color: #111; }
.algorithm-box h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0; padding: 10px 0; border: 0; border-bottom: 1px solid #a9b1ac; border-radius: 0; background: transparent; font-size: 16px; line-height: 1.4; }
.algorithm-box h3 > span:first-child { color: #111; font: 700 16px/1.4 KaTeX_Main, 'Times New Roman', serif; letter-spacing: 0; text-transform: none; }
.algorithm-inputs { margin-block: 10px; font-size: 13px; line-height: 1.5; }
.algorithm-code { font-size: 16px; line-height: 1.45; }
.algorithm-row::before { color: #777e78; }
.algorithm-row:nth-child(n+3):nth-child(-n+6) { padding-block: 2px; }
.algorithm-function { color: #07857d; border-bottom-color: #8bbcb5; }
.algorithm-function:hover, .algorithm-function[aria-expanded="true"] { color: #00594f; }
.method-curriculum { width: 100%; margin-top: 0; padding: 18px 0 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.algorithm-disclosure { margin-top: 22px; border-block: 1px solid #b9c8c0; }
.algorithm-disclosure > summary { justify-content: flex-start; gap: 14px; padding: 18px 0; cursor: pointer; }
.algorithm-disclosure > summary strong { font: 600 18px/1.5 var(--serif); color: #253e32; }
.algorithm-disclosure > summary > span { font: 11px/1.5 var(--sans); color: #758078; transform: none; }
.algorithm-disclosure[open] > summary > span { transform: none; }
.algorithm-disclosure > summary svg { width: 20px; height: 20px; flex: 0 0 20px; margin-left: auto; fill: none; stroke: #07857d; stroke-width: 1.5; transition: transform .15s; }
.algorithm-disclosure[open] > summary svg { transform: rotate(180deg); }
.algorithm-disclosure > summary:hover strong { color: #07857d; }
.algorithm-disclosure-body { padding: 12px 0 24px; }
@media (max-width: 680px) {
  .method-step h3 { font-size: 18px; gap: 9px; }
  .method-introduction { margin-bottom: 26px; }
  .method-steps { gap: 24px; }
  .algorithm-disclosure > summary { flex-wrap: wrap; gap: 3px 12px; }
  .algorithm-disclosure > summary > span { display: none; }
}

/* Two case studies: results first, then the complete discovery experiments. */
.results-section { padding-top: 28px; padding-bottom: 0; }
.case-studies { display: block; }
.case-study { padding: 28px 0; border-top: 1px solid #b9c8c4; scroll-margin-top: 30px; }
.case-study + .case-study { margin-top: 0; }
.case-study-heading { max-width: none; }
.case-study h3.section-heading { margin-bottom: 12px; }
.case-generator { display: inline-flex; align-items: baseline; gap: 4px; margin: 0 0 20px; padding: 5px 12px; border: 1px solid var(--goal-border); border-radius: 999px; background: var(--goal-surface); color: var(--goal-strong); font: 12px/1.5 var(--sans); }
.case-generator strong { font-weight: 600; }
.case-description { margin: 0; font-size: 17px; line-height: 1.65; color: #4a534f; }

/* Scientific feedback opens within the preference-building step. */
.preferences-disclosure { margin-top: 18px; scroll-margin-top: 24px; }
.preferences-content { padding: 18px 0 8px; }
.method-preference-equation .katex-display { width: max-content; margin-inline: auto; }
/* Scientific feedback: a shared-legend, two-row comparison. */
.calibration-figure { margin: 24px 0 20px; }
.calibration-hint { margin: 0 0 26px; color: #707a74; font: 11px/1.6 var(--sans); }
.calibration-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.calibration-domain { min-width: 0; }
.calibration-domain-heading { display: flex; flex-direction: column; align-items: flex-start; padding-bottom: 16px; margin-bottom: 12px; border-bottom: 1px solid #cbd8d0; }
.calibration-domain-heading > span { font: 11px/1.5 var(--sans); color: #748078; margin-top: 4px; }
.calibration-prompt { border: 0; border-radius: 0; background: none; padding: 0; color: #087c73; text-decoration: underline dotted #8bb4a8; text-underline-offset: 4px; font: inherit; cursor: help; }
.calibration-prompt:hover, .calibration-prompt[aria-expanded="true"] { color: #04544d; text-decoration-style: solid; }
.calibration-task { font: 600 24px/1.4 var(--serif); }
.calibration-plot { width: 100%; min-width: 0; }
.calibration-scatter { height: 244px; }
.calibration-bars { height: 216px; }
.calibration-mae { display: flex; align-items: center; justify-content: center; gap: 15px; font: 11px/1.5 var(--sans); font-variant-numeric: tabular-nums; color: #58675d; margin: 7px 0 24px; }
.calibration-mae > span { display: inline-flex; align-items: center; gap: 5px; }
.calibration-mae > span.muted { opacity: .25; }
.calibration-symbol { display: inline-block; flex: 0 0 7px; width: 7px; height: 7px; background: var(--model-color); }
.calibration-symbol.circle { border-radius: 50%; }
.calibration-symbol.triangle-up { clip-path: polygon(50% 0,100% 100%,0 100%); width: 9px; flex-basis: 9px; height: 8px; }
.calibration-methods { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0 12px 0 46px; gap: 0; font: 10px/1.3 var(--sans); }
.calibration-methods button { min-height: 34px; white-space: nowrap; }
.calibration-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 28px; border-top: 1px solid #dce4df; border-bottom: 1px solid #dce4df; padding: 15px 0; margin-top: 24px; }
.calibration-legend button { display: flex; align-items: center; gap: 9px; border: 0; padding: 3px 0; border-radius: 0; background: none; font: 12px/1.5 var(--sans); color: #46534b; }
.calibration-legend button[aria-pressed="false"] { opacity: .35; }
.calibration-legend button[aria-pressed="false"] > span:nth-child(2) { text-decoration: line-through; }
.calibration-logo { width: 24px; height: 24px; background: var(--model-color); mask: var(--logo) center / contain no-repeat; -webkit-mask: var(--logo) center / contain no-repeat; }
.preferences-takeaway { border-left: 2px solid #07857d; padding-left: 20px; margin-top: 28px; }
.calibration-prompt-dialog { position: fixed; z-index: 100; width: min(470px,calc(100vw - 24px)); max-height: min(660px,calc(100dvh - 24px)); overflow-y: auto; padding: 22px; border: 1px solid #a6beb0; border-radius: 7px; background: #fff; box-shadow: 0 12px 38px #19372526; font: 13px/1.65 var(--sans); color: #35463a; }
.calibration-prompt-dialog[hidden] { display: none; }
.calibration-prompt-header { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.calibration-prompt-header h3 { margin: 0; font: 600 21px/1.4 var(--serif); }
.calibration-close { border: 0; background: none; padding: 0; width: 30px; height: 30px; flex-shrink: 0; font: 24px/1 var(--sans); }
.calibration-prompt-description { margin: 12px 0 16px; }
.calibration-prompt-kicker { margin: 18px 0 8px; font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #07857d; }
.calibration-prompt-dialog blockquote { margin: 0; padding: 0; border: 0; font: 15px/1.65 var(--serif); color: #374e40; white-space: pre-wrap; overflow-wrap: anywhere; }
.calibration-prompt-dialog details { margin-top: 20px; border-top: 1px solid #dae5dd; padding-top: 12px; }
.calibration-prompt-dialog summary { font-size: 12px; }
.calibration-prompt-dialog details blockquote { margin-top: 12px; }
.calibration-prompt-footnote { margin: 18px 0 0; font-size: 10px; color: #7a827b; }
.calibration-variants { display: flex; gap: 8px; margin-bottom: 12px; }
.calibration-variants button { background: #fff; border: 1px solid #c5d5ca; padding: 5px 10px; border-radius: 4px; font: 11px/1.5 var(--sans); }
.calibration-variants button[aria-pressed="true"] { background: #eaf3ee; color: #12634c; border-color: #4f8c6d; }
@media (max-width: 900px) and (min-width: 701px) {
  .calibration-grid { gap: 12px; }
  .calibration-task { font-size: 22px; }
  .calibration-methods { font-size: 9px; }
  .calibration-mae { gap: 9px; }
}
@media (max-width: 700px) {
  .calibration-grid { grid-template-columns: minmax(0,1fr); gap: 38px; }
  .calibration-domain-heading { margin-bottom: 16px; }
  .calibration-hint { margin-bottom: 22px; }
  .calibration-methods { font-size: 11px; }
  .calibration-methods button { min-height: 40px; }
  .calibration-legend { gap: 8px 18px; }
  .calibration-legend button { font-size: 11px; }
  .calibration-logo { width: 21px; height: 21px; }
}
/* Always-visible primary results precede the goal and trace disclosures. */
.case-results-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin: 24px 0 20px; padding: 20px 0; border-block: 1px solid var(--goal-border); align-items: start; }
.result-overview { min-width: 0; }
.result-overview > h4 { margin: 0 0 18px; color: var(--goal-strong); font-size: 18px; line-height: 1.4; font-weight: 600; }
.result-overview:nth-child(2) { border-left: 1px solid var(--goal-border); padding-left: 28px; }
.result-overview .interactive-chart { height: 320px; }
.result-overview .scaffold-novelty { border: 0; padding: 0; }
.result-overview .molecular-results { display: block; }
.result-overview .task-docking { margin: 0; }
.result-overview .docking-bar-chart { min-width: 0; }
.result-overview .docking-chart-scroll { overflow: visible; }
.result-overview .plot-key { font-size: 10px; gap: 6px 10px; min-height: 32px; }
.result-metrics { margin-top: 14px; border-top: 1px solid var(--goal-border); }
.result-metrics > summary { padding: 12px 0; cursor: pointer; color: var(--goal-strong); font: 12px/1.5 var(--sans); }
.result-metrics > summary strong { font-weight: 500; }
.result-metrics > summary svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; flex-shrink: 0; }
.result-metrics[open] > summary svg { transform: rotate(180deg); }
.result-metrics-content { padding-top: 8px; min-width: 0; }
.result-overview .task-molecule { max-width: 360px; margin: 18px auto; }
.result-overview .task-molecule img { height: 185px; object-fit: contain; }
.scaffold-placeholder { padding: 28px 16px; margin: 0; background: var(--goal-surface); color: var(--goal-strong); font: 14px/1.65 var(--sans); }
.trace-introduction { margin: 22px 0 18px; }
.trace-introduction h4 { margin: 0 0 12px; font: 600 20px/1.4 var(--serif); color: #253e32; }
.trace-introduction .trace-verbatim-note { margin: 0; font: inherit; color: inherit; }
@media (max-width: 760px) { .trace-introduction h4 { font-size: 18px; } }
.discovery-overview { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid var(--goal-border); }
.discovery-overview .discovery-summary { margin: 0; }
.goal-accordions { margin: 0; gap: 12px; }
.goal-accordion { background: #fff; border-color: var(--goal-border); border-radius: 5px; }
.result-card { padding: 17px 54px 17px 22px; border-radius: 4px; background: var(--goal-surface); }
.result-card.is-selected { border-radius: 4px 4px 0 0; }
.goal-number { font-size: 21px; }
.result-task-name { font-size: 18px; font-weight: 600; }
.goal-prompt { font-size: 14px; line-height: 1.65; margin-top: 8px; }
.goal-prompt strong { font: 600 11px/1.5 var(--sans); margin-right: 4px; }
.result-card:not(.is-selected) .goal-prompt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.goal-section-title { font-size: 18px; }
.goal-section.result-curriculum { border-radius: 5px; background: var(--goal-surface); }
.curriculum-preview > p { line-height: 1.7; }
.selection-card p { max-width: 790px; }

.task-molecule img { max-height: 330px; }
@media (min-width: 1200px) {
  .molecular-results { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); }
}
@media (max-width: 1000px) {
  .hero-figure { width: 100%; margin-inline: 0; }
}
@media (max-width: 760px) {
  .affiliations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px 14px; }
  .institution { justify-content: flex-start; }
  .institution img { max-width: calc(100% - 12px); }
  .institution-tu img { width: 38px; }
  .method-band { margin-top: 24px; }
  .method-section, .case-study { padding-top: 24px; }
  .case-study { padding-bottom: 24px; }
  .results-section { padding-top: 24px; }
  .section-heading, .case-study h3.section-heading { font-size: 28px; gap: 9px; }
  .case-description { font-size: 16px; }

}
@media (max-width: 680px) {
  .case-results-summary { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .result-overview:nth-child(2) { border-left: 0; border-top: 1px solid var(--goal-border); padding: 24px 0 0; }
  .result-overview .interactive-chart { height: 320px; }
}
@media (max-width: 520px) {
  .result-card { padding-inline: 17px 45px; }
  .goal-number { font-size: 20px; }
  .result-task-name { font-size: 17px; }
  .goal-prompt { font-size: 14px; }
}


/* A visible contents list and resource previews, following the reading order. */
.project-directory { max-width: 900px; margin-inline: auto; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,1fr); gap: 38px; align-items: start; margin-top: 26px; padding: 20px 0 12px; border-top: 1px solid #c7cfcb; }
.project-contents h2 { margin: 0 0 15px; font-size: 23px; font-weight: 600; letter-spacing: 0; }
.project-contents ol { list-style: none; margin: 0; padding-left: 20px; border-left: 1px solid #18241e; }
.project-contents li + li { margin-top: 10px; }
.project-contents a { display: inline-block; color: #07857d; font-size: 20px; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.project-contents a:hover { color: #00594f; }
.project-resources { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); align-items: start; gap: 30px; }
.resource-preview { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 0; color: #07857d; background: transparent; }
.resource-preview .resource-label { font: 23px/1.3 var(--serif); border-bottom: 1px dotted currentColor; }
.resource-preview:not(:disabled):hover { text-decoration: none; }
.resource-preview:not(:disabled):hover .resource-label { color: #00594f; border-bottom-style: solid; }
.resource-preview:disabled { color: #07857d; }
.repository-preview { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-height: 161px; padding: 14px 15px 10px; border: 1px solid #e1e4e1; border-bottom: 4px solid #3876a4; color: #252d28; text-align: left; background: #fff; box-shadow: 0 2px 8px #24302606; }
.repository-preview img { margin-bottom: 8px; }
.repository-owner { color: #69756e; font: 10px/1.4 var(--sans); }
.repository-preview strong { font: 600 17px/1.25 var(--sans); letter-spacing: -.3px; margin: 3px 0 6px; }
.repository-caption { color: #6d766f; font: 10px/1.5 var(--sans); }
.repository-language { display: flex; align-items: center; gap: 5px; margin-top: 12px; font: 9px/1.4 var(--sans); color: #647069; }
.repository-language i { width: 7px; height: 7px; border-radius: 50%; background: #3876a4; }
.paper-preview { position: relative; isolation: isolate; display: block; width: min(122px,100% - 16px); margin-right: 12px; }
.paper-preview::before, .paper-preview::after { content: ''; position: absolute; z-index: -1; inset: 0; border: 1px solid #b9bfba; background: #fff; box-shadow: 0 1px 3px #24302616; }
.paper-preview::before { transform: translate(10px,10px); }
.paper-preview::after { transform: translate(5px,5px); }
.paper-preview img { display: block; width: 100%; height: auto; border: 1px solid #aeb7b0; box-shadow: 0 1px 4px #24302626; }
@media (max-width: 900px) {
  .affiliations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px 24px; }
  .project-directory { grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 24px; }
  .project-resources { gap: 20px; }
  .project-contents a { font-size: 18px; }
  .repository-preview { padding: 12px 10px; }
  .repository-preview strong { font-size: 14px; }
  .repository-owner { font-size: 9px; }
}
@media (max-width: 680px) {
  .project-directory { grid-template-columns: minmax(0,1fr); gap: 28px; padding-top: 24px; }
  .project-contents h2 { font-size: 22px; }
  .project-contents a { font-size: 19px; }
  .project-resources { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 28px; max-width: 380px; width: 100%; }
  .resource-preview .resource-label { font-size: 22px; }
  .repository-preview strong { font-size: 16px; }
  .repository-owner { font-size: 10px; }
}

/* Keep the opening prose compact, independent of the algorithm's height. */
.method-opening { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px 32px; align-items: start; margin-bottom: 18px; }
.method-opening-copy, .method-algorithm { min-width: 0; }
.method-introduction { margin: 0 0 18px; }
.method-steps { gap: 18px; }
.method-content p { margin-bottom: 18px; }
.method-content p:last-child { margin-bottom: 0; }
.method-step h3 { margin-bottom: 8px; }
.method-preference-equation, .method-dpo-equation { margin-block: 18px; }
.method-content .algorithm-inputs { margin-block: 10px; }
@media (min-width: 1000px) {
  .method-opening { grid-template-columns: minmax(0,1fr) minmax(0,.85fr); }
  .method-algorithm .algorithm-box { max-width: none; }
}

/* Citation follows the case studies and shares their heading and spacing. */
.bibtex-section { padding-block: 28px; border-top: 1px solid #b9c8c4; }
.citation-box { position: relative; padding: 22px 52px 22px 22px; border: 1px solid #b8b8b8; background: #f2f2f2; }
.citation-box pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; }
.citation-box code { font: inherit; color: #000; }
#copy-bibtex { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 36px; height: 36px; padding: 8px; border: 0; background: transparent; color: #285f55; cursor: pointer; }
#copy-bibtex:hover { background: #eaf1ee; }
#copy-bibtex svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; }
@media (max-width: 680px) {
  .bibtex-section { padding-block: 24px; }
  .citation-box { padding: 48px 16px 16px; }
  .citation-box pre { font-size: 12px; }
}

/* Keep peptide method keys directly below the bar baseline. */
.result-overview .task-peptide-bars .interactive-chart { height: 280px; }
.result-overview .task-peptide-bars .plot-key, .result-overview .task-docking .plot-key { margin-top: 0; min-height: 28px; font-size: 12px; gap: 6px 10px; }
.result-overview .task-peptide-bars .plot-key svg, .result-overview .task-docking .plot-key svg { width: 12px; height: 12px; flex-basis: 12px; }

.result-overview .task-docking .interactive-chart { height: 288px; }
