/* Camera-ready refresh: persistent contents navigation and readable figures. */
:root { --contents-width: 204px; --maestro-accent: #f1c500; }
html { scroll-behavior: auto; }
body { padding-left: calc(var(--contents-width) + 32px); }
.contents-nav { position: fixed; inset: 18px auto 18px 16px; width: var(--contents-width); z-index: 1000; display: flex; flex-direction: column; background: #fff; border: 1px solid #e0e3e6; border-radius: 10px; box-shadow: 0 3px 14px rgba(0,0,0,.05); }
.contents-heading { padding: 16px 16px 12px; border-bottom: 1px solid #eceeef; }
.contents-brand { color: #222; font: 700 20px 'Google Sans', sans-serif; letter-spacing: .02em; }
.contents-label { color: #70777d; display: block; margin-top: 4px; font-size: 12px; }
.contents-links { overflow-y: auto; padding: 9px 7px 12px; }
.contents-links a { display: block; color: #41464b; padding: 7px 10px; margin: 1px 0; border-radius: 5px; font-size: 13px; line-height: 1.35; }
.contents-links a:hover { background: #f5f6f7; color: #111; }
.contents-links a[aria-current="location"] { background: #fff7ce; color: #222; box-shadow: inset 3px 0 var(--maestro-accent); font-weight: 700; }
.contents-group { display: block; padding: 13px 10px 4px; color: #81878c; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contents-group:first-child { padding-top: 5px; }
.skip-link { position: fixed; left: 250px; top: -80px; z-index: 10001; padding: 10px 16px; color: #222; background: #fff7ce; }
.skip-link:focus { top: 8px; }
.section[id], #method { scroll-margin-top: 24px; }
.hero#top { padding-top: 1rem; }
.publication-title { line-height: 1.16; }
.publication-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.publication-links .link-block a { margin: 0; }
.publication-links .button[aria-disabled="true"] { opacity: .55; cursor: default; }
.paper-note { margin: 10px 0 0; font-size: 13px; color: #697078; }
.content.has-text-justified { text-align: left !important; }
.content p { line-height: 1.7; }
figure.image figcaption { margin-top: 14px !important; color: #697078; line-height: 1.55; font-size: .94rem; }
figure.image img { height: auto; }
.result-figure { margin-top: 26px; }
.harness-figure { width: 100%; }
.table-scroll { overflow-x: auto; }
.table-scroll table { min-width: 470px; }
.study-label { display: inline-block; margin-bottom: 12px; color: #697078; font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; }
.evidence-note { padding: 18px 20px; border-left: 3px solid var(--maestro-accent); background: #fafaf7; margin-top: 24px; text-align: left; }
.related-links a { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid #3b72a2; outline-offset: 3px; }
@media (max-width: 1023px) {
  body { padding-left: 0; padding-top: 91px; }
  .contents-nav { inset: 0 0 auto; width: 100%; height: 83px; border-radius: 0; border-width: 0 0 1px; }
  .contents-heading { padding: 8px 16px 4px; border: none; display: flex; align-items: baseline; gap: 12px; }
  .contents-brand { font-size: 15px; }
  .contents-label { display: inline; margin: 0; font-size: 11px; }
  .contents-links { display: flex; flex: 1; align-items: center; overflow-x: auto; overflow-y: hidden; padding: 3px 12px 8px; gap: 4px; scrollbar-width: thin; }
  .contents-links a { flex: 0 0 auto; padding: 5px 9px; font-size: 12px; margin: 0; white-space: nowrap; }
  .contents-links a[aria-current="location"] { box-shadow: inset 0 -2px var(--maestro-accent); }
  .contents-group { display: none; }
  .section[id], #method { scroll-margin-top: 105px; }
  .skip-link { left: 12px; }
  .hero#top { padding-top: 0; }
}
@media (max-width: 600px) {
  .publication-title { font-size: 2.1rem !important; }
  .publication-authors.is-size-4 { font-size: 1.12rem !important; }
  .publication-authors.is-size-5 { font-size: .88rem !important; }
  .section { padding: 2.25rem 1.25rem; }
  .hero-body { padding: 2rem 1.25rem; }
  .title.is-3 { font-size: 1.65rem; }
  .vis-demo-container { min-height: 260px; }
  .algo-pre { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
