.article-toc{
  max-width:660px;
  margin:-10px auto 46px;
  padding:22px 0 24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.article-toc-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.article-toc-title{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-4);
}
.article-toc-note{
  font-size:12.5px;
  color:var(--ink-4);
}
.article-toc ol{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px 28px;
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:article-toc;
}
.article-toc li{
  counter-increment:article-toc;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:8px;
  align-items:baseline;
}
.article-toc li::before{
  content:counter(article-toc,decimal-leading-zero);
  font-family:var(--font-mono);
  font-size:9.5px;
  letter-spacing:.08em;
  color:var(--accent);
}
.article-toc a{
  color:var(--ink-2);
  text-decoration:none;
  font-size:13.5px;
  line-height:1.45;
}
.article-toc a:hover{
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px;
}
.article-body h2[id]{
  scroll-margin-top:96px;
}
.article-inline-cta{
  margin:42px 0;
  padding:22px 24px;
  border-left:2px solid var(--accent);
  background:var(--bg-2);
}
.article-inline-cta .article-inline-kicker{
  margin:0 0 8px;
  font-family:var(--font-mono);
  font-size:9.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent-2);
}
.article-inline-cta h3{
  margin:0 0 9px;
  font-family:var(--font-display);
  font-size:20px;
  font-weight:450;
  line-height:1.28;
  color:var(--ink);
}
.article-inline-cta p{
  margin:0 0 14px;
  font-size:14.5px;
  line-height:1.6;
  color:var(--ink-2);
}
.article-inline-cta a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--ink);
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:1px solid var(--line-2);
}
.article-inline-cta a:hover{
  color:var(--accent);
  border-color:var(--accent);
}
.article-sources{
  margin-top:58px;
  padding-top:4px;
  border-top:1px solid var(--line);
}
.article-sources h2{
  margin-top:34px;
}
.article-sources p{
  font-size:14px;
  line-height:1.65;
  color:var(--ink-3);
}
.article-author{
  max-width:660px;
  margin:64px auto 0;
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:24px;
  align-items:center;
}
.article-author-photo{
  display:block;
  width:96px;
  aspect-ratio:260/280;
  overflow:hidden;
  background:var(--bg-2);
}
.article-author-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.article-author-copy{
  min-width:0;
}
.article-author-kicker{
  margin:0 0 6px;
  font-family:var(--font-mono);
  font-size:9.5px;
  line-height:1.3;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--accent);
}
.article-author h2{
  margin:0 0 7px;
  font-family:var(--font-display);
  font-size:21px;
  line-height:1.25;
  font-weight:450;
  color:var(--ink);
  letter-spacing:0;
}
.article-author-copy > p:not(.article-author-kicker){
  margin:0 0 10px;
  font-size:13.5px;
  line-height:1.58;
  color:var(--ink-3);
}
.article-author a{
  display:inline-flex;
  gap:7px;
  align-items:center;
  color:var(--ink-2);
  font-family:var(--font-mono);
  font-size:9.5px;
  line-height:1.4;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:1px solid var(--line-2);
}
.article-author a:hover{
  color:var(--accent);
  border-color:var(--accent);
}
@media(max-width:520px){
  .theme-toggle{display:inline-flex}
  .article-toc{margin-top:-4px;margin-bottom:38px}
  .article-toc-head{align-items:flex-start;flex-direction:column;gap:3px}
  .article-toc ol{grid-template-columns:1fr;gap:10px}
  .article-toc a{font-size:13.5px}
  .article-inline-cta{margin:36px 0;padding:20px}
  .article-sources{margin-top:48px}
  .article-author{
    margin-top:50px;
    padding:24px 0;
    grid-template-columns:78px minmax(0,1fr);
    gap:16px;
  }
  .article-author-photo{width:78px}
  .article-author h2{font-size:19px}
  .article-author-copy > p:not(.article-author-kicker){font-size:12.75px}
}
@media(max-width:360px){
  .nav-cta{display:none}
}
