/* Writing shares the site's paper, ink and lime editorial language. */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.blog-hero { padding-block:28px 78px; }
.blog-kicker { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:56px; }
.blog-kicker>span { font-size:.62rem; letter-spacing:.09em; color:var(--muted); }
.blog-hero h1 { font-size:clamp(3.8rem,7.6vw,6.8rem); line-height:1.02; }
.blog-hero h1 em { font-size:1.12em; }
.blog-intro { max-width:535px; margin-top:28px; font-size:1.1rem; color:var(--muted); line-height:1.7; }
.blog-feature { display:grid; grid-template-columns:150px minmax(0,1fr) 80px; gap:46px; padding-block:44px 52px; border-top:1px solid var(--ink); }
.blog-feature-index { padding-top:4px; }
.blog-feature-index .eyebrow { color:var(--muted); }
.feature-index-rule { display:block; width:28px; height:2px; background:var(--ink); margin-top:22px; }
.post-meta { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; font-size:.72rem; line-height:1.5; color:var(--muted); }
.post-category { font-weight:500; color:var(--ink); background:var(--lime); padding:5px 9px; }
.blog-feature h2 { max-width:900px; font-size:clamp(2rem,3.7vw,3.6rem); line-height:1.11; margin-top:23px; }
.blog-feature h2 a { text-decoration-thickness:1px; text-underline-offset:7px; }
.blog-feature h2 a:hover { text-decoration-line:underline; }
.blog-feature-copy>p { max-width:680px; margin-top:21px; color:var(--muted); font-size:1rem; }
.post-tags { display:flex; flex-wrap:wrap; gap:8px 19px; padding:0; margin:24px 0 0; list-style:none; font-size:.66rem; color:var(--muted); }
.post-tags li { padding-left:12px; position:relative; }
.post-tags li::before { content:''; position:absolute; width:4px; height:4px; top:.66em; left:0; background:#85915e; border-radius:50%; }
.feature-read { margin-top:25px; }
.feature-arrow { align-self:start; width:74px; height:74px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:2.8rem; line-height:1; margin-top:60px; transition:background .2s,border-color .2s; }
.feature-arrow:hover { background:var(--lime); border-color:var(--lime); }
.blog-closing { display:flex; align-items:center; justify-content:space-between; gap:25px; border-top:1px solid var(--line); padding-block:28px 66px; }
.blog-closing>p { font-size:.88rem; color:var(--muted); }

/* Article opening and quiet, readable text column. */
.post-header { padding-block:27px 47px; border-bottom:1px solid var(--line); }
.post-back { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:.76rem; color:var(--muted); margin-bottom:37px; }
.post-back:hover { color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.post-header h1 { max-width:1080px; margin-top:27px; font-size:clamp(3.3rem,5.8vw,5rem); line-height:1.07; letter-spacing:-.055em; text-wrap:balance; }
.post-deck { max-width:815px; font-size:1.3rem; letter-spacing:-.015em; line-height:1.65; margin-top:28px; color:var(--muted); }
.post-byline { display:flex; align-items:center; gap:13px; margin-top:28px; }
.byline-mark { display:grid; place-items:center; width:39px; height:39px; border:1px solid #c8ccbc; border-radius:50%; font-size:.75rem; font-weight:500; letter-spacing:-.04em; }
.post-byline p { font-size:.76rem; line-height:1.6; }
.post-byline a { font-weight:500; text-decoration:underline; text-underline-offset:3px; }
.post-byline p>span { display:block; font-size:.66rem; color:var(--muted); }
.article-layout { display:grid; grid-template-columns:220px minmax(0,740px); gap:68px; padding-top:54px; padding-bottom:76px; }
.article-toc { align-self:start; position:sticky; top:35px; padding-right:12px; }
.article-toc>.eyebrow { font-size:.61rem; color:var(--muted); }
.article-toc ol { list-style:none; padding:0; margin:18px 0 28px; border-left:1px solid var(--line); }
.article-toc li { margin:0; }
.article-toc li a { display:block; padding:9px 0 9px 17px; font-size:.77rem; line-height:1.5; color:var(--muted); }
.article-toc li a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.article-toc .toc-back { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:16px; border-top:1px solid var(--line); font-size:.65rem; color:var(--muted); }
.article-main { min-width:0; }
.article-body { font-size:1.08rem; line-height:1.85; overflow-wrap:break-word; }
.article-body p { margin-block:0 23px; }
.article-body>p:first-child { font-size:1.23rem; line-height:1.75; letter-spacing:-.016em; }
.article-body section+section { margin-top:48px; }
.article-body h2 { font-size:2.35rem; line-height:1.16; letter-spacing:-.045em; margin:48px 0 23px; text-wrap:balance; }
.article-body h3 { font-size:1.42rem; line-height:1.3; margin:31px 0 17px; }
.article-body section:first-child h2:first-child { margin-top:0; }
.article-body strong { font-weight:600; }
.article-body a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.article-body a:hover { text-decoration-thickness:2px; }
.article-body sup { font-size:.65em; line-height:0; vertical-align:super; }
.article-body sup a { padding-inline:2px; }
.article-body ul,.article-body ol { padding-left:25px; margin:23px 0 28px; }
.article-body li { padding-left:5px; margin-block:9px; }
.article-body blockquote { margin:35px 0; border-left:3px solid #a5be52; padding:2px 0 2px 25px; font-size:1.25rem; line-height:1.65; }
.article-body blockquote p:last-child { margin:0; }
.article-body .article-callout { margin:34px 0; padding:27px 29px; border-left:3px solid #97b832; background:#e9eddb; font-size:1.07rem; line-height:1.75; }
.article-callout p:last-child { margin-bottom:0; }
.article-body .article-note { color:var(--muted); font-size:.88rem; line-height:1.75; }
.article-body .article-flow { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:0; list-style:none; padding:0; margin:32px 0; border:1px solid var(--line); background:var(--surface); counter-reset:flow; }
.article-body .article-flow li { position:relative; padding:21px 19px 24px; margin:0; border-left:1px solid var(--line); counter-increment:flow; }
.article-body .article-flow li:first-child { border-left:0; }
.article-flow li::before { content:counter(flow,decimal-leading-zero); display:block; font-size:.63rem; color:var(--muted); font-weight:500; margin-bottom:17px; }
.article-flow li+li::after { content:'→'; position:absolute; left:-9px; top:16px; width:17px; text-align:center; font-size:.9rem; line-height:1.8; background:var(--surface); color:var(--muted); }
.article-flow strong { display:block; font-size:.91rem; line-height:1.4; letter-spacing:-.025em; }
.article-flow span { display:block; color:var(--muted); font-size:.76rem; line-height:1.6; margin-top:10px; }
.article-body .article-references { margin-top:45px; padding-top:30px; border-top:1px solid var(--line); font-size:.83rem; line-height:1.75; color:var(--muted); }
.article-body .article-references h2 { font-size:1.6rem; margin-top:0; margin-bottom:20px; color:var(--ink); }
.article-references ol { padding-left:23px; }
.article-references li { padding-left:6px; margin-block:16px; }
.article-references a { overflow-wrap:anywhere; }
.article-end { border-top:1px solid var(--line); margin-top:40px; padding-top:3px; }
.article-author { border-top:1px solid var(--line); padding-top:26px; margin-top:25px; }
.article-author>.eyebrow { color:var(--muted); font-size:.61rem; margin-bottom:13px; }
.article-author>p:not(.eyebrow) { max-width:590px; font-size:.93rem; color:var(--muted); }
.article-author>p a { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.article-author .text-link { margin-top:9px; font-size:.76rem; }
.article-cta { display:grid; grid-template-columns:1.2fr 1fr; gap:70px; align-items:center; background:var(--ink); color:var(--paper); padding:44px 48px 48px; margin-bottom:58px; }
.article-cta .eyebrow { color:var(--lime); font-size:.62rem; margin-bottom:22px; }
.article-cta h2 { font-size:clamp(2.7rem,4.2vw,4rem); }
.article-cta>div>p:not(.eyebrow) { max-width:400px; color:var(--dark-muted); font-size:.95rem; }
.article-cta .button { margin-top:25px; background:var(--lime); color:var(--ink); border-color:var(--lime); }
.article-cta .button:hover { background:var(--paper); border-color:var(--paper); }
.article-cta a:focus-visible { outline-color:var(--lime); }

@media (max-width:1100px) {
  .blog-feature { grid-template-columns:105px minmax(0,1fr) 60px; gap:30px; }
  .feature-arrow { width:60px; height:60px; font-size:2.2rem; }
  .article-layout { grid-template-columns:185px minmax(0,1fr); gap:42px; }
  .article-body { font-size:1.03rem; }
  .article-cta { gap:40px; padding:38px; }
}
@media (max-width:800px) {
  .blog-hero { padding-bottom:58px; }
  .blog-kicker { margin-bottom:42px; }
  .blog-feature { grid-template-columns:minmax(0,1fr) 54px; gap:20px; padding-block:30px 40px; }
  .blog-feature-index { grid-column:1/-1; padding:0; }
  .feature-index-rule { display:none; }
  .feature-arrow { width:54px; height:54px; margin-top:53px; }
  .blog-feature h2 { font-size:2.5rem; }
  .post-header h1 { font-size:3.5rem; }
  .post-deck { font-size:1.16rem; }
  .article-layout { grid-template-columns:1fr; gap:36px; padding-top:28px; padding-bottom:55px; }
  .article-toc { position:static; padding:0 0 24px; border-bottom:1px solid var(--line); }
  .article-toc ol { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; border:0; margin:13px 0 0; }
  .article-toc li a { padding:7px 0; font-size:.75rem; }
  .article-toc .toc-back { display:none; }
  .article-body { max-width:740px; font-size:1.08rem; }
  .article-cta { gap:30px; padding:32px; }
  .article-cta>div>p:not(.eyebrow) { font-size:.86rem; }
}
@media (max-width:600px) {
  .blog-hero { padding-block:24px 45px; }
  .blog-kicker { margin-bottom:32px; }
  .blog-kicker .eyebrow { font-size:.55rem; }
  .blog-kicker>span { display:none; }
  .blog-hero h1 { font-size:clamp(2.5rem,10.5vw,3.8rem); }
  .blog-intro { font-size:.97rem; margin-top:24px; }
  .blog-feature { grid-template-columns:1fr; gap:19px; padding-block:25px 34px; }
  .blog-feature-index .eyebrow { font-size:.59rem; }
  .feature-arrow { display:none; }
  .post-meta { gap:10px 14px; font-size:.65rem; }
  .post-category { padding:5px 8px; }
  .blog-feature h2 { font-size:2rem; margin-top:21px; }
  .blog-feature-copy>p { font-size:.92rem; margin-top:17px; }
  .post-tags { font-size:.61rem; gap:8px 16px; margin-top:20px; }
  .feature-read { margin-top:19px; font-size:.78rem; }
  .blog-closing { align-items:flex-start; flex-direction:column; gap:7px; padding-block:23px 38px; }
  .blog-closing>p,.blog-closing .text-link { font-size:.79rem; }
  .post-header { padding-block:16px 29px; }
  .post-back { margin-bottom:24px; font-size:.71rem; }
  .post-header h1 { font-size:clamp(2.45rem,9vw,3.3rem); line-height:1.1; margin-top:22px; text-wrap:pretty; }
  .post-deck { font-size:1.06rem; margin-top:24px; }
  .post-byline { margin-top:24px; }
  .post-byline p { font-size:.72rem; }
  .post-byline p>span { font-size:.62rem; }
  .article-layout { gap:29px; padding-top:25px; padding-bottom:42px; }
  .article-toc { padding-bottom:22px; }
  .article-toc ol { grid-template-columns:1fr; gap:0; }
  .article-toc li a { padding:6px 0; }
  .article-body { font-size:1rem; line-height:1.85; }
  .article-body>p:first-child { font-size:1.11rem; }
  .article-body p { margin-bottom:21px; }
  .article-body h2 { font-size:1.95rem; margin-block:38px 19px; }
  .article-body h3 { font-size:1.3rem; }
  .article-body section+section { margin-top:38px; }
  .article-body .article-callout { margin-block:27px; padding:22px 21px; font-size:.98rem; }
  .article-body .article-flow { grid-template-columns:1fr; margin-block:26px; }
  .article-body .article-flow li { display:grid; grid-template-columns:30px 1fr; gap:0 12px; padding:22px 20px; border-left:0; border-top:1px solid var(--line); }
  .article-body .article-flow li:first-child { border-top:0; }
  .article-flow li::before { grid-row:1/3; margin:0; padding-top:1px; }
  .article-flow li+li::after { content:'↓'; top:-14px; left:24px; width:20px; }
  .article-flow span { grid-column:2; margin-top:7px; font-size:.81rem; }
  .article-flow strong { font-size:.99rem; }
  .article-body .article-note { font-size:.8rem; }
  .article-body .article-references { font-size:.78rem; }
  .article-author>p:not(.eyebrow) { font-size:.86rem; }
  .article-cta { grid-template-columns:1fr; gap:26px; padding:28px 24px 32px; margin-bottom:35px; }
  .article-cta .eyebrow { font-size:.53rem; margin-bottom:17px; }
  .article-cta h2 { font-size:2.8rem; }
  .article-cta .button { font-size:.78rem; min-height:51px; margin-top:21px; }
}
@media print {
  .article-toc,.article-cta,.post-back,.blog-closing,.article-author .text-link { display:none; }
  .article-layout { display:block; padding-top:25px; }
  .post-header h1 { font-size:32pt; }
  .post-deck { font-size:13pt; }
  .article-body { font-size:11pt; }
  .article-body h2 { font-size:19pt; break-after:avoid; }
  .article-flow,.article-callout { break-inside:avoid; }
  .post-header { padding-top:0; }
}
