
/* ---------- Resources: index ---------- */
.res-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px;}
.res-filter{font:inherit;font-size:13.5px;padding:7px 15px;border-radius:100px;border:1px solid var(--line);background:transparent;color:var(--text-muted);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;}
.res-filter:hover{border-color:var(--accent-line);color:var(--text);}
.res-filter[aria-pressed="true"]{background:var(--accent-dim);border-color:var(--accent-line);color:var(--accent-soft);}
.res-grid{margin-top:0;align-items:stretch;}
.res-card{position:relative;}
a.res-card:hover h3{color:var(--accent-soft);}
.res-tag{align-self:flex-start;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-soft);background:var(--accent-dim);border-radius:100px;padding:3px 10px;margin-bottom:14px;}
.res-card h3{font-size:17px;line-height:1.3;transition:color .15s ease;}
.res-meta{margin-top:16px;font-size:13px;color:var(--text-faint);}
.res-card.is-soon{background:transparent;border-style:dashed;}
.res-card.is-soon h3{color:var(--text-muted);}
.res-card.is-soon .res-tag{color:var(--text-faint);background:var(--line-soft);}
.res-card[hidden]{display:none;}
.res-empty{margin-top:10px;font-size:15px;color:var(--text-muted);}

/* ---------- Resources: article ---------- */
.article-hero .wrap{max-width:var(--maxw);}
.article-hero-inner{max-width:780px;}
.article-hero h1{max-width:24ch;}
.article-hero .article-dek{max-width:62ch;}
.breadcrumb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px;color:var(--text-faint);margin-bottom:18px;list-style:none;padding:0;}
.breadcrumb li+li::before{content:"/";margin-right:6px;color:var(--text-faint);}
.breadcrumb a{color:var(--text-muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--accent-soft);}
.article-meta{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:14px;color:var(--text-faint);}
.article-meta img{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--accent-dim);}
.article-meta .by{display:flex;align-items:center;gap:10px;color:var(--text-muted);}
.article-meta a{color:var(--text);text-decoration:none;}
.article-meta a:hover{color:var(--accent-soft);}

.article-layout{display:grid;grid-template-columns:minmax(0,740px) 250px;gap:64px;justify-content:space-between;align-items:start;}
@media(max-width:1020px){.article-layout{grid-template-columns:minmax(0,1fr);}.article-toc{display:none;}}
.article-toc{position:sticky;top:104px;font-size:14px;border-left:1px solid var(--line);padding-left:18px;}
.article-toc .kicker{margin-bottom:10px;}
.article-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.article-toc a{color:var(--text-faint);text-decoration:none;line-height:1.4;display:block;transition:color .15s ease;}
.article-toc a:hover{color:var(--text);}
.article-toc a.active{color:var(--accent-soft);}
.toc-mobile{display:none;margin-bottom:34px;border:1px solid var(--line);border-radius:8px;padding:14px 18px;}
.toc-mobile summary{font-size:15px;}
.toc-mobile ol{margin:12px 0 0;padding-left:20px;}
.toc-mobile li{margin-top:6px;font-size:15px;}
.toc-mobile a{color:var(--text-muted);}
@media(max-width:1020px){.toc-mobile{display:block;}}

.article-body{max-width:740px;}
.article-body>*:first-child{margin-top:0;}
.article-body h2{font-size:clamp(23px,2.6vw,28px);color:var(--text);margin-top:60px;scroll-margin-top:100px;line-height:1.2;}
.article-body h3{font-size:19px;color:var(--text);margin-top:34px;scroll-margin-top:100px;line-height:1.3;}
.article-body p,.article-body li{font-size:17px;line-height:1.75;color:var(--text);opacity:.88;}
.article-body p{margin-top:18px;}
.article-body ul,.article-body ol{margin:18px 0 0;padding-left:24px;}
.article-body li{margin-top:8px;}
.article-body li::marker{color:var(--accent-soft);}
.article-body a{color:var(--accent-soft);text-underline-offset:3px;}
.article-body strong{color:var(--text);font-weight:600;}
.article-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;}
.article-body :not(pre)>code{background:var(--bg-alt);border:1px solid var(--line);padding:1px 6px;border-radius:4px;color:var(--text);overflow-wrap:anywhere;}
.article-body pre{margin:22px 0 0;background:var(--bg-alt);border:1px solid var(--line);border-radius:8px;padding:18px 20px;overflow-x:auto;font-size:14px;line-height:1.65;color:var(--text);}
.article-body pre code{font-size:inherit;}
.code-label{margin-top:26px !important;margin-bottom:-12px;font-size:12.5px !important;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint) !important;opacity:1 !important;}
.article-body .table-wrap{margin-top:24px;}
.article-body .data-table td,.article-body .data-table th{font-size:14.5px;line-height:1.55;opacity:1;}
.article-body .data-table td code{white-space:nowrap;}
.article-body .data-table caption{caption-side:bottom;text-align:left;padding:10px 16px;font-size:13px;color:var(--text-faint);}

.answer-box{border:1px solid var(--accent-line);background:var(--accent-dim);border-radius:10px;padding:24px 26px;}
.answer-box .kicker{margin-bottom:8px;}
.answer-box p{margin-top:0;font-size:17.5px;opacity:1;}
.takeaways{margin-top:22px;border:1px solid var(--line);border-radius:10px;padding:22px 26px;background:var(--bg-alt);}
.takeaways .kicker{margin-bottom:4px;}
.takeaways ul{margin-top:8px;}
.takeaways li{font-size:16px;}
.callout{margin-top:26px;border-left:3px solid var(--amber);background:var(--bg-alt);padding:16px 20px;border-radius:0 8px 8px 0;}
.callout p{margin-top:0;font-size:16px;}
.callout p+p{margin-top:10px;}
.article-body .faq-list{margin-top:24px;}
.article-body details p{font-size:16px;max-width:none;}
.article-body details summary{font-size:17px;}
.article-cta{margin-top:40px;}
.sources{margin-top:60px;padding-top:26px;border-top:1px solid var(--line);}
.sources h2{font-size:18px;margin-top:0;}
.sources ol{padding-left:22px;}
.sources li{font-size:14.5px;line-height:1.6;opacity:1;color:var(--text-muted);word-break:break-word;}
.sources a{color:var(--text-muted);}
.sources a:hover{color:var(--accent-soft);}
.author-box{margin-top:40px;display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:start;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;}
.author-box img{width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--accent-dim);}
.author-box .name{font-family:'Syne',sans-serif;font-weight:700;font-size:17px;color:var(--text);opacity:1;margin:0;}
.author-box .name a{color:var(--text);text-decoration:none;}
.author-box p{margin-top:6px;font-size:15px;line-height:1.6;color:var(--text-muted);opacity:1;}
@media(max-width:520px){.author-box{grid-template-columns:1fr;}}
.related{border-top:1px solid var(--line-soft);}
.related .card-grid{margin-top:28px;}
/* Keep shared components at their own sizes inside article prose */
.article-body .kicker{margin-top:0;font-size:13px;color:var(--accent-soft);opacity:1;line-height:1.4;}
.article-body .tool-promo{margin-top:48px;text-decoration:none;}
.article-body .tool-promo h3{margin-top:0;font-size:19px;}
.article-body .tool-promo p{margin-top:6px;font-size:14.5px;color:var(--text-muted);opacity:1;line-height:1.55;}
.article-body .tool-promo p.kicker{margin-top:0;font-size:13px;color:var(--accent-soft);}
.article-body .tool-promo .btn{white-space:nowrap;}
.article-body .faq-list details p{color:var(--text-muted);opacity:1;}
.article-body .author-box p.name{font-size:17px;}
.article-body .sources li{color:var(--text-muted);}
.article-body .data-table{min-width:720px;}
.article-body pre.wrap{white-space:pre-wrap;word-break:break-all;}
.pre-wrap{position:relative;}
.copy-btn{position:absolute;top:10px;right:10px;font:inherit;font-size:12.5px;padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--text-muted);cursor:pointer;opacity:.85;}
.copy-btn:hover{color:var(--text);border-color:var(--accent-line);opacity:1;}
.article-body .pre-wrap pre{padding-top:44px;}
