
:root {
  --ivoire: #FCFBF6; --pierre: #EEE8DC; --sable: #D7C7AE;
  --nude: #E9DDCA; --nude-soft: #F4EFE4; --white: #FFFFFF;
  --green: #006C35; --green-dark: #063F2A; --green-deep: #0C2F22; --green-soft: #E4EFE8;
  --encre: #13241D; --graphite: #34483E; --plomb: #69766F;
  --or: #B68A42; --argent: #8C978F; --noir: #0A0A0A;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Karla', Helvetica, Arial, sans-serif;
  --display: 'Playfair Display', Georgia, serif;
  --gutter: 2.5rem;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; }
body { background:var(--ivoire); color:var(--encre); font-family:var(--sans); }
html,body { max-width:100%; overflow-x:hidden; }
::selection { background:var(--green); color:var(--white); }
a { color:inherit; text-decoration:none; }
.page { min-height:100vh; position:relative; overflow:visible; }
.page-dark { background:linear-gradient(135deg, var(--green-soft), var(--nude-soft)); color:var(--green-dark); }
.page-inner { max-width:940px; margin:0 auto; padding:4.5rem 2rem; }
.wide-inner { max-width:1180px; margin:0 auto; padding:4.5rem 2rem; }
.masthead-text { font-family:var(--serif); font-weight:300; letter-spacing:.35em; text-transform:uppercase; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:400; }
.kicker { font-family:var(--sans); font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--green); margin-bottom:.75rem; }
.headline { font-family:var(--serif); font-weight:400; line-height:1.12; letter-spacing:.02em; }
.deck { font-family:var(--sans); font-weight:300; font-size:.95rem; line-height:1.75; color:var(--plomb); margin-top:1rem; }
.body-text { font-family:var(--sans); font-size:.9rem; line-height:1.82; color:var(--graphite); text-align:left; }
.body-text p { margin-bottom:1.2rem; }
.caption { font-family:var(--sans); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--argent); }
.folio { font-family:var(--sans); font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; color:var(--argent); position:absolute; bottom:2rem; }
.folio-center { left:50%; transform:translateX(-50%); }
.folio-left { left:2rem; }
.folio-right { right:2rem; }
.divider { width:60px; height:.5px; background:var(--green); margin:1.5rem 0; }
.divider-full { width:100%; height:.5px; background:rgba(0,108,53,.22); }
.pull-quote { font-family:var(--serif); font-weight:300; font-size:1.55rem; line-height:1.42; color:var(--green-dark); border-left:3px solid var(--green); padding-left:1.4rem; margin:2.2rem 0; }
.pull-quote-large { font-family:var(--serif); font-weight:300; font-size:2.35rem; line-height:1.35; color:var(--green-dark); text-align:center; margin:3rem 0; padding:2rem 0; border-top:.5px solid var(--green); border-bottom:.5px solid var(--green); }
.dropcap-large::first-letter { font-family:var(--display); font-size:6.5rem; float:left; line-height:.75; margin-right:.7rem; margin-top:.15rem; color:var(--green); font-weight:400; }
.cover-page { height:100vh; display:flex; flex-direction:column; justify-content:space-between; align-items:center; padding:3rem 2rem; background:linear-gradient(135deg, var(--ivoire) 0%, var(--nude-soft) 48%, var(--green-soft) 100%); color:var(--green-dark); position:relative; overflow:hidden; border-top:10px solid var(--green); border-bottom:10px solid var(--green); }
.cover-page::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,108,53,.08) 0%, rgba(0,108,53,0) 24%, rgba(182,138,66,.10) 100%); }
.grain::after { content:''; position:absolute; inset:0; opacity:.045; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); pointer-events:none; z-index:1; }
.cover-header,.cover-center,.cover-lines,.cover-footer { z-index:2; }
.cover-header { text-align:center; padding-top:2rem; }
.cover-issue { font-family:var(--sans); font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:var(--green); }
.cover-masthead { font-family:var(--serif); font-weight:400; font-size:4.35rem; letter-spacing:.16em; text-transform:uppercase; color:var(--green-dark); margin-top:.5rem; }
.cover-line-gold { width:56px; height:2px; background:var(--green); margin:1.5rem auto; }
.cover-center { flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:1.2rem; }
.cover-headline { font-family:var(--serif); font-weight:500; font-size:3.25rem; color:var(--green-deep); letter-spacing:.02em; line-height:1.25; max-width:760px; }
.cover-sub { font-family:var(--sans); font-weight:500; font-size:.7rem; color:var(--green); letter-spacing:.16em; text-transform:uppercase; }
.cover-lines { text-align:center; display:flex; flex-direction:column; gap:.42rem; }
.cover-line-item { font-family:var(--sans); font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:var(--graphite); }
.cover-footer { display:flex; justify-content:space-between; width:100%; font-family:var(--sans); font-size:.5rem; letter-spacing:.15em; text-transform:uppercase; color:var(--green-dark); }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.grid-sidebar { display:grid; grid-template-columns:2.75fr 1fr; gap:3rem; }
.spread { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }
.spread-golden { display:grid; grid-template-columns:1.618fr 1fr; min-height:100vh; }
.spread-reverse { display:grid; grid-template-columns:1fr 1.618fr; min-height:100vh; }
.col-2-text { column-count:2; column-gap:var(--gutter); column-rule:.5px solid var(--sable); }
.col-3-text { column-count:3; column-gap:var(--gutter); column-rule:.5px solid var(--sable); }
.section-header { margin-bottom:3rem; }
.section-num { font-family:var(--serif); font-weight:300; font-size:.85rem; letter-spacing:.15em; color:var(--argent); }
.stat-block { display:block; text-align:center; padding:2rem 1rem; color:inherit; }
.stat-number { font-family:var(--display); font-weight:400; font-size:3.2rem; color:var(--encre); letter-spacing:.02em; }
.stat-label { font-family:var(--sans); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--plomb); margin-top:.5rem; }
.info-box { border-top:3px solid var(--green); background:var(--nude-soft); padding:1.5rem; margin:1.5rem 0; box-shadow:inset 0 0 0 1px rgba(0,108,53,.08); }
.info-box-dark { border-top:3px solid var(--green); background:var(--green-soft); color:var(--green-dark); padding:1.5rem; margin:1.5rem 0; }
.info-box h4,.info-box-dark h4 { font-family:var(--sans); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--green); margin-bottom:.75rem; }
.info-box p,.info-box-dark p,.info-box li,.info-box-dark li { font-family:var(--sans); font-size:.8rem; line-height:1.6; margin-bottom:.5rem; color:inherit; }
.info-box ul,.info-box-dark ul { list-style:none; }
.info-box li::before,.info-box-dark li::before { content:'- '; color:var(--green); }
.toc-entry { display:grid; grid-template-columns:3rem 1fr 5rem; gap:1.2rem; align-items:baseline; padding:1rem 0; border-bottom:.5px solid var(--pierre); }
.toc-entry,.power-entry,.stat-block { transition:background 160ms ease, transform 160ms ease, border-color 160ms ease; }
.toc-entry:hover,.power-entry:hover,.stat-block:hover { background:rgba(0,108,53,.045); transform:translateY(-1px); }
.toc-num { font-family:var(--serif); color:var(--green); font-size:1.3rem; }
.toc-title { font-family:var(--serif); color:var(--encre); font-size:1.2rem; line-height:1.25; }
.toc-meta { font-family:var(--sans); color:var(--argent); font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; text-align:right; }
.power-entry { padding:1.25rem 0; border-bottom:.5px solid rgba(0,108,53,.18); display:grid; grid-template-columns:3rem 1fr; gap:1.4rem; align-items:start; color:inherit; }
.power-rank { font-family:var(--serif); font-weight:300; font-size:1.7rem; color:var(--sable); line-height:1; }
.power-name { font-family:var(--serif); font-weight:400; font-size:1.12rem; color:var(--encre); }
.power-title { font-family:var(--sans); font-size:.68rem; color:var(--green); letter-spacing:.1em; text-transform:uppercase; margin-top:.2rem; }
.power-note { font-family:var(--sans); font-size:.77rem; color:var(--graphite); margin-top:.4rem; line-height:1.6; }
.issue-nav { position:fixed; z-index:20; right:1rem; top:1rem; display:flex; gap:.35rem; flex-wrap:wrap; max-width:560px; justify-content:flex-end; opacity:.55; transition:opacity 160ms ease; }
.issue-nav:hover { opacity:1; }
.issue-nav a { font-family:var(--sans); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; background:rgba(255,255,255,.88); border:.5px solid rgba(0,108,53,.28); padding:.38rem .5rem; color:var(--green-dark); backdrop-filter:blur(8px); }
.ad-page { min-height:78vh; display:flex; align-items:center; justify-content:center; text-align:center; background:linear-gradient(135deg, var(--nude-soft), var(--green-soft)); color:var(--green-dark); position:relative; overflow:hidden; padding:4rem 2rem; border-top:1px solid rgba(0,108,53,.22); border-bottom:1px solid rgba(0,108,53,.22); }
.ad-brand { font-family:var(--display); font-weight:500; font-size:3.35rem; letter-spacing:.15em; color:var(--green-dark); }
.ad-tagline { font-family:var(--sans); font-weight:500; font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--green); margin-top:1.5rem; }
.ad-rule { width:56px; height:2px; background:var(--green); margin:1.5rem auto; }
.article-hero { padding-top:5rem; }
.article-meta { display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.2rem; }
.article-meta span { font-family:var(--sans); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--argent); }
.chart-box { border-top:.5px solid var(--green); border-bottom:.5px solid var(--green); padding:1.2rem 0; margin:2rem 0; }
.bar-chart { display:flex; flex-direction:column; gap:.75rem; margin-top:1rem; }
.bar-row { display:flex; align-items:center; gap:1rem; }
.bar-label { font-family:var(--sans); font-size:.7rem; color:var(--graphite); min-width:155px; text-align:right; }
.bar-track { flex:1; height:24px; background:var(--pierre); position:relative; }
.bar-fill { height:100%; background:linear-gradient(90deg, var(--green), #238A55); display:flex; align-items:center; justify-content:flex-end; padding-right:.5rem; min-width:32px; }
.bar-value { font-family:var(--sans); font-size:.6rem; letter-spacing:.05em; color:var(--white); }
.kpi-table,.qa-table { width:100%; border-collapse:collapse; font-family:var(--sans); font-size:.74rem; color:var(--graphite); }
.kpi-table th,.kpi-table td,.qa-table th,.qa-table td { border-bottom:.5px solid var(--pierre); padding:.65rem .55rem; vertical-align:top; text-align:left; }
.kpi-table th,.qa-table th { color:var(--green); font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; }
.chip { display:inline-block; font-family:var(--sans); font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; border:.5px solid var(--sable); padding:.22rem .42rem; margin:.1rem .15rem .1rem 0; color:var(--plomb); }
.source-list li { margin-bottom:.55rem; font-family:var(--sans); font-size:.78rem; color:var(--graphite); line-height:1.5; }
.search-panel { position:sticky; top:0; z-index:12; background:rgba(252,251,246,.96); border-bottom:.5px solid rgba(0,108,53,.18); padding:.8rem 1rem; display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.search-panel input,.search-panel select { border:.5px solid rgba(0,108,53,.35); background:var(--white); padding:.55rem .65rem; min-width:220px; font-family:var(--sans); color:var(--green-dark); }
@media (max-width: 900px) {
  .grid-2,.grid-3,.grid-4,.grid-sidebar,.spread,.spread-golden,.spread-reverse { grid-template-columns:1fr; }
  .page-inner,.wide-inner { padding:3rem 1.4rem; }
  .col-2-text,.col-3-text { column-count:1; }
  .cover-masthead { font-size:3.25rem; letter-spacing:.11em; }
  .issue-nav { position:static; padding:1rem; justify-content:flex-start; background:var(--ivoire); opacity:1; }
  .issue-nav a { background:var(--white); }
  .toc-entry { grid-template-columns:2.2rem 1fr; }
  .toc-meta { display:none; }
}

body { background:linear-gradient(180deg, var(--ivoire), #F7F3EA); }
.reading-progress { position:fixed; top:0; left:0; height:4px; width:0%; background:linear-gradient(90deg, var(--green), #28A263); z-index:50; box-shadow:0 0 0 1px rgba(255,255,255,.5); }
.page { border-bottom:1px solid rgba(0,108,53,.10); }
.page::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg, rgba(0,108,53,.035), transparent 18%, transparent 82%, rgba(182,138,66,.035)); }
.page-inner,.wide-inner { position:relative; z-index:2; }
.headline { font-size:3rem !important; }
.article-page .headline { font-size:3.45rem !important; max-width:1000px; }
.cover-page { height:auto; min-height:100vh; align-items:stretch; padding:2.2rem; }
.cover-page::after { content:''; position:absolute; inset:2.2rem; border:1px solid rgba(0,108,53,.18); pointer-events:none; z-index:2; }
.cover-header,.cover-center,.cover-lines,.cover-footer { max-width:1180px; width:100%; margin-inline:auto; }
.cover-header { display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:.8rem; }
.cover-header .cover-line-gold { width:84px; margin:1rem auto 1.1rem; }
.cover-masthead { font-size:4.35rem; line-height:1; text-align:center; white-space:nowrap; }
.cover-issue { padding-top:.35rem; color:var(--green-dark); }
.cover-masthead-subtitle { font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--green); line-height:1.45; white-space:nowrap; }
.cover-center { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:center; text-align:left; padding:5rem 0 3rem; }
.cover-center-main { max-width:680px; }
.cover-headline { font-size:3.25rem; line-height:1.08; }
.cover-intel-board { border-top:4px solid var(--green); background:rgba(255,255,255,.74); box-shadow:0 20px 60px rgba(6,63,42,.08); padding:1.4rem; }
.cover-intel-row { display:grid; grid-template-columns:4.5rem 1fr; gap:1rem; border-bottom:1px solid rgba(0,108,53,.13); padding:.8rem 0; color:inherit; transition:background 160ms ease, padding 160ms ease, transform 160ms ease; }
.cover-intel-row:hover { background:rgba(0,108,53,.055); padding-left:.4rem; transform:translateY(-1px); }
.cover-intel-row:last-child { border-bottom:0; }
.cover-intel-num { font-family:var(--display); color:var(--green); font-size:2rem; line-height:1; }
.cover-intel-label { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--plomb); }
.cover-intel-note { font-size:.78rem; line-height:1.5; color:var(--graphite); margin-top:.25rem; }
.cover-lines { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; text-align:left; margin-bottom:2rem; }
.cover-line-item { display:block; background:rgba(255,255,255,.52); border-left:3px solid var(--green); padding:.8rem; line-height:1.55; letter-spacing:.09em; color:var(--graphite); transition:background 160ms ease, transform 160ms ease, color 160ms ease; }
.cover-line-item:hover { background:rgba(228,239,232,.86); color:var(--green-dark); transform:translateY(-1px); }
.cover-footer { padding-bottom:.8rem; }
.issue-nav { left:50%; right:auto; transform:translateX(-50%); top:.9rem; max-width:calc(100vw - 2rem); justify-content:center; opacity:.92; background:rgba(252,251,246,.86); border:1px solid rgba(0,108,53,.18); padding:.42rem; box-shadow:0 10px 40px rgba(6,63,42,.08); }
.issue-nav a { background:transparent; border:0; color:var(--green-dark); padding:.32rem .44rem; }
.issue-nav a:hover { background:var(--green-soft); color:var(--green); }
.thesis-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:start; }
.thesis-led { font-family:var(--serif); font-size:2.15rem; line-height:1.32; color:var(--green-dark); }
.thesis-body { font-size:.96rem; line-height:1.82; color:var(--graphite); }
.verdict-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2.5rem; }
.verdict-card,.metric-card,.evidence-card,.article-tile,.sector-card,.dossier-panel,.method-card { background:rgba(255,255,255,.72); border:1px solid rgba(0,108,53,.14); box-shadow:0 14px 44px rgba(6,63,42,.055); }
.verdict-card,.metric-card,.article-tile,.sector-card,.method-card { color:inherit; transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; }
.verdict-card:hover,.metric-card:hover,.article-tile:hover,.sector-card:hover,.method-card:hover { transform:translateY(-2px); border-color:rgba(0,108,53,.36); box-shadow:0 20px 58px rgba(6,63,42,.09); }
.verdict-card { display:block; padding:1.2rem; border-top:4px solid var(--green); }
.verdict-label,.dossier-label,.metric-label { font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--green); }
.verdict-text { font-family:var(--serif); font-size:1.25rem; line-height:1.25; margin-top:.5rem; color:var(--green-dark); }
.evidence-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.evidence-card { padding:1.1rem; min-height:180px; }
.evidence-step { font-family:var(--display); font-size:2rem; color:var(--green); }
.evidence-title { font-family:var(--serif); font-size:1.25rem; line-height:1.2; color:var(--green-dark); margin:.55rem 0; }
.evidence-note { font-size:.78rem; line-height:1.55; color:var(--graphite); }
.article-index-tools,.kpi-tools { display:flex; gap:.7rem; flex-wrap:wrap; align-items:center; margin:1.4rem 0 2rem; }
.filter-btn,.reset-btn { border:1px solid rgba(0,108,53,.28); background:rgba(255,255,255,.78); color:var(--green-dark); padding:.55rem .72rem; font-family:var(--sans); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.filter-btn.active,.filter-btn:hover,.reset-btn:hover { background:var(--green); color:var(--white); }
.article-index-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.article-tile { display:block; padding:1rem; min-height:230px; border-top:4px solid var(--green); }
.article-tile[data-category="Risk"] { border-top-color:#9F3A2F; }
.article-tile[data-category="Upside"] { border-top-color:#18864B; }
.article-tile[data-category="Governance"] { border-top-color:#B68A42; }
.article-tile-num { font-family:var(--display); font-size:2rem; color:var(--sable); }
.article-tile-title { font-family:var(--serif); font-size:1.25rem; line-height:1.2; color:var(--green-dark); margin:.3rem 0 .7rem; }
.article-tile-dek { font-size:.76rem; line-height:1.5; color:var(--graphite); }
.article-tile-meta { display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.8rem; }
.badge { display:inline-flex; align-items:center; gap:.3rem; border:1px solid rgba(0,108,53,.18); background:var(--green-soft); color:var(--green-dark); padding:.22rem .42rem; font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; }
a.badge,.badge-link { cursor:pointer; transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; }
a.badge:hover,.badge-link:hover { transform:translateY(-1px); border-color:rgba(0,108,53,.42); box-shadow:0 8px 20px rgba(6,63,42,.09); }
.badge-red { background:#F2E7E4; color:#8E2E24; border-color:rgba(142,46,36,.22); }
.badge-gold { background:#F4ECD9; color:#7A5A1B; border-color:rgba(122,90,27,.22); }
.badge-green { background:#E0F0E6; color:#075D31; border-color:rgba(7,93,49,.22); }
.metric-board { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin:2rem 0; }
.metric-card { display:block; padding:1rem; }
.metric-value { font-family:var(--display); font-size:2.35rem; line-height:1; color:var(--green-dark); margin:.45rem 0; }
.metric-note { font-size:.72rem; line-height:1.45; color:var(--graphite); }
.bar-track { height:28px; background:rgba(0,108,53,.09); }
.bar-fill { position:relative; }
.bar-fill::after { content:''; position:absolute; right:0; top:-4px; bottom:-4px; width:1px; background:var(--green-dark); opacity:.55; }
.kpi-tools { position:sticky; top:4rem; z-index:15; background:rgba(252,251,246,.94); border:1px solid rgba(0,108,53,.14); padding:.8rem; }
.kpi-tools input,.kpi-tools select { border:1px solid rgba(0,108,53,.32); background:var(--white); color:var(--green-dark); min-width:220px; padding:.55rem .65rem; font-family:var(--sans); }
.kpi-count { margin-left:auto; font-size:.65rem; letter-spacing:.12em; color:var(--green); text-transform:uppercase; }
.kpi-table tr[data-signal*="Red"] td:nth-child(4) { color:#8E2E24; font-weight:700; }
.kpi-table tr[data-signal*="Green"] td:nth-child(4) { color:#075D31; font-weight:700; }
.kpi-table tr[data-signal*="Yellow"] td:nth-child(4) { color:#7A5A1B; font-weight:700; }
.table-scroll { max-width:100%; overflow-x:auto; border:1px solid rgba(0,108,53,.12); background:rgba(255,255,255,.45); }
.table-scroll table { min-width:760px; }
.article-page { background:linear-gradient(180deg, var(--ivoire), #F9F6EF); }
.article-hero { max-width:1240px; }
.article-page .grid-sidebar { grid-template-columns:minmax(0,1fr) 320px; gap:3.2rem; align-items:start; }
.article-meta { border-top:1px solid rgba(0,108,53,.18); border-bottom:1px solid rgba(0,108,53,.18); padding:.75rem 0; }
.article-meta span:first-child { color:var(--green); font-weight:700; }
.article-tools { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1rem; }
.dossier-rail { position:sticky; top:5.25rem; }
.dossier-panel { padding:1rem; margin-bottom:1rem; border-top:4px solid var(--green); }
.dossier-title { font-family:var(--serif); font-size:1.2rem; color:var(--green-dark); margin:.35rem 0 .6rem; line-height:1.25; }
.dossier-text { font-size:.76rem; line-height:1.55; color:var(--graphite); }
.dossier-list { list-style:none; margin-top:.6rem; }
.dossier-list li { font-size:.74rem; line-height:1.48; color:var(--graphite); border-top:1px solid rgba(0,108,53,.1); padding:.5rem 0; }
.dossier-list li::before { content:'Q'; display:inline-flex; align-items:center; justify-content:center; width:1.15rem; height:1.15rem; background:var(--green); color:var(--white); font-size:.55rem; margin-right:.45rem; }
.body-text { font-size:.94rem; }
.body-text.col-2-text { column-gap:3rem; }
.pull-quote { background:linear-gradient(90deg, rgba(228,239,232,.75), transparent); padding:1.1rem 1.4rem; }
.sector-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.sector-card { display:block; padding:1rem; min-height:245px; border-top:4px solid var(--green); }
.sector-card.risk { border-top-color:#9F3A2F; }
.sector-card.watch { border-top-color:#B68A42; }
.sector-card.strong { border-top-color:#18864B; }
.sector-name { font-family:var(--serif); font-size:1.35rem; color:var(--green-dark); }
.sector-copy { font-size:.73rem; line-height:1.5; color:var(--graphite); margin-top:.6rem; }
.sector-copy strong { color:var(--green-dark); }
.source-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.addendum-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.addendum-card { display:block; padding:1rem; min-height:210px; color:inherit; background:rgba(255,255,255,.72); border:1px solid rgba(0,108,53,.14); border-top:4px solid var(--green); box-shadow:0 14px 44px rgba(6,63,42,.055); transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; }
.addendum-card:hover { transform:translateY(-2px); border-color:rgba(0,108,53,.36); box-shadow:0 20px 58px rgba(6,63,42,.09); }
.addendum-card.risk { border-top-color:#9F3A2F; }
.addendum-card.watch { border-top-color:#B68A42; }
.addendum-card.strong { border-top-color:#18864B; }
.addendum-title { font-family:var(--serif); font-size:1.22rem; line-height:1.2; color:var(--green-dark); margin:.45rem 0 .6rem; }
.addendum-copy { font-size:.75rem; line-height:1.55; color:var(--graphite); }
.source-list { list-style:none; }
.source-list a { color:var(--green-dark); text-decoration:underline; text-decoration-color:rgba(0,108,53,.28); text-underline-offset:3px; }
.method-card { display:block; padding:1rem; }
.qa-table td:first-child,.kpi-table td:first-child { color:var(--green-dark); font-weight:700; }
@media (max-width: 1100px) {
  .article-index-grid,.sector-grid,.metric-board,.evidence-grid,.addendum-grid { grid-template-columns:repeat(2,1fr); }
  .cover-center,.thesis-grid,.article-page .grid-sidebar { grid-template-columns:1fr; }
  .dossier-rail,.kpi-tools { position:static; }
  .cover-header { text-align:center; }
  .cover-masthead { font-size:3.25rem; letter-spacing:.11em; max-width:100%; }
  .cover-masthead,.cover-issue,.cover-masthead-subtitle,.cover-header .cover-line-gold { text-align:center; justify-self:center; }
}
@media (max-width: 720px) {
  .issue-nav { position:static; transform:none; max-width:none; margin:0; border-left:0; border-right:0; }
  .headline,.article-page .headline { font-size:2.2rem !important; }
  .cover-page { padding:1.1rem; }
  .cover-masthead { font-size:2.45rem; white-space:normal; }
  .cover-masthead-subtitle { white-space:normal; font-size:.68rem; letter-spacing:.16em; }
  .cover-headline { font-size:2.25rem; }
  .cover-lines,.verdict-strip,.article-index-grid,.sector-grid,.metric-board,.evidence-grid,.source-grid,.addendum-grid { grid-template-columns:1fr; }
  .body-text.col-2-text { column-count:1; }
  .kpi-table { font-size:.68rem; }
  .table-scroll table { min-width:620px; }
  .kpi-tools input,.kpi-tools select { min-width:100%; }
}

:root {
  --ivoire: #F5EBDB;
  --pierre: #EADDC8;
  --sable: #CEBEA6;
  --nude: #DDD0BA;
  --nude-soft: #FAF0E4;
  --white: #FDF8EF;
  --green: #165D31;
  --green-dark: #0B3D1E;
  --green-deep: #1A1108;
  --green-soft: #E5F5EC;
  --encre: #1A1108;
  --graphite: #4A3928;
  --plomb: #6B5540;
  --or: #B68A42;
  --argent: #8A7560;
  --noir: #1A1108;
}

body {
  background: var(--ivoire);
  color: var(--encre);
}

.page,
.article-page {
  background:
    radial-gradient(circle at 15% 8%, rgba(255,255,255,.24), transparent 26rem),
    linear-gradient(180deg, var(--salmon, #F5EBDB), var(--nude-soft));
}

.page-dark,
.ad-page {
  background:
    linear-gradient(135deg, rgba(250,240,228,.92), rgba(234,221,200,.96)),
    var(--ivoire);
}

.cover-page {
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.28), transparent 24rem),
    linear-gradient(135deg, #F5EBDB 0%, #FAF0E4 52%, #EADDC8 100%);
  border-top-color: var(--green);
  border-bottom-color: var(--green);
}

.cover-page::before {
  background:
    linear-gradient(90deg, rgba(22,93,49,.045) 0%, rgba(22,93,49,0) 30%, rgba(26,17,8,.05) 100%),
    repeating-linear-gradient(90deg, rgba(26,17,8,.018) 0 1px, transparent 1px 72px);
}

.cover-page::after {
  border-color: rgba(74,57,40,.22);
}

.cover-masthead,
.cover-headline,
.headline,
.thesis-led,
.verdict-text,
.evidence-title,
.article-tile-title,
.sector-name,
.dossier-title,
.addendum-title {
  color: var(--green-deep);
}

.cover-issue,
.cover-masthead-subtitle,
.kicker,
.section-tag,
.verdict-label,
.dossier-label,
.metric-label,
.kpi-table th,
.qa-table th {
  color: var(--green);
}

.deck,
.body-text,
.pull-quote,
.thesis-body,
.cover-intel-note,
.article-tile-dek,
.sector-copy,
.dossier-text,
.addendum-copy,
.source-list li {
  color: var(--graphite);
}

.cover-intel-board,
.verdict-card,
.metric-card,
.evidence-card,
.article-tile,
.sector-card,
.dossier-panel,
.method-card,
.addendum-card {
  background: rgba(250,240,228,.86);
  border-color: rgba(74,57,40,.18);
  box-shadow: 0 14px 42px rgba(26,17,8,.055);
}

.cover-intel-board {
  background: rgba(245,235,219,.9);
}

.cover-line-item,
.filter-btn,
.reset-btn,
.search-panel input,
.search-panel select,
.kpi-tools input,
.kpi-tools select {
  background: rgba(250,240,228,.88);
  border-color: rgba(74,57,40,.22);
}

.cover-line-item:hover,
.issue-nav a:hover {
  background: rgba(234,221,200,.86);
}

.info-box,
.table-scroll,
.kpi-tools,
.search-panel {
  background: rgba(250,240,228,.9);
  border-color: rgba(74,57,40,.16);
}

.info-box-dark {
  background: rgba(229,245,236,.58);
}

.issue-nav {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  width: fit-content;
  max-width: calc(100vw - 2rem);
  box-sizing: border-box;
  align-items: center;
  justify-content: start;
  gap: .18rem;
  background: rgba(245,235,219,.92);
  border-color: rgba(74,57,40,.18);
  box-shadow: 0 10px 36px rgba(26,17,8,.08);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.issue-nav::-webkit-scrollbar {
  display: none;
}

.issue-nav a {
  display: block;
  min-width: max-content;
  white-space: nowrap;
  line-height: 1;
  font-size: .5rem;
  letter-spacing: .085em;
  padding: .28rem .32rem;
  color: var(--green-deep);
}

.table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  contain: inline-size;
}

.cover-header {
  padding-top: 4.8rem;
}

.cover-issue {
  color: var(--green-deep);
  font-size: .68rem;
  letter-spacing: .18em;
  font-weight: 700;
  opacity: 1;
  text-shadow: 0 1px 0 rgba(250,240,228,.75);
}

p,
.deck,
.pull-quote,
.body-text,
.cover-intel-note,
.metric-note,
.article-tile-dek,
.sector-copy,
.dossier-text,
.addendum-copy,
.source-list li {
  -webkit-hyphens: none;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: pretty;
}

p,
.body-text p,
.deck {
  orphans: 3;
  widows: 3;
}

.dropcap-large::first-letter {
  float: none;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  color: inherit;
  font-family: inherit;
}

@media (max-width: 900px) {
  .issue-nav {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin: 0;
    opacity: 1;
    border-left: 0;
    border-right: 0;
  }
}

.divider-full,
.article-meta,
.power-entry,
.toc-entry,
.kpi-table th,
.kpi-table td,
.qa-table th,
.qa-table td,
.dossier-list li {
  border-color: rgba(74,57,40,.18);
}

.bar-track {
  background: rgba(206,190,166,.42);
}

.pull-quote {
  background: linear-gradient(90deg, rgba(234,221,200,.66), transparent);
}

.badge,
.badge-green {
  background: rgba(229,245,236,.7);
}

.badge-gold {
  background: rgba(234,221,200,.86);
}

.badge-red {
  background: rgba(242,231,228,.76);
}

@media (max-width: 720px) {
  .issue-nav {
    width: auto;
    max-width: 100%;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    justify-content: flex-start;
    overflow-x: auto;
  }

  .cover-header {
    padding-top: 1.4rem;
  }
}
