/* ============================================================
   PARALLEL FRONTIER — shared issue-page stylesheet.
   Single source of truth for issue formatting. Every issue links
   this after tokens.css and nav.css. Change formatting here, not
   in individual issues; issues carry no inline CSS. Body reading
   text (prose, lede, key judgments, all lists) is a uniform 15px.
   Optional components (.disclosure, .caveats, .checklist, .banner)
   live in the components section below, ready for any issue to use.
   ============================================================ */

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{background:var(--paper);color:var(--ink);font-family:var(--font-mono);}
.page{max-width:var(--sheet-max);margin:0 auto;background:var(--paper);padding:52px 56px 60px;}

/* ---------- masthead ---------- */
.logo-band{padding-bottom:8px;}
.logo-band img{width:100%;max-width:520px;height:auto;display:block;}
.top{display:flex;justify-content:space-between;align-items:baseline;padding:18px 0 0;border-top:1px solid var(--rule);margin-top:20px;}
.top .sub{font-size:10px;letter-spacing:.22em;color:var(--ink-55);}
.top .stamp{font-size:10px;letter-spacing:.2em;color:var(--ink-55);text-align:right;}
.issue-nav{margin-top:0;}
.banner{background:var(--ink-55);color:var(--paper);text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;padding:8px;text-transform:uppercase;}

/* ---------- hero ---------- */
.hero{border-top:2px solid var(--ink);padding-top:24px;margin-top:22px;}
.kicker{display:inline-block;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.18em;color:var(--paper);background:var(--verm);padding:4px 10px;text-transform:uppercase;margin-bottom:14px;}
.hero h1{font-family:var(--font-display);font-weight:900;font-size:36px;letter-spacing:-.01em;line-height:1.15;color:var(--ink);}
.byline{margin-top:16px;font-size:11px;letter-spacing:.04em;color:var(--ink-55);}
.byline b{color:var(--verm);font-weight:600;}
.deck{margin-top:14px;max-width:820px;font-family:var(--font-serif);font-size:15px;line-height:1.55;color:var(--ink);}

/* ---------- body prose ---------- */
.prose{font-family:var(--font-serif);font-size:15px;line-height:1.65;color:var(--ink);max-width:820px;}
.prose p{margin:0 0 16px;}
.prose p:last-child{margin-bottom:0;}
.prose i,.prose em{font-style:italic;}
.prose b,.prose strong{font-weight:600;}
.prose a{color:var(--verm);text-decoration:underline;}
.prose ul{max-width:820px;margin:0 0 16px;padding-left:20px;}
.prose li{margin-bottom:8px;}
.prose li::marker{color:var(--verm);}
.prose .cn{font-family:var(--font-cjk);}
.lede{font-family:var(--font-serif);font-size:15px;line-height:1.65;color:var(--ink);max-width:820px;margin:26px 0;}
.cn{font-family:var(--font-cjk);}
.flag{color:var(--verm);font-weight:600;}

/* ---------- section rule + head ---------- */
.divider{border:none;border-top:1px solid var(--rule);margin:44px 0;}
.section-head{display:flex;align-items:center;gap:14px;margin:0 0 10px;font-family:var(--font-display);font-weight:800;font-size:21px;letter-spacing:.005em;color:var(--ink);text-transform:uppercase;line-height:1.12;}
.section-head::before{content:"";width:14px;height:14px;background:var(--verm);transform:rotate(45deg);flex:none;}
.section-head .cn{font-family:var(--font-cjk);font-weight:700;color:var(--verm);text-transform:none;margin-right:2px;}
.section-head + .section-sub{margin-top:0;}
.section-sub{font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--ink);margin:6px 0 18px;}
.section-note{font-family:var(--font-serif);font-style:italic;font-size:15px;line-height:1.65;color:var(--ink-55);max-width:790px;margin-bottom:18px;border-left:2px solid var(--verm);padding-left:14px;}
.section-note .cn{font-family:var(--font-cjk);font-style:normal;}
.analysis-block{margin-bottom:18px;}
.analysis-block b:first-child{font-weight:600;}

/* ---------- key judgments ---------- */
.kj-list{max-width:820px;display:flex;flex-direction:column;gap:18px;}
.kj{display:flex;gap:14px;}
.kj .n{font-family:var(--font-mono);font-weight:600;font-size:13px;color:var(--verm);flex:none;width:22px;}
.kj .badge{flex:none;width:26px;height:20px;margin-top:3px;}
.kj .tag{flex:none;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--verm);border:1px dashed var(--verm);padding:2px 6px;height:18px;margin-top:2px;white-space:nowrap;}
.kj .t{font-family:var(--font-serif);font-size:15px;line-height:1.6;color:var(--ink);}
.kj .t b{font-weight:600;}
.kj .t .conf{display:block;font-family:var(--font-mono);font-size:11px;font-style:normal;color:var(--ink-55);margin-top:4px;}

/* ---------- lists ---------- */
.risk-list{max-width:820px;margin:4px 0 16px;padding-left:24px;}
.risk-list li{font-family:var(--font-serif);font-size:15px;line-height:1.6;margin-bottom:11px;}
.risk-list li::marker{color:var(--verm);font-family:var(--font-mono);font-weight:600;}
.risk-list li b{font-weight:600;}
.signals{max-width:820px;padding-left:20px;}
.signals li{font-family:var(--font-serif);font-size:15px;line-height:1.6;margin-bottom:10px;}
.signals li::marker{color:var(--verm);}
.signals li b{font-weight:600;}
.signals .cn{font-family:var(--font-cjk);}
.house-notes{max-width:820px;padding-left:20px;}
.house-notes li{font-family:var(--font-serif);font-size:15px;line-height:1.6;margin-bottom:10px;color:var(--ink);}
.house-notes li::marker{color:var(--verm);}
.house-notes li b{font-weight:600;}

/* ---------- figures ---------- */
.chart-figure{margin:28px 0 8px;}
.chart-figure img{width:100%;height:auto;display:block;border:1px solid var(--rule);}
.chart-caption{font-size:10px;color:var(--ink-55);margin-top:8px;font-style:italic;}
.docket-figure{margin-top:18px;}
.docket-figure img{width:100%;height:auto;display:block;border:1px solid var(--rule);}
.docket-caption{font-size:10px;color:var(--ink-55);margin-top:8px;font-style:italic;}
.term-figure{margin-top:18px;max-width:480px;}
.term-figure img{width:100%;height:auto;display:block;border:1px solid var(--rule);}

/* ---------- footer ---------- */
.sources-note{max-width:820px;margin-top:18px;font-family:var(--font-mono);font-size:10.5px;line-height:1.6;color:var(--ink-55);}
.colophon{margin-top:44px;padding-top:20px;border-top:1px solid var(--rule);font-family:var(--font-serif);font-style:italic;font-size:15px;line-height:1.65;color:var(--ink-55);}
.colophon a{color:var(--ink-55);}

/* ---------- optional components (used by some issues) ---------- */
.disclosure{border:1px solid var(--ink);padding:16px 20px;max-width:820px;margin:26px 0 0;}
.disclosure .st{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--verm);margin-bottom:8px;}
.disclosure p{font-family:var(--font-serif);font-size:15px;line-height:1.65;color:var(--ink);}
.caveats{max-width:820px;padding-left:20px;}
.caveats li{font-family:var(--font-serif);font-size:15px;line-height:1.6;margin-bottom:10px;color:var(--ink);}
.caveats li::marker{color:var(--verm);}
.caveats li b{font-weight:600;}
.checklist{max-width:820px;margin:0;padding-left:24px;}
.checklist li{font-family:var(--font-serif);font-size:15px;line-height:1.6;margin-bottom:10px;color:var(--ink);}
.checklist li::marker{color:var(--verm);font-family:var(--font-mono);font-weight:600;}

@media (max-width:820px){
  .page{padding:32px 20px 40px;}
  .hero h1{font-size:26px;}
  .top{flex-direction:column;gap:16px;}
  .kj{flex-direction:column;gap:4px;}
  .section-head{font-size:18px;}
}
