:root{--article-bg:#f5f3e8;--article-ink:#243a2c;--article-accent:#3b6943;--article-panel:#e4e8d3;--article-line:color-mix(in srgb,#243a2c 22%,#f5f3e8);--article-muted:color-mix(in srgb,#243a2c 78%,#f5f3e8);--article-display:"Lora",Georgia,serif;--article-body:"Lato",system-ui,sans-serif;--article-radius:12px;}
.publication-rich-page{margin:0;background:var(--article-bg,#faf9f6);color:var(--article-ink,#202820);font-family:var(--article-body,system-ui);line-height:1.7}.publication-rich-page *{box-sizing:border-box}.publication-header{padding:22px max(22px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--article-line,#ccc);display:flex;align-items:center;justify-content:space-between;gap:24px}.publication-header>a{font-family:var(--article-display,Georgia);font-size:26px;color:inherit;text-decoration:none}.publication-header nav{display:flex;flex-wrap:wrap;gap:20px}.publication-header nav a{font-size:14px;color:inherit}.publication-article{max-width:1120px;margin:auto;padding:56px 24px 80px;overflow-wrap:anywhere}.publication-intro{max-width:840px;margin:0 auto 38px}.publication-article h1{font-family:var(--article-display,Georgia);font-weight:var(--article-weight,600);font-size:clamp(38px,5.4vw,68px);letter-spacing:-.035em;line-height:1.08;margin:16px 0 24px}.publication-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--article-accent)}.publication-lead{font-size:clamp(19px,2vw,23px);line-height:1.6}.publication-byline{font-size:13px;border-top:1px solid var(--article-line);padding-top:18px}.publication-tags{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.publication-tags li{font-size:12px;padding:4px 12px;border:1px solid var(--article-line);border-radius:var(--article-radius,4px)}.publication-article figure{margin:32px 0}.publication-article img{display:block;max-width:100%;height:auto;border-radius:var(--article-radius,4px)}.publication-hero img{width:100%;max-height:620px;object-fit:cover}.publication-article figcaption{font-size:13px;margin-top:10px;color:var(--article-muted,#62645f)}.publication-body{max-width:760px;margin:auto;font-size:18px}.publication-body h2,.publication-body h3,.publication-body h4{font-family:var(--article-display,Georgia);line-height:1.2;letter-spacing:-.02em;scroll-margin-top:24px}.publication-body h2{font-size:clamp(28px,3.5vw,38px);margin:52px 0 22px}.publication-body h3{font-size:25px;margin:32px 0 18px}.publication-body p{margin:20px 0}.publication-body a{color:var(--article-accent);text-decoration:underline;text-underline-offset:4px}.publication-body li{margin:8px 0}.publication-body ul,.publication-body ol{padding-left:26px}.publication-body blockquote{margin:32px 0;padding:12px 24px;border-left:4px solid var(--article-accent);font-size:23px;font-family:var(--article-display,Georgia)}.publication-body .callout,.publication-body .key-takeaways,.publication-body .tool-block{margin:32px 0;padding:26px;background:var(--article-panel);border:1px solid var(--article-line);border-radius:var(--article-radius,4px)}.publication-body .callout-warning{border-left:4px solid var(--article-accent)}.publication-body .callout>:first-child,.publication-body .tool-block>:first-child,.publication-body .key-takeaways>:first-child{margin-top:0}.publication-body table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:15px;margin:28px 0}.publication-body th,.publication-body td{padding:16px;text-align:left;border:1px solid var(--article-line);min-width:120px;vertical-align:top}.publication-body th{background:var(--article-panel);font-weight:700}.publication-body caption{font-size:14px;text-align:left;padding-bottom:12px}.publication-body .product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:30px 0}.publication-body .product-card{padding:24px;border:1px solid var(--article-line);border-radius:var(--article-radius,4px);background:var(--article-panel)}.publication-body .product-card h3{margin-top:16px}.publication-body .product-cta{display:inline-block;font-weight:700;padding:10px 0}.publication-body details{padding:20px 0;border-bottom:1px solid var(--article-line)}.publication-body summary{font-weight:700;cursor:pointer;padding-right:20px}.publication-body pre{overflow:auto;padding:22px;background:var(--article-panel);font-size:14px;white-space:pre}.publication-body code{font-size:.88em}.publication-body hr{margin:42px 0;border:0;border-top:1px solid var(--article-line)}.publication-body .publication-sources{margin-top:48px;border-top:1px solid var(--article-line);font-size:15px}.publication-skip{position:absolute;left:20px;top:-90px;background:white;color:black;padding:12px;z-index:100}.publication-skip:focus{top:12px}.publication-article :focus-visible,.publication-header :focus-visible{outline:3px solid var(--article-accent);outline-offset:5px}@media(max-width:600px){.publication-header{flex-direction:column;align-items:flex-start;padding:18px 20px;gap:12px}.publication-header nav{gap:12px}.publication-article{padding:32px 20px 52px}.publication-body{font-size:17px}.publication-body .product-grid{grid-template-columns:1fr}.publication-body .callout,.publication-body .tool-block,.publication-body .product-card{padding:20px}.publication-article h1{font-size:38px}.publication-body table{font-size:14px}}@media(prefers-reduced-motion:reduce){.publication-article *{scroll-behavior:auto!important;transition:none!important}}

/* Article media: centred, restrained and close to related copy. */
.publication-body p{margin:12px 0}
.publication-body figure{margin:18px auto;max-width:480px;text-align:center}
.publication-body figure img{width:auto;max-width:100%;max-height:340px;object-fit:contain;margin-inline:auto}
.publication-body figure.publication-standalone,.publication-body figure:has(img[src*="/brand/wordmark-"]){max-width:144px;margin:12px auto}
.publication-body .publication-standalone img,.publication-body img[src*="/brand/wordmark-"]{width:auto;max-width:144px;max-height:56px;object-fit:contain;margin-inline:auto}
.publication-body>img{max-width:min(100%,480px);max-height:340px;object-fit:contain;margin:18px auto}
