/* Page-specific layout on top of shared lab.css tokens */
.paper-shell{max-width:1340px;margin:0 auto;padding:0 clamp(20px,4vw,48px);overflow-x:clip}
.paper-head img,.paper-head canvas{max-width:100%}

.paper-head{padding:clamp(64px,10vh,110px) 0 clamp(40px,6vh,56px);border-bottom:1px solid var(--border);text-align:center}
.paper-hero-img{display:block;margin:6px auto 30px;width:min(560px,90vw);border-radius:18px;box-shadow:0 14px 48px rgba(23,21,21,.14)}
.paper-title{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4.6vw,56px);line-height:1.06;letter-spacing:-.02em;color:var(--ink);max-width:min(18ch,92vw);margin:0 auto 18px}
.paper-sub{font-family:var(--serif);font-size:clamp(16px,1.5vw,20px);color:var(--ink-2);max-width:640px;line-height:1.5;margin:0 auto 26px}
.paper-finding{font-family:var(--sans);font-size:clamp(15px,1.15vw,17px);line-height:1.75;color:var(--ink-2);max-width:660px;margin:0 auto 32px;text-align:left}
.paper-meta-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}
.meta-pill{font-family:var(--sans);font-size:12px;color:var(--ink-3);border:1px solid var(--border);border-radius:5px;padding:6px 11px;display:inline-flex;align-items:center;gap:6px}
.paper-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;justify-content:center}
.btn-primary{font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;background:var(--ink);border-radius:5px;padding:11px 20px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:background .15s}
.btn-primary:hover{background:var(--accent-2)}
.btn-secondary{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-3);border:1px solid var(--border);border-radius:5px;padding:10px 18px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:border-color .15s,color .15s}
.btn-secondary:hover{border-color:var(--ink-4);color:var(--ink)}

.article-grid{display:grid;grid-template-columns:190px minmax(0,1fr) 300px;gap:52px;padding:clamp(48px,7vh,80px) 0 clamp(72px,10vh,120px);align-items:start}
@media (max-width:1200px){.article-grid{grid-template-columns:180px minmax(0,1fr);gap:40px}.col-notes{grid-column:1/-1;position:static;border-left:none;border-top:1px solid var(--border);padding:28px 0 0;margin-top:16px}}
@media (max-width:1000px){.article-grid{grid-template-columns:1fr}}

.col-toc{position:sticky;top:32px;font-family:var(--sans)}
@media (max-width:1000px){.col-toc{position:static;border:1px solid var(--border);border-radius:8px;padding:16px 18px;margin-bottom:8px}}
.toc-label{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-bottom:14px}
.toc-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.toc-list a{font-size:13px;color:var(--ink-3);text-decoration:none;line-height:1.4;display:block;border-left:2px solid transparent;padding-left:10px;margin-left:-12px;transition:color .15s,border-color .15s}
.toc-list a:hover,.toc-list a.active{color:var(--ink);border-color:var(--accent)}

.col-prose{min-width:0}
.col-prose h2{font-family:var(--serif);font-size:clamp(21px,2vw,27px);font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:52px 0 16px;scroll-margin-top:24px}
.col-prose h2:first-child{margin-top:0}
.col-prose h3{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--ink-2);margin:28px 0 10px}
.col-prose p{font-family:var(--sans);font-size:15px;line-height:1.8;color:var(--ink-2);margin-bottom:18px}
.col-prose p.lead{font-size:17px;line-height:1.75;color:var(--ink)}
.col-prose strong{color:var(--ink);font-weight:600}
.col-prose code{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:.85em;background:var(--paper-2);border:1px solid var(--border);padding:1px 6px;border-radius:4px;color:var(--ink)}
.col-prose ul,.col-prose ol{margin:0 0 18px;padding-left:22px}
.col-prose li{font-family:var(--sans);font-size:15px;line-height:1.75;color:var(--ink-2);margin-bottom:8px}
.col-prose a{color:var(--accent-2);text-decoration:underline;text-decoration-color:var(--accent-soft);text-underline-offset:2px}
.col-prose a:hover{text-decoration-color:var(--accent-2)}

.stat-line{display:flex;gap:24px;flex-wrap:wrap;margin:24px 0 28px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.stat-item{flex:1;min-width:130px}
.stat-num{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.stat-num .accent{color:var(--accent-2)}
.stat-cap{font-family:var(--sans);font-size:11.5px;color:var(--ink-3);line-height:1.4;margin-top:4px}

table.data-table{width:100%;border-collapse:collapse;margin:8px 0 24px;font-family:var(--sans);font-size:13px}
table.data-table th{text-align:left;font-weight:600;color:var(--ink-3);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:8px 12px 8px 0;border-bottom:1px solid var(--ink-4)}
table.data-table td{padding:9px 12px 9px 0;border-bottom:1px solid var(--border);color:var(--ink-2)}
table.data-table td.num,table.data-table th.num{text-align:right}
table.data-table td strong{color:var(--ink)}

.limits-box{background:var(--paper-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:22px 24px;margin:20px 0}
.limits-box h3{margin-top:0;font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.limits-box ul{margin-bottom:0}
.limits-box li{color:var(--ink-2)}

.status-pill{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);background:var(--accent-soft);padding:5px 12px;border-radius:99px;margin-bottom:12px}

.chart-card{border:1px solid var(--border);border-radius:10px;padding:24px 24px 12px;margin:24px auto 28px;background:var(--paper);max-width:720px;text-align:left}
.chart-card .chart-label{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);margin-bottom:14px}
.chart-wrap{position:relative;height:340px}
.fieldbars{font-family:var(--sans);display:flex;flex-direction:column;gap:9px;margin:8px 0 6px}
.fb-row{display:grid;grid-template-columns:186px minmax(0,1fr) 150px;gap:12px;align-items:center;padding:3px 4px;border-radius:6px}
.fb-row:hover{background:var(--paper-2)}
.fb-label{font-size:12.5px;color:var(--ink-2);line-height:1.3;text-align:right}
.fb-label strong{color:var(--ink);font-weight:600;display:block}
.fb-label span{font-size:11px;color:var(--ink-4);display:block}
.fb-track{position:relative;height:14px}
.fb-track::before{content:"";position:absolute;left:96.15%;top:-5px;bottom:-5px;border-left:2px dashed var(--border)}
.fb-bar{height:100%;background:#8B8486;border-radius:0 4px 4px 0;min-width:3px}
.fb-ours .fb-bar{background:#B04559}
.fb-val{font-size:13.5px;font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.fb-ours .fb-val{font-weight:700;color:var(--ink)}
.fb-val em{display:block;font-style:normal;font-size:10.5px;color:#B04559;font-weight:600;white-space:normal;line-height:1.3}
@media(max-width:640px){
  .fb-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .fb-label{grid-column:1;grid-row:1;text-align:left}
  .fb-label strong{display:inline}
  .fb-label span{display:inline;margin-left:6px}
  .fb-val{grid-column:2;grid-row:1;text-align:right}
  .fb-track{grid-column:1 / -1;grid-row:2}
}

.chart-wrap.short{height:280px}
.chart-note{font-family:var(--sans);font-size:11.5px;color:var(--ink-4);margin:8px 0 10px;line-height:1.5}

.col-notes{font-family:var(--sans);border-left:1px solid var(--border);padding-left:24px;position:sticky;top:32px;align-self:start;max-height:calc(100vh - 64px);overflow-y:auto}
.col-prose{max-width:820px}
.refs-label{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-bottom:14px}
.ref-item{font-size:12.5px;line-height:1.55;color:var(--ink-3);margin-bottom:12px}
.ref-item a{color:var(--ink-3);text-decoration:underline;text-underline-offset:2px}
.ref-item a:hover{color:var(--accent-2)}
.ref-item code{font-size:.92em;color:var(--ink-4)}
.note-block{margin-bottom:28px}
.note-num{font-size:11px;color:var(--accent-2);font-weight:600;margin-bottom:4px}
.note-text{font-size:12.5px;line-height:1.65;color:var(--ink-3)}
.note-text code{font-size:.9em}

.neuron-strip{height:120px;margin:8px 0 4px;background:var(--ink);-webkit-mask-image:url('/assets/neurons_mask.png');mask-image:url('/assets/neurons_mask.png');-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;opacity:.06}

.fulltext-toggle-wrap{text-align:center;padding:8px 0 60px}
.fulltext-toggle{font-family:var(--sans);font-size:13px;color:var(--ink-3);border:1px solid var(--border);border-radius:99px;padding:10px 22px;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:border-color .15s,color .15s}
.fulltext-toggle:hover{border-color:var(--ink-4);color:var(--ink)}

#full-text{border-top:1px solid var(--border);padding-top:clamp(48px,7vh,72px)}
.full-text-section{max-width:680px;margin:0 auto}
#full-text .ft-kicker{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-bottom:8px}
#full-text h2{margin-top:44px}
#full-text h2:first-of-type{margin-top:0}

.end-links{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;padding:clamp(40px,6vh,56px) 0;font-family:var(--sans);font-size:13.5px}
.end-links a{color:var(--ink-3);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.end-links a:hover{color:var(--accent-2)}

/* ── mobile safety ─────────────────────────────────────────── */
@media (max-width:640px){
  html,body{overflow-x:hidden}
  .paper-head{text-align:center}
  .paper-title{font-size:clamp(27px,8.2vw,40px);max-width:100%}
  .paper-sub,.paper-finding{max-width:100%}
  .paper-hero-img{width:100%}
  .chart-card{max-width:100%}
  .col-prose table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .full-text-section table,.full-text-section pre{display:block;overflow-x:auto}
}