@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-vf.woff2') format('woff2-variations');font-weight:300 700;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('../fonts/source-serif-4-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('../fonts/source-serif-4-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Geist';src:url('../fonts/geist-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Geist';src:url('../fonts/geist-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Mono';src:url('../fonts/spacemono-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Mono';src:url('../fonts/spacemono-700.woff2') format('woff2');font-weight:700;font-display:swap}
/* ===== article-atlas.html ===== */
:root{
  --paper:#FFFFFF; --paper2:#F4F4F2; --ink:#16140F; --ink2:#4E4A42; --ink3:#696355;
  --rule:#E3DFD4; --rule2:#EDEAE1; --black:#16140F;
  --c-pm:#8FBFE8; --c-cr:#AFAEE6; --c-tax:#E8B43A; --c-legal:#EFA79C; --c-ops:#E79BD0; --c-know:#AFC94E;
  --disp:'Fraunces',Georgia,serif; --read:'Source Serif 4',Georgia,serif;
  --ui:'Geist',system-ui,sans-serif; --mono:'Space Mono',ui-monospace,monospace;
  --maxw:1240px; --measure:704px; --ease:cubic-bezier(.22,1,.36,1);
  /* --acc / --accL default to the cr (Accounting & Reporting) constellation; subj-* classes override */
  --acc:var(--c-cr); --accL:#6E6DC0;
}

/* ============================================================
   ARTICLE-PAGE GRID SYSTEM
   body.type-*   → layout flavor  (analysis | perspective | casefile | outlook)
   body.subj-*   → subject accent (pm | cr | tax | legal | ops | know)
   Fully styled here: type-analysis × subj-cr. Other combinations
   inherit the shared shell and override only what their flavor needs.
   ============================================================ */
body.subj-pm   {--acc:var(--c-pm);   --accL:#4E86C0}
body.subj-cr   {--acc:var(--c-cr);   --accL:#6E6DC0}
body.subj-tax  {--acc:var(--c-tax);  --accL:#B5861F}
body.subj-legal{--acc:var(--c-legal);--accL:#C86352}
body.subj-ops  {--acc:var(--c-ops);  --accL:#B45C9A}
body.subj-know {--acc:var(--c-know); --accL:#7C982C}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--read);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:400;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.08}
p{margin:0}
::selection{background:#FFCB52;color:#16140F}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* ---------- MASTHEAD (shared with homepage) ---------- */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper);position:relative;z-index:5}
.mastrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding:16px 0 12px}
.mastrow .edge{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);line-height:1.7}
.mastrow .edge.r{text-align:right}
.wordmark{text-align:center;font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 144;font-size:clamp(22px,4vw,40px);letter-spacing:-.02em;line-height:.95}
.wordmark .the{display:block;font-size:.34em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink2);margin-bottom:.3em;font-variation-settings:'opsz' 20}
.subrule{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0}
.navrow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.navrow a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);padding:3px 18px;transition:color .15s}
.navrow a+a{border-left:1px solid var(--rule)}
.navrow a:hover{color:var(--ink)}

/* ---------- READING PROGRESS BAR (top) ---------- */
.pbar{position:sticky;top:0;z-index:60;height:3px;background:transparent}
.pbar>span{display:block;height:100%;width:0;background:var(--accL);transition:width .1s linear}

/* ---------- ARTICLE SHELL ---------- */
.art{padding:0 0 10px}
.artwrap{display:grid;grid-template-columns:184px minmax(0,var(--measure));gap:56px;justify-content:center;padding:44px 32px 0}

/* reading-progress rail (desktop instrument) */
.rail{position:sticky;top:40px;align-self:start;height:max-content;padding-top:4px}
.rail .rlab{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.rail .rlab b{font-weight:700;color:var(--accL);font-size:11px}
.rail .rnav{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--rule)}
.rail .rnav a{position:relative;font-family:var(--ui);font-size:12px;line-height:1.3;color:var(--ink3);padding:7px 0 7px 16px;border-left:2px solid transparent;margin-left:-1px;transition:color .2s,border-color .2s}
.rail .rnav a:hover{color:var(--ink)}
.rail .rnav a.on{color:var(--ink);border-left-color:var(--accL)}
.rail .rmeta{margin-top:18px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--ink3);line-height:1.8;text-transform:uppercase}

.col{min-width:0}

/* ---------- ARTICLE HEADER ---------- */
.crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:20px}
.crumb a:hover{color:var(--ink)}
.crumb .sl{margin:0 8px;color:var(--rule)}
.tags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.typebadge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:5px 11px}
.subjchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--rule);padding:4px 11px 4px 9px;transition:border-color .2s}
.subjchip:hover{border-color:var(--ink3)}
.subjchip .k{width:9px;height:9px;background:var(--acc);display:inline-block}
h1.title{font-size:clamp(33px,5vw,54px);font-variation-settings:'opsz' 120;letter-spacing:-.022em;line-height:1.02;margin-bottom:22px;max-width:14ch}
.stand{font-family:var(--read);font-size:clamp(19px,2vw,22px);line-height:1.5;color:var(--ink2);font-style:italic;max-width:38ch;margin-bottom:28px}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.byline .av{width:34px;height:34px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:16px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.byline .who{display:flex;flex-direction:column;line-height:1.25}
.byline .who .nm{font-family:var(--ui);font-weight:500;font-size:14px;color:var(--ink)}
.byline .who .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.byline .dot{width:3px;height:3px;border-radius:50%;background:var(--ink3);margin:0 2px}
.byline .mi{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* ---------- HERO FIGURE ---------- */
.hero{margin:34px 0 10px;border:1px solid var(--rule);overflow:hidden;position:relative;background:var(--paper2)}
.hero img{width:100%;height:clamp(240px,42vw,420px);object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .45s var(--ease)}
.hero:hover img{filter:grayscale(0) contrast(1.02)}
.hero figcaption{position:absolute;left:0;bottom:0;background:rgba(255,255,255,.93);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:5px 10px;border-top:1px solid var(--rule);border-right:1px solid var(--rule)}

/* ---------- KEY POINTS BOX ---------- */
.keybox{margin:30px 0 8px;border:1px solid var(--ink);border-top:4px solid var(--accL);padding:22px 26px 20px}
.keybox .kh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.keybox ul{margin:0;padding:0;list-style:none;counter-reset:kp}
.keybox li{position:relative;padding:0 0 10px 30px;font-size:16.5px;line-height:1.5;color:var(--ink2)}
.keybox li:last-child{padding-bottom:0}
.keybox li::before{counter-increment:kp;content:counter(kp,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accL)}

/* ---------- BODY PROSE ---------- */
.body{padding-top:34px}
.body>p{margin:0 0 22px}
.body>p.lede:first-of-type{font-size:22px;line-height:1.5;color:var(--ink)}
.body .drop::first-letter{initial-letter:2.4;font-family:var(--disp);font-weight:500;color:var(--accL);margin-right:10px;font-variation-settings:'opsz' 144}
.body strong{font-weight:600;color:var(--ink)}
.body em{font-style:italic}
.body h2{font-size:clamp(25px,3vw,33px);font-variation-settings:'opsz' 72;margin:46px 0 6px;letter-spacing:-.018em;scroll-margin-top:70px;line-height:1.1}
.body h2 .hn{display:block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--accL);margin-bottom:12px;letter-spacing:.2em}
.body h2+p{margin-top:16px}
.body h3{font-family:var(--ui);font-weight:500;font-size:18px;letter-spacing:0;margin:30px 0 10px;color:var(--ink);display:flex;align-items:baseline;gap:10px}
.body h3 .en{font-family:var(--mono);font-size:12px;color:var(--accL);font-weight:700}
.body ul.ed{margin:0 0 22px;padding:0;list-style:none}
.body ul.ed li{position:relative;padding:0 0 9px 22px;line-height:1.55}
.body ul.ed li::before{content:"";position:absolute;left:2px;top:12px;width:6px;height:6px;background:var(--acc);border:1px solid var(--accL)}
.body .secrule{height:1px;background:var(--rule);margin:40px 0}

/* pull quote */
.pq{margin:40px 0;padding:6px 0 6px 28px;border-left:3px solid var(--accL)}
.pq p{font-family:var(--disp);font-weight:400;font-size:clamp(23px,2.8vw,31px);line-height:1.22;letter-spacing:-.015em;color:var(--ink)}
.pq p em{font-style:italic;color:var(--ink2)}
.pq .at{display:block;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* editorial comparison table — open top/bottom rules, no outer box, hairline rows */
.ctable{margin:34px 0;overflow-x:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ctable table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.ctable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:0 0 12px;border:0}
.ctable th,.ctable td{text-align:left;padding:14px 26px 14px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
.ctable th:last-child,.ctable td:last-child{padding-right:0}
.ctable thead th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);background:transparent;font-weight:700;vertical-align:bottom;border-bottom:1px solid var(--ink);padding-top:13px;padding-bottom:11px}
.ctable tbody th{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink);width:28%;letter-spacing:-.005em}
.ctable td{color:var(--ink2);line-height:1.46}
.ctable td:last-child{color:var(--ink)}
.ctable tbody tr:last-child th,.ctable tbody tr:last-child td{border-bottom:0}

/* ---------- PROVIDER CONTEXT STRIP ---------- */
.pctx{margin:52px 0 0;border-top:2px solid var(--ink);padding-top:22px}
.pctx .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.pctx .ph .t{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.pctx .ph a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--rule);padding-bottom:2px}
.pctx .ph a:hover{color:var(--ink);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--rule)}
.pgrid a{padding:15px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .15s}
.pgrid a:nth-child(2n){border-right:0}
.pgrid a:nth-last-child(-n+2){border-bottom:0}
.pgrid a:hover{background:var(--paper2)}
.pgrid .pn{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:4px}
.pgrid .pn .k{width:8px;height:8px;background:var(--acc);display:inline-block;flex:0 0 auto}
.pgrid .pd{display:block;font-size:13.5px;color:var(--ink2);line-height:1.4}
.pgrid .pg{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:7px}

/* ---------- AUTHOR CARD ---------- */
.author{display:flex;gap:18px;align-items:flex-start;margin:44px 0 0;padding:24px;border:1px solid var(--rule);background:var(--paper2)}
.author .av{width:46px;height:46px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:22px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.author .nm{font-family:var(--ui);font-weight:500;font-size:16px;color:var(--ink)}
.author .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:3px 0 10px}
.author .bio{font-size:15px;line-height:1.5;color:var(--ink2)}

/* ---------- CTA BAND ---------- */
.cta{margin:46px 0 0;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:34px 32px}
.cta .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:12px}
.cta h3{font-size:clamp(24px,3vw,32px);color:var(--paper);letter-spacing:-.018em;line-height:1.1;margin-bottom:12px;font-variation-settings:'opsz' 72}
.cta p{font-size:16px;line-height:1.55;color:#C9C5BC;max-width:54ch;margin-bottom:22px}
.cta a.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--acc);padding:13px 22px;transition:transform .2s var(--ease)}
.cta a.btn:hover{transform:translateX(3px)}

/* ---------- RELATED ---------- */
.related{margin:52px 0 0;border-top:1px solid var(--ink);padding-top:22px}
.related .rh{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.relitem{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.relitem .rc{border:1px solid var(--rule);overflow:hidden;aspect-ratio:16/10;background:var(--paper2)}
.relitem .rc img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .4s var(--ease)}
.relitem:hover .rc img{filter:grayscale(0) contrast(1.02)}
.relitem .cat{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:7px;margin-bottom:8px}
.relitem .cat .k{width:8px;height:8px;background:var(--acc);display:inline-block}
.relitem h4{font-family:var(--disp);font-size:21px;line-height:1.12;letter-spacing:-.015em;margin-bottom:8px}
.relitem:hover h4{color:var(--accL)}
.relitem .rd{font-size:14.5px;color:var(--ink2);line-height:1.45}

/* ---------- DISPATCH (shared) ---------- */
.sec{padding:60px 0}
.dispatch{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:40px 0}
.dispatch .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px}
.dispatch h3{font-size:clamp(25px,3vw,34px);line-height:1.08;letter-spacing:-.018em;margin-bottom:14px;font-variation-settings:'opsz' 72}
.dispatch h3 em{font-style:italic}
.dispatch p{font-size:16px;color:var(--ink2);line-height:1.55;max-width:46ch}
.dform{display:flex;flex-wrap:wrap;gap:10px}
.dform input{flex:1;min-width:210px;font-family:var(--ui);font-size:15px;padding:13px 15px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.dform input:focus{outline:2px solid var(--accL);outline-offset:-1px}
.dform button{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:13px 22px;cursor:pointer;transition:background .2s}
.dform button:hover{background:var(--ink2)}
.dmsg{flex-basis:100%;font-family:var(--mono);font-size:11px;color:var(--accL);min-height:1px}
.dfine{flex-basis:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}

/* ---------- COLOPHON (shared) ---------- */
.colophon{border-top:2px solid var(--ink);padding:34px 0 40px}
.coltop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.colophon .cm{font-family:var(--disp);font-size:24px;letter-spacing:-.02em;line-height:1}
.colophon .cm .the{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.colophon nav{display:flex;flex-wrap:wrap;gap:0}
.colophon nav a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:2px 14px;border-left:1px solid var(--rule)}
.colophon nav a:first-child{padding-left:0;border-left:0}
.colophon nav a:hover{color:var(--ink)}
.colbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:16px}

/* ---------- HEADING HIGHLIGHT (marker behind section headings, matches homepage) ---------- */
.body h2 .hh{background-image:linear-gradient(to top,transparent 5%,var(--hl,transparent) 5%,var(--hl,transparent) 47%,transparent 47%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .05em}
body.subj-cr   .hh{--hl:#D9CCF0}
body.subj-ops  .hh{--hl:#F7CEE7}
body.subj-pm   .hh{--hl:#CDE0F6}
body.subj-legal .hh{--hl:#F8D5C9}
body.subj-tax  .hh{--hl:#F3E1BD}
body.subj-know .hh{--hl:#DDE9BE}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .artwrap{grid-template-columns:minmax(0,var(--measure));gap:0;padding:34px 24px 0}
  .rail{display:none}
}
@media(max-width:720px){
  .dispatch{grid-template-columns:1fr;gap:22px}
}
@media(max-width:560px){
  body{font-size:18px}
  .wrap{padding:0 18px}
  .artwrap{padding:26px 18px 0}
  .pgrid{grid-template-columns:1fr}
  .pgrid a{border-right:0}
  .pgrid a:nth-last-child(2){border-bottom:1px solid var(--rule)}
  .relitem{grid-template-columns:1fr;gap:12px}
  .relitem .rc{aspect-ratio:16/9;max-width:220px}
  .body .drop::first-letter{initial-letter:2}
}
/* ===== article-perspective.html ===== */
:root{
  --paper:#FFFFFF; --paper2:#F4F4F2; --ink:#16140F; --ink2:#4E4A42; --ink3:#696355;
  --rule:#E3DFD4; --rule2:#EDEAE1; --black:#16140F;
  --c-pm:#8FBFE8; --c-cr:#AFAEE6; --c-tax:#E8B43A; --c-legal:#EFA79C; --c-ops:#E79BD0; --c-know:#AFC94E;
  --disp:'Fraunces',Georgia,serif; --read:'Source Serif 4',Georgia,serif;
  --ui:'Geist',system-ui,sans-serif; --mono:'Space Mono',ui-monospace,monospace;
  --maxw:1240px; --measure:704px; --ease:cubic-bezier(.22,1,.36,1);
  /* --acc / --accL default to the cr (Accounting & Reporting) constellation; subj-* classes override */
  --acc:var(--c-cr); --accL:#6E6DC0;
}

/* ============================================================
   ARTICLE-PAGE GRID SYSTEM
   body.type-*   → layout flavor  (analysis | perspective | casefile | outlook)
   body.subj-*   → subject accent (pm | cr | tax | legal | ops | know)
   Fully styled here: type-analysis × subj-cr. Other combinations
   inherit the shared shell and override only what their flavor needs.
   ============================================================ */
body.subj-pm   {--acc:var(--c-pm);   --accL:#4E86C0}
body.subj-cr   {--acc:var(--c-cr);   --accL:#6E6DC0}
body.subj-tax  {--acc:var(--c-tax);  --accL:#B5861F}
body.subj-legal{--acc:var(--c-legal);--accL:#C86352}
body.subj-ops  {--acc:var(--c-ops);  --accL:#B45C9A}
body.subj-know {--acc:var(--c-know); --accL:#7C982C}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--read);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:400;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.08}
p{margin:0}
::selection{background:#FFCB52;color:#16140F}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* ---------- MASTHEAD (shared with homepage) ---------- */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper);position:relative;z-index:5}
.mastrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding:16px 0 12px}
.mastrow .edge{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);line-height:1.7}
.mastrow .edge.r{text-align:right}
.wordmark{text-align:center;font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 144;font-size:clamp(22px,4vw,40px);letter-spacing:-.02em;line-height:.95}
.wordmark .the{display:block;font-size:.34em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink2);margin-bottom:.3em;font-variation-settings:'opsz' 20}
.subrule{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0}
.navrow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.navrow a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);padding:3px 18px;transition:color .15s}
.navrow a+a{border-left:1px solid var(--rule)}
.navrow a:hover{color:var(--ink)}

/* ---------- READING PROGRESS BAR (top) ---------- */
.pbar{position:sticky;top:0;z-index:60;height:3px;background:transparent}
.pbar>span{display:block;height:100%;width:0;background:var(--accL);transition:width .1s linear}

/* ---------- ARTICLE SHELL ---------- */
.art{padding:0 0 10px}
.artwrap{display:grid;grid-template-columns:184px minmax(0,var(--measure));gap:56px;justify-content:center;padding:44px 32px 0}

/* reading-progress rail (desktop instrument) */
.rail{position:sticky;top:40px;align-self:start;height:max-content;padding-top:4px}
.rail .rlab{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.rail .rlab b{font-weight:700;color:var(--accL);font-size:11px}
.rail .rnav{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--rule)}
.rail .rnav a{position:relative;font-family:var(--ui);font-size:12px;line-height:1.3;color:var(--ink3);padding:7px 0 7px 16px;border-left:2px solid transparent;margin-left:-1px;transition:color .2s,border-color .2s}
.rail .rnav a:hover{color:var(--ink)}
.rail .rnav a.on{color:var(--ink);border-left-color:var(--accL)}
.rail .rmeta{margin-top:18px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--ink3);line-height:1.8;text-transform:uppercase}

.col{min-width:0}

/* ---------- ARTICLE HEADER ---------- */
.crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:20px}
.crumb a:hover{color:var(--ink)}
.crumb .sl{margin:0 8px;color:var(--rule)}
.tags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.typebadge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:5px 11px}
.subjchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--rule);padding:4px 11px 4px 9px;transition:border-color .2s}
.subjchip:hover{border-color:var(--ink3)}
.subjchip .k{width:9px;height:9px;background:var(--acc);display:inline-block}
h1.title{font-size:clamp(33px,5vw,54px);font-variation-settings:'opsz' 120;letter-spacing:-.022em;line-height:1.02;margin-bottom:22px;max-width:14ch}
.stand{font-family:var(--read);font-size:clamp(19px,2vw,22px);line-height:1.5;color:var(--ink2);font-style:italic;max-width:38ch;margin-bottom:28px}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.byline .av{width:34px;height:34px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:16px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.byline .who{display:flex;flex-direction:column;line-height:1.25}
.byline .who .nm{font-family:var(--ui);font-weight:500;font-size:14px;color:var(--ink)}
.byline .who .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.byline .dot{width:3px;height:3px;border-radius:50%;background:var(--ink3);margin:0 2px}
.byline .mi{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* ---------- HERO FIGURE ---------- */
.hero{margin:34px 0 10px;border:1px solid var(--rule);overflow:hidden;position:relative;background:var(--paper2)}
.hero img{width:100%;height:clamp(240px,42vw,420px);object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .45s var(--ease)}
.hero:hover img{filter:grayscale(0) contrast(1.02)}
.hero figcaption{position:absolute;left:0;bottom:0;background:rgba(255,255,255,.93);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:5px 10px;border-top:1px solid var(--rule);border-right:1px solid var(--rule)}

/* ---------- KEY POINTS BOX ---------- */
.keybox{margin:30px 0 8px;border:1px solid var(--ink);border-top:4px solid var(--accL);padding:22px 26px 20px}
.keybox .kh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.keybox ul{margin:0;padding:0;list-style:none;counter-reset:kp}
.keybox li{position:relative;padding:0 0 10px 30px;font-size:16.5px;line-height:1.5;color:var(--ink2)}
.keybox li:last-child{padding-bottom:0}
.keybox li::before{counter-increment:kp;content:counter(kp,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accL)}

/* ---------- BODY PROSE ---------- */
.body{padding-top:34px}
.body>p{margin:0 0 22px}
.body>p.lede:first-of-type{font-size:22px;line-height:1.5;color:var(--ink)}
.body .drop::first-letter{initial-letter:2.4;font-family:var(--disp);font-weight:500;color:var(--accL);margin-right:10px;font-variation-settings:'opsz' 144}
.body strong{font-weight:600;color:var(--ink)}
.body em{font-style:italic}
.body h2{font-size:clamp(25px,3vw,33px);font-variation-settings:'opsz' 72;margin:46px 0 6px;letter-spacing:-.018em;scroll-margin-top:70px;line-height:1.1}
.body h2 .hn{display:block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--accL);margin-bottom:12px;letter-spacing:.2em}
.body h2+p{margin-top:16px}
.body h3{font-family:var(--ui);font-weight:500;font-size:18px;letter-spacing:0;margin:30px 0 10px;color:var(--ink);display:flex;align-items:baseline;gap:10px}
.body h3 .en{font-family:var(--mono);font-size:12px;color:var(--accL);font-weight:700}
.body ul.ed{margin:0 0 22px;padding:0;list-style:none}
.body ul.ed li{position:relative;padding:0 0 9px 22px;line-height:1.55}
.body ul.ed li::before{content:"";position:absolute;left:2px;top:12px;width:6px;height:6px;background:var(--acc);border:1px solid var(--accL)}
.body .secrule{height:1px;background:var(--rule);margin:40px 0}

/* pull quote */
.pq{margin:40px 0;padding:6px 0 6px 28px;border-left:3px solid var(--accL)}
.pq p{font-family:var(--disp);font-weight:400;font-size:clamp(23px,2.8vw,31px);line-height:1.22;letter-spacing:-.015em;color:var(--ink)}
.pq p em{font-style:italic;color:var(--ink2)}
.pq .at{display:block;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* editorial comparison table — open top/bottom rules, no outer box, hairline rows */
.ctable{margin:34px 0;overflow-x:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ctable table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.ctable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:0 0 12px;border:0}
.ctable th,.ctable td{text-align:left;padding:14px 26px 14px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
.ctable th:last-child,.ctable td:last-child{padding-right:0}
.ctable thead th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);background:transparent;font-weight:700;vertical-align:bottom;border-bottom:1px solid var(--ink);padding-top:13px;padding-bottom:11px}
.ctable tbody th{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink);width:28%;letter-spacing:-.005em}
.ctable td{color:var(--ink2);line-height:1.46}
.ctable td:last-child{color:var(--ink)}
.ctable tbody tr:last-child th,.ctable tbody tr:last-child td{border-bottom:0}

/* ---------- PROVIDER CONTEXT STRIP ---------- */
.pctx{margin:52px 0 0;border-top:2px solid var(--ink);padding-top:22px}
.pctx .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.pctx .ph .t{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.pctx .ph a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--rule);padding-bottom:2px}
.pctx .ph a:hover{color:var(--ink);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--rule)}
.pgrid a{padding:15px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .15s}
.pgrid a:nth-child(2n){border-right:0}
.pgrid a:nth-last-child(-n+2){border-bottom:0}
.pgrid a:hover{background:var(--paper2)}
.pgrid .pn{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:4px}
.pgrid .pn .k{width:8px;height:8px;background:var(--acc);display:inline-block;flex:0 0 auto}
.pgrid .pd{display:block;font-size:13.5px;color:var(--ink2);line-height:1.4}
.pgrid .pg{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:7px}

/* ---------- AUTHOR CARD ---------- */
.author{display:flex;gap:18px;align-items:flex-start;margin:44px 0 0;padding:24px;border:1px solid var(--rule);background:var(--paper2)}
.author .av{width:46px;height:46px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:22px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.author .nm{font-family:var(--ui);font-weight:500;font-size:16px;color:var(--ink)}
.author .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:3px 0 10px}
.author .bio{font-size:15px;line-height:1.5;color:var(--ink2)}

/* ---------- CTA BAND ---------- */
.cta{margin:46px 0 0;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:34px 32px}
.cta .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:12px}
.cta h3{font-size:clamp(24px,3vw,32px);color:var(--paper);letter-spacing:-.018em;line-height:1.1;margin-bottom:12px;font-variation-settings:'opsz' 72}
.cta p{font-size:16px;line-height:1.55;color:#C9C5BC;max-width:54ch;margin-bottom:22px}
.cta a.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--acc);padding:13px 22px;transition:transform .2s var(--ease)}
.cta a.btn:hover{transform:translateX(3px)}

/* ---------- RELATED ---------- */
.related{margin:52px 0 0;border-top:1px solid var(--ink);padding-top:22px}
.related .rh{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.relitem{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.relitem .rc{border:1px solid var(--rule);overflow:hidden;aspect-ratio:16/10;background:var(--paper2)}
.relitem .rc img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .4s var(--ease)}
.relitem:hover .rc img{filter:grayscale(0) contrast(1.02)}
.relitem .cat{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:7px;margin-bottom:8px}
.relitem .cat .k{width:8px;height:8px;background:var(--acc);display:inline-block}
.relitem h4{font-family:var(--disp);font-size:21px;line-height:1.12;letter-spacing:-.015em;margin-bottom:8px}
.relitem:hover h4{color:var(--accL)}
.relitem .rd{font-size:14.5px;color:var(--ink2);line-height:1.45}

/* ---------- DISPATCH (shared) ---------- */
.sec{padding:60px 0}
.dispatch{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:40px 0}
.dispatch .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px}
.dispatch h3{font-size:clamp(25px,3vw,34px);line-height:1.08;letter-spacing:-.018em;margin-bottom:14px;font-variation-settings:'opsz' 72}
.dispatch h3 em{font-style:italic}
.dispatch p{font-size:16px;color:var(--ink2);line-height:1.55;max-width:46ch}
.dform{display:flex;flex-wrap:wrap;gap:10px}
.dform input{flex:1;min-width:210px;font-family:var(--ui);font-size:15px;padding:13px 15px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.dform input:focus{outline:2px solid var(--accL);outline-offset:-1px}
.dform button{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:13px 22px;cursor:pointer;transition:background .2s}
.dform button:hover{background:var(--ink2)}
.dmsg{flex-basis:100%;font-family:var(--mono);font-size:11px;color:var(--accL);min-height:1px}
.dfine{flex-basis:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}

/* ---------- COLOPHON (shared) ---------- */
.colophon{border-top:2px solid var(--ink);padding:34px 0 40px}
.coltop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.colophon .cm{font-family:var(--disp);font-size:24px;letter-spacing:-.02em;line-height:1}
.colophon .cm .the{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.colophon nav{display:flex;flex-wrap:wrap;gap:0}
.colophon nav a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:2px 14px;border-left:1px solid var(--rule)}
.colophon nav a:first-child{padding-left:0;border-left:0}
.colophon nav a:hover{color:var(--ink)}
.colbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:16px}

/* ============================================================
   TYPE FLAVOR: PERSPECTIVE (op-ed)
   Author-forward, centered header, argument epigraph, larger
   voice, centered pull quotes, sign-off. No key-points box,
   no data table. Narrower measure.
   ============================================================ */
body.type-perspective{--measure:650px}
.ophead{text-align:center;max-width:740px;margin:0 auto}
.ophead .crumb{margin-bottom:18px}
.ophead .tags{justify-content:center}
.typebadge.op{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
.argline{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accL);margin:0 auto 20px;max-width:52ch;line-height:1.7}
.ophead h1.title{max-width:18ch;margin:0 auto 22px}
.ophead .stand{font-family:var(--disp);font-style:normal;font-variation-settings:'opsz' 48;font-size:clamp(20px,2.3vw,26px);line-height:1.32;color:var(--ink2);max-width:34ch;margin:0 auto 4px}
.ophead .byline{display:inline-flex;justify-content:center;border-bottom:0;margin-top:24px}
.ophead .byline .who{text-align:left}
.body.op{padding-top:30px}
.body.op>p.lede:first-of-type{font-size:23px;line-height:1.5}
.body.op h2{text-align:center;margin:48px 0 8px}
.body.op h2 .hn{text-align:center}
.body.op h2+p{margin-top:16px}
.pq.big{border-left:0;text-align:center;max-width:620px;margin:50px auto;padding:0}
.pq.big p{font-family:var(--disp);font-size:clamp(26px,3.6vw,38px);line-height:1.16;letter-spacing:-.018em}
.pq.big p em{color:var(--accL);font-style:italic}
.pq.big .at{color:var(--ink3)}
.signoff{margin-top:36px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:20px;display:flex;align-items:center;gap:10px}
.signoff .ln{height:1px;flex:1;background:var(--rule)}

/* ---------- HEADING HIGHLIGHT (marker behind section headings, matches homepage) ---------- */
.body h2 .hh{background-image:linear-gradient(to top,transparent 5%,var(--hl,transparent) 5%,var(--hl,transparent) 47%,transparent 47%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .05em}
body.subj-cr   .hh{--hl:#D9CCF0}
body.subj-ops  .hh{--hl:#F7CEE7}
body.subj-pm   .hh{--hl:#CDE0F6}
body.subj-legal .hh{--hl:#F8D5C9}
body.subj-tax  .hh{--hl:#F3E1BD}
body.subj-know .hh{--hl:#DDE9BE}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .artwrap{grid-template-columns:minmax(0,var(--measure));gap:0;padding:34px 24px 0}
  .rail{display:none}
}
@media(max-width:720px){
  .dispatch{grid-template-columns:1fr;gap:22px}
}
@media(max-width:560px){
  body{font-size:18px}
  .wrap{padding:0 18px}
  .artwrap{padding:26px 18px 0}
  .pgrid{grid-template-columns:1fr}
  .pgrid a{border-right:0}
  .pgrid a:nth-last-child(2){border-bottom:1px solid var(--rule)}
  .relitem{grid-template-columns:1fr;gap:12px}
  .relitem .rc{aspect-ratio:16/9;max-width:220px}
  .body .drop::first-letter{initial-letter:2}
}
/* ===== article-casefile.html ===== */
:root{
  --paper:#FFFFFF; --paper2:#F4F4F2; --ink:#16140F; --ink2:#4E4A42; --ink3:#696355;
  --rule:#E3DFD4; --rule2:#EDEAE1; --black:#16140F;
  --c-pm:#8FBFE8; --c-cr:#AFAEE6; --c-tax:#E8B43A; --c-legal:#EFA79C; --c-ops:#E79BD0; --c-know:#AFC94E;
  --disp:'Fraunces',Georgia,serif; --read:'Source Serif 4',Georgia,serif;
  --ui:'Geist',system-ui,sans-serif; --mono:'Space Mono',ui-monospace,monospace;
  --maxw:1240px; --measure:704px; --ease:cubic-bezier(.22,1,.36,1);
  /* --acc / --accL default to the cr (Accounting & Reporting) constellation; subj-* classes override */
  --acc:var(--c-cr); --accL:#6E6DC0;
}

/* ============================================================
   ARTICLE-PAGE GRID SYSTEM
   body.type-*   → layout flavor  (analysis | perspective | casefile | outlook)
   body.subj-*   → subject accent (pm | cr | tax | legal | ops | know)
   Fully styled here: type-analysis × subj-cr. Other combinations
   inherit the shared shell and override only what their flavor needs.
   ============================================================ */
body.subj-pm   {--acc:var(--c-pm);   --accL:#4E86C0}
body.subj-cr   {--acc:var(--c-cr);   --accL:#6E6DC0}
body.subj-tax  {--acc:var(--c-tax);  --accL:#B5861F}
body.subj-legal{--acc:var(--c-legal);--accL:#C86352}
body.subj-ops  {--acc:var(--c-ops);  --accL:#B45C9A}
body.subj-know {--acc:var(--c-know); --accL:#7C982C}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--read);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:400;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.08}
p{margin:0}
::selection{background:#FFCB52;color:#16140F}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* ---------- MASTHEAD (shared with homepage) ---------- */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper);position:relative;z-index:5}
.mastrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding:16px 0 12px}
.mastrow .edge{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);line-height:1.7}
.mastrow .edge.r{text-align:right}
.wordmark{text-align:center;font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 144;font-size:clamp(22px,4vw,40px);letter-spacing:-.02em;line-height:.95}
.wordmark .the{display:block;font-size:.34em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink2);margin-bottom:.3em;font-variation-settings:'opsz' 20}
.subrule{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0}
.navrow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.navrow a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);padding:3px 18px;transition:color .15s}
.navrow a+a{border-left:1px solid var(--rule)}
.navrow a:hover{color:var(--ink)}

/* ---------- READING PROGRESS BAR (top) ---------- */
.pbar{position:sticky;top:0;z-index:60;height:3px;background:transparent}
.pbar>span{display:block;height:100%;width:0;background:var(--accL);transition:width .1s linear}

/* ---------- ARTICLE SHELL ---------- */
.art{padding:0 0 10px}
.artwrap{display:grid;grid-template-columns:184px minmax(0,var(--measure));gap:56px;justify-content:center;padding:44px 32px 0}

/* reading-progress rail (desktop instrument) */
.rail{position:sticky;top:40px;align-self:start;height:max-content;padding-top:4px}
.rail .rlab{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.rail .rlab b{font-weight:700;color:var(--accL);font-size:11px}
.rail .rnav{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--rule)}
.rail .rnav a{position:relative;font-family:var(--ui);font-size:12px;line-height:1.3;color:var(--ink3);padding:7px 0 7px 16px;border-left:2px solid transparent;margin-left:-1px;transition:color .2s,border-color .2s}
.rail .rnav a:hover{color:var(--ink)}
.rail .rnav a.on{color:var(--ink);border-left-color:var(--accL)}
.rail .rmeta{margin-top:18px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--ink3);line-height:1.8;text-transform:uppercase}

.col{min-width:0}

/* ---------- ARTICLE HEADER ---------- */
.crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:20px}
.crumb a:hover{color:var(--ink)}
.crumb .sl{margin:0 8px;color:var(--rule)}
.tags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.typebadge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:5px 11px}
.subjchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--rule);padding:4px 11px 4px 9px;transition:border-color .2s}
.subjchip:hover{border-color:var(--ink3)}
.subjchip .k{width:9px;height:9px;background:var(--acc);display:inline-block}
h1.title{font-size:clamp(33px,5vw,54px);font-variation-settings:'opsz' 120;letter-spacing:-.022em;line-height:1.02;margin-bottom:22px;max-width:14ch}
.stand{font-family:var(--read);font-size:clamp(19px,2vw,22px);line-height:1.5;color:var(--ink2);font-style:italic;max-width:38ch;margin-bottom:28px}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.byline .av{width:34px;height:34px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:16px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.byline .who{display:flex;flex-direction:column;line-height:1.25}
.byline .who .nm{font-family:var(--ui);font-weight:500;font-size:14px;color:var(--ink)}
.byline .who .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.byline .dot{width:3px;height:3px;border-radius:50%;background:var(--ink3);margin:0 2px}
.byline .mi{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* ---------- HERO FIGURE ---------- */
.hero{margin:34px 0 10px;border:1px solid var(--rule);overflow:hidden;position:relative;background:var(--paper2)}
.hero img{width:100%;height:clamp(240px,42vw,420px);object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .45s var(--ease)}
.hero:hover img{filter:grayscale(0) contrast(1.02)}
.hero figcaption{position:absolute;left:0;bottom:0;background:rgba(255,255,255,.93);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:5px 10px;border-top:1px solid var(--rule);border-right:1px solid var(--rule)}

/* ---------- KEY POINTS BOX ---------- */
.keybox{margin:30px 0 8px;border:1px solid var(--ink);border-top:4px solid var(--accL);padding:22px 26px 20px}
.keybox .kh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.keybox ul{margin:0;padding:0;list-style:none;counter-reset:kp}
.keybox li{position:relative;padding:0 0 10px 30px;font-size:16.5px;line-height:1.5;color:var(--ink2)}
.keybox li:last-child{padding-bottom:0}
.keybox li::before{counter-increment:kp;content:counter(kp,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accL)}

/* ---------- BODY PROSE ---------- */
.body{padding-top:34px}
.body>p{margin:0 0 22px}
.body>p.lede:first-of-type{font-size:22px;line-height:1.5;color:var(--ink)}
.body .drop::first-letter{initial-letter:2.4;font-family:var(--disp);font-weight:500;color:var(--accL);margin-right:10px;font-variation-settings:'opsz' 144}
.body strong{font-weight:600;color:var(--ink)}
.body em{font-style:italic}
.body h2{font-size:clamp(25px,3vw,33px);font-variation-settings:'opsz' 72;margin:46px 0 6px;letter-spacing:-.018em;scroll-margin-top:70px;line-height:1.1}
.body h2 .hn{display:block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--accL);margin-bottom:12px;letter-spacing:.2em}
.body h2+p{margin-top:16px}
.body h3{font-family:var(--ui);font-weight:500;font-size:18px;letter-spacing:0;margin:30px 0 10px;color:var(--ink);display:flex;align-items:baseline;gap:10px}
.body h3 .en{font-family:var(--mono);font-size:12px;color:var(--accL);font-weight:700}
.body ul.ed{margin:0 0 22px;padding:0;list-style:none}
.body ul.ed li{position:relative;padding:0 0 9px 22px;line-height:1.55}
.body ul.ed li::before{content:"";position:absolute;left:2px;top:12px;width:6px;height:6px;background:var(--acc);border:1px solid var(--accL)}
.body .secrule{height:1px;background:var(--rule);margin:40px 0}

/* pull quote */
.pq{margin:40px 0;padding:6px 0 6px 28px;border-left:3px solid var(--accL)}
.pq p{font-family:var(--disp);font-weight:400;font-size:clamp(23px,2.8vw,31px);line-height:1.22;letter-spacing:-.015em;color:var(--ink)}
.pq p em{font-style:italic;color:var(--ink2)}
.pq .at{display:block;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* editorial comparison table — open top/bottom rules, no outer box, hairline rows */
.ctable{margin:34px 0;overflow-x:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ctable table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.ctable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:0 0 12px;border:0}
.ctable th,.ctable td{text-align:left;padding:14px 26px 14px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
.ctable th:last-child,.ctable td:last-child{padding-right:0}
.ctable thead th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);background:transparent;font-weight:700;vertical-align:bottom;border-bottom:1px solid var(--ink);padding-top:13px;padding-bottom:11px}
.ctable tbody th{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink);width:28%;letter-spacing:-.005em}
.ctable td{color:var(--ink2);line-height:1.46}
.ctable td:last-child{color:var(--ink)}
.ctable tbody tr:last-child th,.ctable tbody tr:last-child td{border-bottom:0}

/* ---------- PROVIDER CONTEXT STRIP ---------- */
.pctx{margin:52px 0 0;border-top:2px solid var(--ink);padding-top:22px}
.pctx .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.pctx .ph .t{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.pctx .ph a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--rule);padding-bottom:2px}
.pctx .ph a:hover{color:var(--ink);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--rule)}
.pgrid a{padding:15px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .15s}
.pgrid a:nth-child(2n){border-right:0}
.pgrid a:nth-last-child(-n+2){border-bottom:0}
.pgrid a:hover{background:var(--paper2)}
.pgrid .pn{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:4px}
.pgrid .pn .k{width:8px;height:8px;background:var(--acc);display:inline-block;flex:0 0 auto}
.pgrid .pd{display:block;font-size:13.5px;color:var(--ink2);line-height:1.4}
.pgrid .pg{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:7px}

/* ---------- AUTHOR CARD ---------- */
.author{display:flex;gap:18px;align-items:flex-start;margin:44px 0 0;padding:24px;border:1px solid var(--rule);background:var(--paper2)}
.author .av{width:46px;height:46px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:22px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.author .nm{font-family:var(--ui);font-weight:500;font-size:16px;color:var(--ink)}
.author .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:3px 0 10px}
.author .bio{font-size:15px;line-height:1.5;color:var(--ink2)}

/* ---------- CTA BAND ---------- */
.cta{margin:46px 0 0;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:34px 32px}
.cta .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:12px}
.cta h3{font-size:clamp(24px,3vw,32px);color:var(--paper);letter-spacing:-.018em;line-height:1.1;margin-bottom:12px;font-variation-settings:'opsz' 72}
.cta p{font-size:16px;line-height:1.55;color:#C9C5BC;max-width:54ch;margin-bottom:22px}
.cta a.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--acc);padding:13px 22px;transition:transform .2s var(--ease)}
.cta a.btn:hover{transform:translateX(3px)}

/* ---------- RELATED ---------- */
.related{margin:52px 0 0;border-top:1px solid var(--ink);padding-top:22px}
.related .rh{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.relitem{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.relitem .rc{border:1px solid var(--rule);overflow:hidden;aspect-ratio:16/10;background:var(--paper2)}
.relitem .rc img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .4s var(--ease)}
.relitem:hover .rc img{filter:grayscale(0) contrast(1.02)}
.relitem .cat{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:7px;margin-bottom:8px}
.relitem .cat .k{width:8px;height:8px;background:var(--acc);display:inline-block}
.relitem h4{font-family:var(--disp);font-size:21px;line-height:1.12;letter-spacing:-.015em;margin-bottom:8px}
.relitem:hover h4{color:var(--accL)}
.relitem .rd{font-size:14.5px;color:var(--ink2);line-height:1.45}

/* ---------- DISPATCH (shared) ---------- */
.sec{padding:60px 0}
.dispatch{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:40px 0}
.dispatch .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px}
.dispatch h3{font-size:clamp(25px,3vw,34px);line-height:1.08;letter-spacing:-.018em;margin-bottom:14px;font-variation-settings:'opsz' 72}
.dispatch h3 em{font-style:italic}
.dispatch p{font-size:16px;color:var(--ink2);line-height:1.55;max-width:46ch}
.dform{display:flex;flex-wrap:wrap;gap:10px}
.dform input{flex:1;min-width:210px;font-family:var(--ui);font-size:15px;padding:13px 15px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.dform input:focus{outline:2px solid var(--accL);outline-offset:-1px}
.dform button{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:13px 22px;cursor:pointer;transition:background .2s}
.dform button:hover{background:var(--ink2)}
.dmsg{flex-basis:100%;font-family:var(--mono);font-size:11px;color:var(--accL);min-height:1px}
.dfine{flex-basis:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}

/* ---------- COLOPHON (shared) ---------- */
.colophon{border-top:2px solid var(--ink);padding:34px 0 40px}
.coltop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.colophon .cm{font-family:var(--disp);font-size:24px;letter-spacing:-.02em;line-height:1}
.colophon .cm .the{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.colophon nav{display:flex;flex-wrap:wrap;gap:0}
.colophon nav a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:2px 14px;border-left:1px solid var(--rule)}
.colophon nav a:first-child{padding-left:0;border-left:0}
.colophon nav a:hover{color:var(--ink)}
.colbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:16px}

/* ============================================================
   TYPE FLAVOR: CASE FILE (dossier)
   Classification bar, Profile/Structure/Challenge/Outcome
   metadata block, outcome stat band, forensic § section marks.
   Clinical, mono-heavy, anonymised.
   ============================================================ */
body.type-casefile{--measure:724px}
.dossbar{display:grid;grid-template-columns:auto 1fr auto;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px}
.dossbar span{padding:11px 16px;border-right:1px solid rgba(255,255,255,.16);white-space:nowrap}
.dossbar span:nth-child(2){text-align:center;color:#C9C5BC;letter-spacing:.2em}
.dossbar span:last-child{border-right:0;color:var(--acc)}
.cf-title{font-size:clamp(30px,4.3vw,46px);font-variation-settings:'opsz' 110;letter-spacing:-.02em;line-height:1.04;margin-bottom:18px;max-width:17ch}
.cf-stand{font-family:var(--read);font-style:italic;font-size:clamp(18px,2vw,21px);line-height:1.5;color:var(--ink2);max-width:46ch;margin-bottom:22px}
.dossier{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);margin:4px 0 0}
.dossier .df{padding:15px 17px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.dossier .df:nth-child(2n){border-right:0}
.dossier .df:nth-last-child(-n+2){border-bottom:0}
.dossier .dl{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accL);margin-bottom:7px}
.dossier .dv{display:block;font-family:var(--read);font-size:15.5px;color:var(--ink);line-height:1.42}
.statband{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);border-top:4px solid var(--accL);margin:34px 0 6px;background:var(--paper2)}
.statband .st{padding:22px 14px;border-right:1px solid var(--rule);text-align:center}
.statband .st:last-child{border-right:0}
.statband .sn{display:block;font-family:var(--disp);font-size:clamp(19px,2.3vw,26px);letter-spacing:-.012em;color:var(--ink);line-height:1.02;font-variation-settings:'opsz' 48}
.statband .sl{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);margin-top:10px;line-height:1.45}
.casenotes{margin-top:38px;border-top:2px solid var(--ink);padding-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);line-height:1.9}
.casenotes b{color:var(--ink);font-weight:700}

/* ---------- HEADING HIGHLIGHT (marker behind section headings, matches homepage) ---------- */
.body h2 .hh{background-image:linear-gradient(to top,transparent 5%,var(--hl,transparent) 5%,var(--hl,transparent) 47%,transparent 47%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .05em}
body.subj-cr   .hh{--hl:#D9CCF0}
body.subj-ops  .hh{--hl:#F7CEE7}
body.subj-pm   .hh{--hl:#CDE0F6}
body.subj-legal .hh{--hl:#F8D5C9}
body.subj-tax  .hh{--hl:#F3E1BD}
body.subj-know .hh{--hl:#DDE9BE}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .artwrap{grid-template-columns:minmax(0,var(--measure));gap:0;padding:34px 24px 0}
  .rail{display:none}
}
@media(max-width:720px){
  .dispatch{grid-template-columns:1fr;gap:22px}
}
@media(max-width:640px){
  .statband{grid-template-columns:1fr 1fr}
  .statband .st:nth-child(2n){border-right:0}
  .statband .st:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .dossbar{grid-template-columns:1fr;text-align:left}
  .dossbar span{border-right:0;border-bottom:1px solid rgba(255,255,255,.16);text-align:left!important}
  .dossbar span:last-child{border-bottom:0}
}
@media(max-width:560px){
  body{font-size:18px}
  .wrap{padding:0 18px}
  .artwrap{padding:26px 18px 0}
  .pgrid{grid-template-columns:1fr}
  .pgrid a{border-right:0}
  .pgrid a:nth-last-child(2){border-bottom:1px solid var(--rule)}
  .dossier{grid-template-columns:1fr}
  .dossier .df{border-right:0}
  .dossier .df:nth-last-child(2){border-bottom:1px solid var(--rule)}
  .relitem{grid-template-columns:1fr;gap:12px}
  .relitem .rc{aspect-ratio:16/9;max-width:220px}
  .body .drop::first-letter{initial-letter:2}
}
/* ===== article-outlook.html ===== */
:root{
  --paper:#FFFFFF; --paper2:#F4F4F2; --ink:#16140F; --ink2:#4E4A42; --ink3:#696355;
  --rule:#E3DFD4; --rule2:#EDEAE1; --black:#16140F;
  --c-pm:#8FBFE8; --c-cr:#AFAEE6; --c-tax:#E8B43A; --c-legal:#EFA79C; --c-ops:#E79BD0; --c-know:#AFC94E;
  --disp:'Fraunces',Georgia,serif; --read:'Source Serif 4',Georgia,serif;
  --ui:'Geist',system-ui,sans-serif; --mono:'Space Mono',ui-monospace,monospace;
  --maxw:1240px; --measure:704px; --ease:cubic-bezier(.22,1,.36,1);
  /* --acc / --accL default to the cr (Accounting & Reporting) constellation; subj-* classes override */
  --acc:var(--c-cr); --accL:#6E6DC0;
}

/* ============================================================
   ARTICLE-PAGE GRID SYSTEM
   body.type-*   → layout flavor  (analysis | perspective | casefile | outlook)
   body.subj-*   → subject accent (pm | cr | tax | legal | ops | know)
   Fully styled here: type-analysis × subj-cr. Other combinations
   inherit the shared shell and override only what their flavor needs.
   ============================================================ */
body.subj-pm   {--acc:var(--c-pm);   --accL:#4E86C0}
body.subj-cr   {--acc:var(--c-cr);   --accL:#6E6DC0}
body.subj-tax  {--acc:var(--c-tax);  --accL:#B5861F}
body.subj-legal{--acc:var(--c-legal);--accL:#C86352}
body.subj-ops  {--acc:var(--c-ops);  --accL:#B45C9A}
body.subj-know {--acc:var(--c-know); --accL:#7C982C}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--read);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:400;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.08}
p{margin:0}
::selection{background:#FFCB52;color:#16140F}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* ---------- MASTHEAD (shared with homepage) ---------- */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper);position:relative;z-index:5}
.mastrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding:16px 0 12px}
.mastrow .edge{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);line-height:1.7}
.mastrow .edge.r{text-align:right}
.wordmark{text-align:center;font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 144;font-size:clamp(22px,4vw,40px);letter-spacing:-.02em;line-height:.95}
.wordmark .the{display:block;font-size:.34em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink2);margin-bottom:.3em;font-variation-settings:'opsz' 20}
.subrule{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0}
.navrow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.navrow a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);padding:3px 18px;transition:color .15s}
.navrow a+a{border-left:1px solid var(--rule)}
.navrow a:hover{color:var(--ink)}

/* ---------- READING PROGRESS BAR (top) ---------- */
.pbar{position:sticky;top:0;z-index:60;height:3px;background:transparent}
.pbar>span{display:block;height:100%;width:0;background:var(--accL);transition:width .1s linear}

/* ---------- ARTICLE SHELL ---------- */
.art{padding:0 0 10px}
.artwrap{display:grid;grid-template-columns:184px minmax(0,var(--measure));gap:56px;justify-content:center;padding:44px 32px 0}

/* reading-progress rail (desktop instrument) */
.rail{position:sticky;top:40px;align-self:start;height:max-content;padding-top:4px}
.rail .rlab{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.rail .rlab b{font-weight:700;color:var(--accL);font-size:11px}
.rail .rnav{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--rule)}
.rail .rnav a{position:relative;font-family:var(--ui);font-size:12px;line-height:1.3;color:var(--ink3);padding:7px 0 7px 16px;border-left:2px solid transparent;margin-left:-1px;transition:color .2s,border-color .2s}
.rail .rnav a:hover{color:var(--ink)}
.rail .rnav a.on{color:var(--ink);border-left-color:var(--accL)}
.rail .rmeta{margin-top:18px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--ink3);line-height:1.8;text-transform:uppercase}

.col{min-width:0}

/* ---------- ARTICLE HEADER ---------- */
.crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:20px}
.crumb a:hover{color:var(--ink)}
.crumb .sl{margin:0 8px;color:var(--rule)}
.tags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.typebadge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:5px 11px}
.subjchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--rule);padding:4px 11px 4px 9px;transition:border-color .2s}
.subjchip:hover{border-color:var(--ink3)}
.subjchip .k{width:9px;height:9px;background:var(--acc);display:inline-block}
h1.title{font-size:clamp(33px,5vw,54px);font-variation-settings:'opsz' 120;letter-spacing:-.022em;line-height:1.02;margin-bottom:22px;max-width:14ch}
.stand{font-family:var(--read);font-size:clamp(19px,2vw,22px);line-height:1.5;color:var(--ink2);font-style:italic;max-width:38ch;margin-bottom:28px}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.byline .av{width:34px;height:34px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:16px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.byline .who{display:flex;flex-direction:column;line-height:1.25}
.byline .who .nm{font-family:var(--ui);font-weight:500;font-size:14px;color:var(--ink)}
.byline .who .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.byline .dot{width:3px;height:3px;border-radius:50%;background:var(--ink3);margin:0 2px}
.byline .mi{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* ---------- HERO FIGURE ---------- */
.hero{margin:34px 0 10px;border:1px solid var(--rule);overflow:hidden;position:relative;background:var(--paper2)}
.hero img{width:100%;height:clamp(240px,42vw,420px);object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .45s var(--ease)}
.hero:hover img{filter:grayscale(0) contrast(1.02)}
.hero figcaption{position:absolute;left:0;bottom:0;background:rgba(255,255,255,.93);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:5px 10px;border-top:1px solid var(--rule);border-right:1px solid var(--rule)}

/* ---------- KEY POINTS BOX ---------- */
.keybox{margin:30px 0 8px;border:1px solid var(--ink);border-top:4px solid var(--accL);padding:22px 26px 20px}
.keybox .kh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.keybox ul{margin:0;padding:0;list-style:none;counter-reset:kp}
.keybox li{position:relative;padding:0 0 10px 30px;font-size:16.5px;line-height:1.5;color:var(--ink2)}
.keybox li:last-child{padding-bottom:0}
.keybox li::before{counter-increment:kp;content:counter(kp,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accL)}

/* ---------- BODY PROSE ---------- */
.body{padding-top:34px}
.body>p{margin:0 0 22px}
.body>p.lede:first-of-type{font-size:22px;line-height:1.5;color:var(--ink)}
.body .drop::first-letter{initial-letter:2.4;font-family:var(--disp);font-weight:500;color:var(--accL);margin-right:10px;font-variation-settings:'opsz' 144}
.body strong{font-weight:600;color:var(--ink)}
.body em{font-style:italic}
.body h2{font-size:clamp(25px,3vw,33px);font-variation-settings:'opsz' 72;margin:46px 0 6px;letter-spacing:-.018em;scroll-margin-top:70px;line-height:1.1}
.body h2 .hn{display:block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--accL);margin-bottom:12px;letter-spacing:.2em}
.body h2+p{margin-top:16px}
.body h3{font-family:var(--ui);font-weight:500;font-size:18px;letter-spacing:0;margin:30px 0 10px;color:var(--ink);display:flex;align-items:baseline;gap:10px}
.body h3 .en{font-family:var(--mono);font-size:12px;color:var(--accL);font-weight:700}
.body ul.ed{margin:0 0 22px;padding:0;list-style:none}
.body ul.ed li{position:relative;padding:0 0 9px 22px;line-height:1.55}
.body ul.ed li::before{content:"";position:absolute;left:2px;top:12px;width:6px;height:6px;background:var(--acc);border:1px solid var(--accL)}
.body .secrule{height:1px;background:var(--rule);margin:40px 0}

/* pull quote */
.pq{margin:40px 0;padding:6px 0 6px 28px;border-left:3px solid var(--accL)}
.pq p{font-family:var(--disp);font-weight:400;font-size:clamp(23px,2.8vw,31px);line-height:1.22;letter-spacing:-.015em;color:var(--ink)}
.pq p em{font-style:italic;color:var(--ink2)}
.pq .at{display:block;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* editorial comparison table — open top/bottom rules, no outer box, hairline rows */
.ctable{margin:34px 0;overflow-x:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ctable table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.ctable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:0 0 12px;border:0}
.ctable th,.ctable td{text-align:left;padding:14px 26px 14px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
.ctable th:last-child,.ctable td:last-child{padding-right:0}
.ctable thead th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);background:transparent;font-weight:700;vertical-align:bottom;border-bottom:1px solid var(--ink);padding-top:13px;padding-bottom:11px}
.ctable tbody th{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink);width:28%;letter-spacing:-.005em}
.ctable td{color:var(--ink2);line-height:1.46}
.ctable td:last-child{color:var(--ink)}
.ctable tbody tr:last-child th,.ctable tbody tr:last-child td{border-bottom:0}

/* ---------- PROVIDER CONTEXT STRIP ---------- */
.pctx{margin:52px 0 0;border-top:2px solid var(--ink);padding-top:22px}
.pctx .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.pctx .ph .t{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.pctx .ph a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--rule);padding-bottom:2px}
.pctx .ph a:hover{color:var(--ink);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--rule)}
.pgrid a{padding:15px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .15s}
.pgrid a:nth-child(2n){border-right:0}
.pgrid a:nth-last-child(-n+2){border-bottom:0}
.pgrid a:hover{background:var(--paper2)}
.pgrid .pn{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:4px}
.pgrid .pn .k{width:8px;height:8px;background:var(--acc);display:inline-block;flex:0 0 auto}
.pgrid .pd{display:block;font-size:13.5px;color:var(--ink2);line-height:1.4}
.pgrid .pg{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:7px}

/* ---------- AUTHOR CARD ---------- */
.author{display:flex;gap:18px;align-items:flex-start;margin:44px 0 0;padding:24px;border:1px solid var(--rule);background:var(--paper2)}
.author .av{width:46px;height:46px;border-radius:50%;background:var(--acc);color:var(--ink);font-family:var(--disp);font-size:22px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.author .nm{font-family:var(--ui);font-weight:500;font-size:16px;color:var(--ink)}
.author .role{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:3px 0 10px}
.author .bio{font-size:15px;line-height:1.5;color:var(--ink2)}

/* ---------- CTA BAND ---------- */
.cta{margin:46px 0 0;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:34px 32px}
.cta .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:12px}
.cta h3{font-size:clamp(24px,3vw,32px);color:var(--paper);letter-spacing:-.018em;line-height:1.1;margin-bottom:12px;font-variation-settings:'opsz' 72}
.cta p{font-size:16px;line-height:1.55;color:#C9C5BC;max-width:54ch;margin-bottom:22px}
.cta a.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--acc);padding:13px 22px;transition:transform .2s var(--ease)}
.cta a.btn:hover{transform:translateX(3px)}

/* ---------- RELATED ---------- */
.related{margin:52px 0 0;border-top:1px solid var(--ink);padding-top:22px}
.related .rh{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.relitem{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.relitem .rc{border:1px solid var(--rule);overflow:hidden;aspect-ratio:16/10;background:var(--paper2)}
.relitem .rc img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .4s var(--ease)}
.relitem:hover .rc img{filter:grayscale(0) contrast(1.02)}
.relitem .cat{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:7px;margin-bottom:8px}
.relitem .cat .k{width:8px;height:8px;background:var(--acc);display:inline-block}
.relitem h4{font-family:var(--disp);font-size:21px;line-height:1.12;letter-spacing:-.015em;margin-bottom:8px}
.relitem:hover h4{color:var(--accL)}
.relitem .rd{font-size:14.5px;color:var(--ink2);line-height:1.45}

/* ---------- DISPATCH (shared) ---------- */
.sec{padding:60px 0}
.dispatch{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:40px 0}
.dispatch .lab{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px}
.dispatch h3{font-size:clamp(25px,3vw,34px);line-height:1.08;letter-spacing:-.018em;margin-bottom:14px;font-variation-settings:'opsz' 72}
.dispatch h3 em{font-style:italic}
.dispatch p{font-size:16px;color:var(--ink2);line-height:1.55;max-width:46ch}
.dform{display:flex;flex-wrap:wrap;gap:10px}
.dform input{flex:1;min-width:210px;font-family:var(--ui);font-size:15px;padding:13px 15px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.dform input:focus{outline:2px solid var(--accL);outline-offset:-1px}
.dform button{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:13px 22px;cursor:pointer;transition:background .2s}
.dform button:hover{background:var(--ink2)}
.dmsg{flex-basis:100%;font-family:var(--mono);font-size:11px;color:var(--accL);min-height:1px}
.dfine{flex-basis:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}

/* ---------- COLOPHON (shared) ---------- */
.colophon{border-top:2px solid var(--ink);padding:34px 0 40px}
.coltop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.colophon .cm{font-family:var(--disp);font-size:24px;letter-spacing:-.02em;line-height:1}
.colophon .cm .the{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.colophon nav{display:flex;flex-wrap:wrap;gap:0}
.colophon nav a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:2px 14px;border-left:1px solid var(--rule)}
.colophon nav a:first-child{padding-left:0;border-left:0}
.colophon nav a:hover{color:var(--ink)}
.colbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:16px}

/* ============================================================
   TYPE FLAVOR: OUTLOOK (forecast)
   Horizon header with a large year marker, a timeline strip in
   place of a photo hero, time-horizon sections, a signals
   watch-list, and a "what to build for it now" action box.
   ============================================================ */
body.type-outlook{--measure:724px}
.horizon{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink);padding-bottom:16px;margin:4px 0 22px;flex-wrap:wrap}
.horizon .hzl{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accL);display:block;margin-bottom:10px}
.horizon .hzy{font-family:var(--disp);font-size:clamp(42px,8vw,86px);line-height:.86;letter-spacing:-.03em;font-variation-settings:'opsz' 144;font-weight:500}
.horizon .hzr{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);text-align:right;line-height:1.75}
.typebadge.out{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
/* timeline strip (replaces the hero image) */
.tline{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);background:var(--paper2);margin:28px 0 8px}
.tphase{padding:18px 16px;border-right:1px solid var(--rule);position:relative}
.tphase:last-child{border-right:0}
.tphase::before{content:"";position:absolute;top:0;left:0;height:3px;width:100%;background:transparent}
.tphase .yr{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.tphase .ph{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-top:5px}
.tphase .pd{font-size:13px;color:var(--ink2);line-height:1.4;margin-top:9px}
.tphase.now{background:color-mix(in srgb,var(--acc) 26%,var(--paper))}
.tphase.now::before{background:var(--accL)}
.tphase.now .ph{color:var(--accL)}
/* signals watch-list */
.watch{margin:38px 0;border:1px solid var(--ink);border-left:4px solid var(--accL);padding:22px 26px}
.watch .wh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:15px;color:var(--ink)}
.watch ul{list-style:none;margin:0;padding:0}
.watch li{position:relative;padding:0 0 11px 26px;font-size:16px;color:var(--ink2);line-height:1.5}
.watch li:last-child{padding-bottom:0}
.watch li::before{content:"\25C6";position:absolute;left:0;top:1px;color:var(--accL);font-size:10px}
.watch li b{color:var(--ink);font-weight:600}
/* build-now action box */
.buildnow{margin:38px 0 0;background:var(--ink);color:var(--paper);padding:28px 30px;border-top:4px solid var(--accL)}
.buildnow .bh{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);margin-bottom:12px}
.buildnow h3{color:var(--paper);font-size:clamp(21px,2.5vw,27px);margin-bottom:12px;font-variation-settings:'opsz' 48;letter-spacing:-.015em;line-height:1.12}
.buildnow p{color:#C9C5BC;font-size:16px;line-height:1.58;max-width:58ch}
.buildnow p+p{margin-top:12px}

/* ---------- HEADING HIGHLIGHT (marker behind section headings, matches homepage) ---------- */
.body h2 .hh{background-image:linear-gradient(to top,transparent 5%,var(--hl,transparent) 5%,var(--hl,transparent) 47%,transparent 47%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .05em}
body.subj-cr   .hh{--hl:#D9CCF0}
body.subj-ops  .hh{--hl:#F7CEE7}
body.subj-pm   .hh{--hl:#CDE0F6}
body.subj-legal .hh{--hl:#F8D5C9}
body.subj-tax  .hh{--hl:#F3E1BD}
body.subj-know .hh{--hl:#DDE9BE}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .artwrap{grid-template-columns:minmax(0,var(--measure));gap:0;padding:34px 24px 0}
  .rail{display:none}
}
@media(max-width:720px){
  .dispatch{grid-template-columns:1fr;gap:22px}
}
@media(max-width:640px){
  .tline{grid-template-columns:1fr 1fr}
  .tphase:nth-child(2n){border-right:0}
  .tphase:nth-child(-n+2){border-bottom:1px solid var(--rule)}
}
@media(max-width:560px){
  body{font-size:18px}
  .wrap{padding:0 18px}
  .artwrap{padding:26px 18px 0}
  .pgrid{grid-template-columns:1fr}
  .pgrid a{border-right:0}
  .pgrid a:nth-last-child(2){border-bottom:1px solid var(--rule)}
  .relitem{grid-template-columns:1fr;gap:12px}
  .relitem .rc{aspect-ratio:16/9;max-width:220px}
  .body .drop::first-letter{initial-letter:2}
  .horizon .hzr{text-align:left}
}

/* footer note bar (shared) */
.note{background:var(--paper2);border-top:1px solid var(--rule)}
.note .wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.note .in{padding:16px 0;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media(max-width:640px){.note .wrap{padding:0 16px}}

/* ============ single-column article (TOC rail removed) ============ */
.artwrap{grid-template-columns:minmax(0,var(--measure,760px));gap:0;justify-content:center}
.rail{display:none}

/* ============ pull quote / blockquote ============ */
.body blockquote{margin:30px 0;padding:4px 0 4px 28px;border-left:3px solid var(--accL);font-family:var(--disp);font-weight:450;font-style:normal;font-size:clamp(21px,2.5vw,27px);line-height:1.34;color:var(--ink);letter-spacing:-.01em}
.body blockquote p{margin:0 0 12px}
.body blockquote p:last-child{margin:0}
.body blockquote cite,.body blockquote footer{display:block;margin-top:12px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);font-style:normal}

/* ============ related card: collapse when a post has no image ============ */
.relitem:not(:has(.rc)){grid-template-columns:1fr}
.relitem.noimg{grid-template-columns:1fr}


/* ============================================================
   EDITORIAL CONTENT COMPONENTS  (FOS design contract)
   Body of the imported "pc-*" articles. All crude inline styling is
   stripped server-side (inc/article-content.php); these rules own the
   look in the FOS vocabulary — paper #FFF, ink, thin rules, Space Mono
   eyebrows with an accent "key" square, Fraunces display + the pastel
   highlighter swipe. No tinted boxes / coloured left-bars.
   --hl = subject highlighter (set on body below); --accL = subject accent.
   ============================================================ */

/* subject highlighter promoted to the body so callouts + keys can use it */
body.subj-cr{--hl:#D9CCF0}
body.subj-ops{--hl:#F7CEE7}
body.subj-pm{--hl:#CDE0F6}
body.subj-legal{--hl:#F8D5C9}
body.subj-tax{--hl:#F3E1BD}
body.subj-know{--hl:#DDE9BE}

/* section wrappers + paragraphs */
.body .pc-section{margin:0}
.body p.pc-p{margin:0 0 20px}

/* H3 / H4 subheads: refined, no marker (the swipe stays on H2) */
.body h3{font-family:var(--ui);font-weight:600;font-size:17px;letter-spacing:.004em;line-height:1.35;color:var(--ink);margin:38px 0 12px;display:block}
.body h3::before{content:"";display:block;width:26px;height:2px;background:var(--accL);margin:0 0 13px}
.body h3 .en{font-family:var(--mono);font-size:12px;color:var(--accL);font-weight:700;margin-right:10px}
.body h4{font-family:var(--ui);font-weight:700;font-size:14px;letter-spacing:.012em;line-height:1.4;color:var(--ink);margin:28px 0 8px}

/* bullet lists (editorial key-square bullet) */
.body ul.pc-ul{margin:0 0 22px;padding:0 0 0 2px;list-style:none}
.body ul.pc-ul li{position:relative;padding:0 0 10px 22px;line-height:1.6}
.body ul.pc-ul li::before{content:"";position:absolute;left:2px;top:11px;width:7px;height:7px;background:var(--hl);border:1px solid var(--ink3)}

/* shared callout eyebrow (mono + accent key square) — matches .ahead .eyebrow */
.body .answer-capsule-box::before,
.body ul.pc-checklist::before{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);display:flex;align-items:center;gap:9px}

/* ---- answer capsule (hero Q&A): ink top-rule + "In brief" eyebrow + highlighter on the Fraunces question ---- */
.body .answer-capsule-box{background:none;border:0;border-top:2px solid var(--ink);border-radius:0;padding:18px 0 6px;margin:16px 0 40px}
.body .answer-capsule-box::before{content:"In brief";margin-bottom:16px}
.body .answer-capsule-box h2.answer-capsule-q{font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 72;font-size:clamp(23px,3.1vw,31px);line-height:1.12;letter-spacing:-.02em;color:var(--ink);margin:0 0 15px;padding:0;display:block;scroll-margin-top:0}
.body .answer-capsule-box h2.answer-capsule-q::before{content:none}
.body .answer-capsule-box h2.answer-capsule-q .hh{padding:0 .04em}
.body .answer-capsule-box p{font-family:var(--read);font-size:1.05em;line-height:1.6;color:var(--ink);margin:0}
.body .answer-capsule-box p strong{font-weight:400;color:inherit}

/* ---- caution / note: a real editorial CAUTION — reserved warning ochre, drawn
   triangle, Space Mono tag + Fraunces statement, warm-tint plate (sharp corners).
   Warning ochre #B5611A is orthogonal to the six subject accents. ---- */
.body .pc-caution{background:#FAF4EA;border:1px solid #ECE3D1;border-left:3px solid #B5611A;border-radius:0;padding:20px 26px 22px;margin:24px 0 38px;color:var(--ink);box-shadow:none}
.body .pc-caution .pc-caution-label{margin:0 0 13px;padding:0;display:block;font-family:inherit}
.body .pc-caution .pc-caution-tag{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8A4412;margin:0 0 11px}
.body .pc-caution .pc-caution-tag::before{content:"";width:15px;height:15px;flex:0 0 auto;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 L22.5 21 L1.5 21 Z' fill='%23B5611A'/%3E%3Crect x='11' y='9' width='2' height='7' rx='1' fill='%23fff'/%3E%3Crect x='11' y='18' width='2' height='2' rx='1' fill='%23fff'/%3E%3C/svg%3E")}
.body .pc-caution .pc-caution-stmt{display:block;font-family:var(--disp);font-weight:500;font-size:19px;line-height:1.34;letter-spacing:-.012em;color:var(--ink)}
.body .pc-caution p{font-family:var(--read);font-size:1em;line-height:1.62;margin:0 0 12px;color:var(--ink)}
.body .pc-caution p.pc-caution-label{margin:0 0 13px}
.body .pc-caution p:last-child{margin-bottom:0}

/* ---- checklist: ink top-rule + "checklist" eyebrow, accent ticks ---- */
.body ul.pc-checklist{background:none;border:0;border-top:2px solid var(--ink);border-radius:0;padding:18px 0 4px;margin:20px 0 36px;list-style:none;font-family:var(--read);font-size:1em;line-height:1.6;color:var(--ink)}
.body ul.pc-checklist::before{content:"Checklist";margin-bottom:15px}
.body ul.pc-checklist li{position:relative;list-style:none;margin:0 0 12px;padding:0 0 0 28px;text-indent:0}
.body ul.pc-checklist li:last-child{margin-bottom:0}
.body ul.pc-checklist li span{position:absolute;left:0;top:1px;width:auto;color:var(--accL);font-weight:700}

/* ---- diagnostic branch: light hairline, bold sans condition ---- */
.body .pc-diagnostic{background:none;border:0;border-top:1px solid var(--rule);border-radius:0;padding:15px 0 2px;margin:14px 0 22px;font-family:var(--read);font-size:1em;line-height:1.6;color:var(--ink)}
.body .pc-diagnostic p{margin:0 0 7px}
.body .pc-diagnostic p:first-child{font-family:var(--ui);font-weight:600;color:var(--ink)}
.body .pc-diagnostic p:last-child{margin-bottom:0}

/* ---- tables: editorial, no boxes (mono labels, ink rule, hairline rows) ---- */
.body .pc-table-wrap{overflow-x:auto;margin:26px 0 34px}
.body table{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:15px;line-height:1.5;color:var(--ink)}
.body table th{text-align:left;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);background:none;padding:0 20px 11px 0;border:0;border-bottom:2px solid var(--ink);vertical-align:bottom}
.body table td{background:none;padding:14px 20px 14px 0;border:0;border-bottom:1px solid var(--rule);color:var(--ink);vertical-align:top}
.body table th:last-child,.body table td:last-child{padding-right:0}
.body table tbody tr:last-child td{border-bottom:0}

@media(max-width:560px){
  .body table{font-size:13.5px}
  .body table th,.body table td{padding-right:12px}
}

/* ============================================================
   CONNECTOR (pc-*) RECONCILIATION — make house-style output render
   on-brand with no per-article edits. Appended so it wins on source order.
   ============================================================ */

/* comparison tables → the approved open-table component (2px ink frame,
   muted Space Mono headers, 1px header rule, Geist-600 first column, hairline rows) */
.body .pc-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:34px 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.body table.pc-table{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:15px;min-width:560px}
.body table.pc-table thead th{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);background:transparent;vertical-align:bottom;border:0;border-bottom:1px solid var(--ink);padding:13px 26px 11px 0}
.body table.pc-table th,.body table.pc-table td{text-align:left;padding:14px 26px 14px 0;vertical-align:top;border:0;border-bottom:1px solid var(--rule);color:var(--ink)}
.body table.pc-table th:last-child,.body table.pc-table td:last-child{padding-right:0}
.body table.pc-table tbody td:first-child,.body table.pc-table tbody th:first-child{font-weight:600;color:var(--ink);letter-spacing:-.005em}
.body table.pc-table tbody tr:last-child td,.body table.pc-table tbody tr:last-child th{border-bottom:0}

/* instructional (body) figures → compact inset, Space Mono caption; the hero
   figure is outside .body and keeps its full reading-column width */
.body figure{margin:30px 0 34px;max-width:360px}
.body figure img{display:block;width:100%;height:auto}
.body figure figcaption{margin-top:10px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;line-height:1.55;text-transform:none;color:var(--ink3)}
@media(max-width:560px){.body figure{max-width:100%}}

/* H3 enumeration: show the per-section number inline (drop the accent bar when numbered) */
.body .pc-section h3{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.body .pc-section h3::before{content:none;display:none}
.body .pc-section h3 .en{flex:0 0 auto;margin-right:0}

/* byline: stack Published / Updated / read-time BELOW the credential line */
.byline{align-items:flex-start}
.byline .av{margin-top:1px}
.byline .who .meta{display:flex;flex-wrap:wrap;align-items:center;margin-top:6px}

/* newsletter honeypot — hidden from humans, visible to bots */
.dhp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
