/* In-site reading page for one paper record.
   The information architecture follows an ACM Digital Library article page —
   masthead, full text in the main column, and a Contents / Information /
   Contributors / Cite rail — set in this archive's own type and rules. */
/* The type scale (--fs-*) is inherited from research-pages.css, which every reading page loads first. */
.paper-detail-main{max-width:1600px;padding-bottom:var(--page-bottom)}
.paper-breadcrumb{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:var(--fs-small);line-height:1.5;color:var(--quiet);margin-bottom:26px}
.paper-breadcrumb a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.paper-breadcrumb a:hover{color:var(--ink)}
.crumb-sep{color:var(--line)}
.crumb-current{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}

/* Masthead */
.paper-article-head{padding-bottom:clamp(28px,3vw,44px);border-bottom:3px solid var(--ink)}
.paper-article-kicker{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-small);line-height:1.5}
.paper-article-field{color:var(--ink)}
.paper-article-tag{color:var(--quiet)}
.paper-article-title{margin-top:16px;font-size:var(--fs-article);font-weight:400;line-height:1.14;letter-spacing:-.035em;max-width:24ch}
.paper-authors{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 28px}
.paper-authors li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:var(--fs-body);line-height:1.5}
.paper-author-affil{font-family:var(--font);font-size:var(--fs-small);color:var(--quiet)}
.paper-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:26px}
.paper-action{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--line);font-size:var(--fs-small);line-height:1;transition:background .18s ease,color .18s ease,border-color .18s ease}
.paper-action:hover{border-color:var(--ink)}
.paper-action--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.paper-action--primary:hover{background:var(--quiet);border-color:var(--quiet);color:var(--paper)}
.paper-action--quiet{border-color:transparent;padding-inline:2px;text-decoration:underline;text-underline-offset:5px;color:var(--quiet)}
.paper-action--quiet:hover{border-color:transparent;color:var(--ink)}
.paper-sample-note{margin-top:20px;font-size:var(--fs-small);line-height:1.6;color:var(--quiet)}

/* Two columns: the article rail on the left, the reading column on the right.
   The rail is placed with explicit grid coordinates instead of being moved in
   the markup, so the reading order stays abstract → full text → record facts
   once the two columns stack on a narrow screen. */
.paper-layout{display:grid;grid-template-columns:minmax(268px,320px) minmax(0,1fr);gap:clamp(36px,5vw,88px);padding-top:clamp(30px,3.4vw,52px)}
.paper-article-body{min-width:0;grid-column:2;grid-row:1}
.paper-rail{min-width:0;align-self:start;position:sticky;top:calc(var(--header-h) + 24px);grid-column:1;grid-row:1}
.paper-rail-block+ .paper-rail-block,.paper-rail-block+section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.paper-rail-block h2{font-family:var(--font);font-size:var(--fs-small);font-weight:500;letter-spacing:.01em;line-height:1.4;margin-bottom:14px}
.paper-rail-list{list-style:none;margin:0;padding:0;font-size:var(--fs-small);line-height:1.45}
.paper-rail-list li{border-bottom:1px solid var(--line)}
.paper-rail-list li:first-child{border-top:1px solid var(--line)}
.paper-rail-list a{display:block;padding:9px 0;color:var(--quiet);transition:color .16s ease}
.paper-rail-list a:hover{color:var(--ink)}
.paper-rail-list a.is-current{color:var(--ink)}
.paper-rail-list a.is-current::before{content:"";display:inline-block;width:10px;height:1px;background:currentColor;vertical-align:middle;margin-right:8px}
.paper-rail-dl{margin:0;display:grid;gap:10px;font-size:var(--fs-small);line-height:1.55}
.paper-rail-dl div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px}
.paper-rail-dl dt{color:var(--quiet)}
.paper-rail-dl dd{margin:0;font-variant-numeric:tabular-nums}
.rail-keywords{color:var(--quiet)}
.paper-rail-authors{list-style:none;margin:0;padding:0;font-size:var(--fs-small);line-height:1.5}
.paper-rail-authors li{display:grid;gap:4px}
.rail-affil{font-size:var(--fs-small);color:var(--quiet)}
.paper-citation{font-size:var(--fs-small);line-height:1.65;color:var(--quiet);background:var(--reading);padding:14px 16px}
.paper-cite-copy{display:inline-flex;align-items:center;min-height:40px;margin-top:12px;font-size:var(--fs-small);text-decoration:underline;text-underline-offset:5px;color:var(--academic)}
.paper-cite-copy:hover{color:var(--ink)}

/* Abstract and full text */
.paper-abstract-block{padding-bottom:clamp(28px,3vw,42px);border-bottom:1px solid var(--line)}
.paper-abstract-block h2{font-family:var(--font);font-size:var(--fs-small);font-weight:500;line-height:1.4;margin-bottom:14px}
.paper-abstract{margin:0;font-size:var(--fs-lede);line-height:1.72;max-width:62ch}
.paper-keywords{margin-top:18px;font-size:var(--fs-small);line-height:1.7;color:var(--quiet)}
.paper-keywords-label{margin-right:6px}
.paper-part-heading{margin-top:clamp(34px,3.6vw,52px);padding-bottom:14px;border-bottom:1px solid var(--line);font-family:var(--font);font-size:var(--fs-small);font-weight:500;line-height:1.4}
.paper-section{padding-top:clamp(26px,2.8vw,40px)}
.paper-section-title{display:flex;gap:14px;align-items:baseline;font-size:var(--fs-title);font-weight:400;line-height:1.25;letter-spacing:-.025em;max-width:30ch}
.paper-section-number{flex:0 0 auto;font-family:var(--font);font-size:var(--fs-small);font-variant-numeric:tabular-nums;color:var(--quiet)}
.paper-section p:not(.paper-caption):not(.paper-fn){margin-top:16px;font-size:var(--fs-reading);line-height:1.72;max-width:68ch}
.paper-section .paper-fn{margin-top:16px;padding-left:16px;border-left:1px solid var(--line);font-size:var(--fs-small);line-height:1.7;color:var(--quiet);max-width:62ch}
.paper-list-block{margin-top:16px;padding-left:20px;font-size:var(--fs-reading);line-height:1.7;max-width:66ch}
.paper-list-block li{margin-top:6px}
.paper-list-block li::marker{color:var(--quiet)}
.paper-references{margin-top:16px;padding-left:26px;font-size:var(--fs-body);line-height:1.7;max-width:68ch}
.paper-references li{margin-top:10px}
.paper-references li::marker{color:var(--quiet);font-variant-numeric:tabular-nums}
.math{font-family:var(--font);font-style:italic}

/* Equations and figures keep the printed page's rhythm. */
.paper-equation{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:22px 0;padding:0 4px}
.eq-body{justify-self:center;font-size:var(--fs-reading);line-height:1.6}
.eq-number{font-size:var(--fs-small);color:var(--quiet);font-variant-numeric:tabular-nums}
.paper-figure{margin:26px 0 0;max-width:70ch}
.paper-chart{display:block;width:100%;height:auto;overflow:visible}
.chart-grid{stroke:var(--line);stroke-width:1}
.chart-axis{stroke:var(--ink);stroke-width:1}
.chart-label,.chart-tick,.chart-value,.chart-axis-label{font-family:var(--font);font-size:var(--fs-caption);fill:var(--quiet)}
.chart-value{fill:var(--ink)}
.chart-bar{shape-rendering:crispEdges}
.paper-figure-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:4px 0 0;padding:0;font-size:var(--fs-caption);color:var(--quiet)}
.paper-figure-legend li{display:flex;align-items:center;gap:7px}
.legend-swatch{width:11px;height:11px;flex:0 0 auto}
.paper-caption{margin-top:12px;font-size:var(--fs-small);line-height:1.65;color:var(--quiet);max-width:64ch}
.paper-table-wrap{margin:24px 0 0;max-width:70ch}
.paper-table{width:100%;border-collapse:collapse;font-size:var(--fs-body);line-height:1.5}
.paper-table th,.paper-table td{padding:9px 14px 9px 0;text-align:left;font-weight:400}
.paper-table th{border-top:1.4px solid var(--ink);border-bottom:.8px solid var(--ink)}
.paper-table tbody tr:last-child td{border-bottom:1.4px solid var(--ink)}
.paper-table .num{text-align:right;font-variant-numeric:tabular-nums}
.paper-table-wrap .paper-caption{margin-top:12px}
.paper-figure--steps .paper-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:none}
.paper-steps li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:start;padding:12px 16px;background:var(--reading);font-size:var(--fs-body);line-height:1.55}
.step-index{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--quiet);line-height:1.7}

@media(max-width:1100px){
  .paper-layout{grid-template-columns:minmax(232px,270px) minmax(0,1fr);gap:40px}
}
@media(max-width:900px){
  .paper-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .paper-article-body{grid-column:auto;grid-row:auto}
  .paper-rail{position:static;grid-column:auto;grid-row:auto;margin-top:clamp(38px,6vw,56px);padding-top:clamp(26px,4vw,36px);border-top:1px solid var(--line);
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 34px}
  .paper-rail-block+ .paper-rail-block,.paper-rail-block+section{margin-top:0;padding-top:0;border-top:0}
  .paper-rail-contents{grid-column:1/-1}
  .paper-rail-contents .paper-rail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px}
}
@media(max-width:620px){
  .paper-article-title{font-size:var(--fs-article);max-width:none}
  .paper-action{flex:1 1 auto;justify-content:center}
  .paper-action--quiet{flex-basis:100%;justify-content:flex-start}
  .paper-rail{grid-template-columns:minmax(0,1fr)}
  .paper-rail-contents .paper-rail-list{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .paper-action,.paper-cite-copy{transition:none}
}
