.no-js .js-only{display:none!important}.blog-mast{padding-block:var(--space-4) var(--space-5);background:radial-gradient(55% 80% at 95% 0,#16c5c81a,#0000 70%),radial-gradient(40% 60% at 75% 100%,#c0cc3a1f,#0000 70%)}.blog-mast__grid{gap:var(--space-4) var(--space-7);margin-top:var(--space-6);align-items:end;display:grid}.blog-mast h1{font-size:var(--step-4);max-width:19ch;margin:0}.blog-mast .lede{font-size:var(--step-0);margin:0}@media (width>=960px){.blog-mast__grid{grid-template-columns:7fr 5fr}}.blog-mast .divider{margin-top:var(--space-5)}.blog-label{font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin:0 0 var(--space-5);align-items:center;gap:var(--space-3);font-weight:700;display:flex}.blog-label:after{content:"";background:var(--line);flex:1;height:1px}.blog-empty{max-width:46rem}.blog-empty h2{font-size:var(--step-2)}.blog-chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.blog-chips a{border:1px solid var(--line-strong);min-height:2.5rem;color:var(--ink);background:var(--white);font-size:var(--step--1);border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .95rem;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,transform .2s;display:inline-flex}.blog-chips a:hover{border-color:var(--teal);background:var(--teal-tint)}.blog-chips a[aria-current=page],.blog-chips a[aria-current=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip-n{background:var(--teal-tint);min-width:1.4rem;color:var(--teal-deep);text-align:center;border-radius:999px;padding:.05rem .4rem;font-size:.75rem;font-weight:700}.blog-chips a[aria-current=page] .chip-n,.blog-chips a[aria-current=true] .chip-n{background:var(--teal);color:var(--on-bright)}.blog-chips--links a{font-weight:500}.topic-nav{margin-bottom:var(--space-5)}.blog-index__head{gap:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.blog-index__head .blog-label{flex:14rem;margin:0}.blog-search input{font:inherit;font-size:var(--step--1);border:1px solid var(--line-strong);background:var(--white) no-repeat .85rem 50% / 1rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23889' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");width:min(100%,17rem);min-height:2.6rem;color:var(--ink);border-radius:999px;padding:.45rem 1rem .45rem 2.4rem}.blog-search input:focus{outline:3px solid var(--teal);outline-offset:1px;border-color:var(--teal)}.blog-index .topic-nav{margin-top:var(--space-5)}.blog-count{min-height:1.5em;font-size:var(--step--1);color:var(--slate);margin:0 0 var(--space-3)}.blog-index:not(.is-filtered) .blog-count{visibility:hidden}.blog-list{border-top:2px solid var(--ink);display:grid}.post{gap:var(--space-4);display:grid;position:relative}.post__media{border-radius:var(--radius-lg);background:var(--teal-tint);aspect-ratio:16/9;overflow:hidden}.post__media img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.post:hover .post__media img,.post:focus-within .post__media img{transform:scale(1.035)}.post__body{align-content:start;gap:var(--space-2);min-width:0;display:grid}.post__kicker{gap:var(--space-2);letter-spacing:.09em;text-transform:uppercase;color:var(--teal-deep);flex-wrap:wrap;align-items:center;margin:0;font-size:.8125rem;font-weight:700;display:flex}.post__draft{letter-spacing:.04em;background:var(--orange-tint);color:var(--thread-deep);border-radius:999px;padding:.05rem .5rem}.post__title{font-size:var(--step-2);margin:0;line-height:1.22}.post__title a{color:var(--ink);background:linear-gradient(var(--teal), var(--teal)) no-repeat 0 100% / 0 2px;text-decoration:none;transition:background-size .35s cubic-bezier(.2,.7,.2,1),color .2s}.post__title a:after{content:"";border-radius:var(--radius-lg);position:absolute;inset:0}.post:hover .post__title a,.post__title a:focus-visible{background-size:100% 2px}.post__title a:focus-visible{outline:none}.post:has(.post__title a:focus-visible){outline:3px solid var(--thread-deep);outline-offset:6px;border-radius:var(--radius-lg)}.post__dek{color:var(--slate);font-size:var(--step-0);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.55;display:-webkit-box;overflow:hidden}.post__meta{color:var(--slate);margin:0;font-size:.82rem}.post--feature{gap:var(--space-5)}.post--feature .post__title{font-size:var(--step-h3b);font-weight:500;line-height:1.25}.post--feature .post__dek{font-size:var(--step-0);-webkit-line-clamp:4}@media (width>=900px){.post--feature{align-items:center;gap:var(--space-7);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.post--row{padding-block:var(--space-5);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 7rem;align-items:start}.post--row .post__media{aspect-ratio:1;border-radius:var(--radius);order:2}.post--row .post__dek{-webkit-line-clamp:2}@media (width>=720px){.post--row{gap:var(--space-6);padding-block:var(--space-6);grid-template-columns:minmax(0,1fr) 15rem}.post--row .post__media{aspect-ratio:16/10;border-radius:var(--radius-lg)}.post--row .post__title{font-size:var(--step-2)}}@media (width>=1080px){.post--row{grid-template-columns:9rem minmax(0,1fr) 17rem}.post--row .post__meta{order:-1;grid-area:1/1/span 3;align-self:start;gap:.25rem;padding-top:.1rem;display:grid}.post--row .post__meta [aria-hidden]{display:none}.post--row .post__body{display:contents}.post--row .post__kicker,.post--row .post__title,.post--row .post__dek{grid-column:2}.post--row .post__media{grid-area:1/3/span 3}.post--row{row-gap:var(--space-2);grid-template-rows:auto auto 1fr}}.post[hidden]{display:none}.post-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.post--card .post__title{font-size:var(--step-2)}.read-progress{z-index:70;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.read-progress span{background:var(--brand-gradient);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.no-js .read-progress{display:none}.draft-banner{background:repeating-linear-gradient(-45deg, var(--orange-tint), var(--orange-tint) 14px, var(--lime-tint) 14px, var(--lime-tint) 28px);border-bottom:1px solid var(--line-strong);padding-block:var(--space-3);font-size:var(--step--1);color:var(--ink)}.draft-banner strong{color:var(--thread-deep);text-transform:uppercase;letter-spacing:.06em}.article-head{padding-block:var(--space-4) var(--space-6);background:radial-gradient(50% 90% at 90% 0,#16c5c817,#0000 70%)}.article-head__inner{max-width:50rem;margin:var(--space-6) auto 0}.article-cat{text-decoration:none}.article-cat:hover{text-decoration:underline}.article-head h1{font-size:var(--step-5);letter-spacing:-.02em;margin-bottom:var(--space-4);line-height:1.2}.article-dek{font-family:var(--font-serif);font-size:var(--step-0);color:var(--slate);margin-bottom:var(--space-5);max-width:42rem;line-height:1.45}.article-meta{align-items:center;gap:var(--space-3) var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.article-meta p{font-size:var(--step--1);flex:16rem;gap:.1rem;margin:0;display:grid}.article-meta__logo{width:40px;height:40px;box-shadow:0 0 0 1px var(--line);background:#f4f5f6;border-radius:50%}.article-meta__by{font-weight:600}.article-meta__line{gap:0 var(--space-3);color:var(--slate);flex-wrap:wrap;display:flex}.article-meta__line>span+span:before{content:"·";margin-right:var(--space-3);color:var(--line-strong)}.copy-link{border:1px solid var(--line-strong);background:var(--white);min-height:2.5rem;color:var(--ink);font:inherit;font-size:var(--step--1);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .9rem;font-weight:600;transition:background-color .2s,border-color .2s;display:inline-flex}.copy-link svg{width:1.1rem;height:1.1rem}.copy-link:hover{border-color:var(--teal);background:var(--teal-tint)}.copy-link.is-done{border-color:var(--lime);background:var(--lime-tint)}.article-langs{margin:var(--space-3) 0 0;gap:var(--space-3);font-size:var(--step--1);flex-wrap:wrap;display:flex}.article-hero{margin-block:0 var(--space-7);max-width:72rem}.article-hero picture{border-radius:var(--radius-lg);aspect-ratio:16/9;background:var(--teal-tint);box-shadow:var(--shadow);display:block;overflow:hidden}.article-hero img{object-fit:cover;width:100%;height:100%}.article-hero figcaption,.article-body figcaption{font-size:var(--step--1);color:var(--slate);margin-top:var(--space-3);padding-left:var(--space-3);border-left:2px solid var(--teal);max-width:60ch}.article-layout{gap:var(--space-6);grid-template-columns:minmax(0,44rem);justify-content:center;display:grid}@media (width>=1120px){.article-layout.has-toc{gap:var(--space-8);grid-template-columns:15rem minmax(0,44rem)}}.article-main{min-width:0}.toc ol{counter-reset:toc;gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.toc li{counter-increment:toc}.toc a{border-radius:var(--radius);color:var(--slate);font-size:var(--step--1);border-left:2px solid #0000;grid-template-columns:1.6rem 1fr;gap:.25rem;padding:.4rem .6rem;line-height:1.35;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s;display:grid}.toc a:before{content:counter(toc, decimal-leading-zero);font-variant-numeric:tabular-nums;color:var(--teal-deep);padding-top:.12rem;font-size:.75rem;font-weight:700}.toc a:hover{color:var(--ink);background:var(--teal-tint)}.toc a[aria-current=location]{color:var(--ink);border-left-color:var(--thread);background:var(--card-3);font-weight:600}.toc--side{display:none}@media (width>=1120px){.toc--side{max-height:calc(100vh - 8rem);padding-right:var(--space-2);align-self:start;display:block;position:sticky;top:6.5rem;overflow-y:auto}.toc--inline{display:none}}.toc__h{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin-bottom:var(--space-3);font-size:.8125rem;font-weight:700}.toc--inline{margin-bottom:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white)}.toc--inline summary{cursor:pointer;padding:var(--space-4) var(--space-5);font-weight:700;font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;list-style:none;display:flex}.toc--inline summary::-webkit-details-marker{display:none}.toc--inline summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transition:transform .25s;transform:rotate(45deg)}.toc--inline[open] summary:after{transform:rotate(-135deg)}.toc--inline ol{padding:0 var(--space-3) var(--space-4)}.in-brief{margin-bottom:var(--space-7);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:var(--card-2);border-top:3px solid var(--lime)}.in-brief h2{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lime-deep);margin-bottom:var(--space-3);font-size:.8125rem;font-weight:700}.in-brief ul{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.in-brief li{padding-left:1.6rem;line-height:1.5;position:relative}.in-brief li:before{content:"";border-left:2px solid var(--teal-deep);border-bottom:2px solid var(--teal-deep);width:.7rem;height:.38rem;position:absolute;top:.5em;left:0;transform:rotate(-45deg)}.article-body{font-size:var(--step-0);line-height:1.65}.article-body>p,.article-body>ul,.article-body>ol{margin:0 0 1.15em}.article-body>p:first-child:first-letter{font-family:var(--font-serif);float:left;color:var(--thread-deep);padding:.06em .1em 0 0;font-size:3.4em;font-weight:500;line-height:.82}.article-body h2{font-size:var(--step-3);margin:2.4em 0 .7em;scroll-margin-top:6rem}.article-body h2:before{content:"";background:var(--brand-gradient);border-radius:2px;width:2.75rem;height:3px;margin-bottom:.9rem;display:block}.article-body h3{font-size:var(--step-2);margin:1.8em 0 .5em;scroll-margin-top:6rem}.article-body ul,.article-body ol{padding-left:1.3em}.article-body li{margin-bottom:.45em}.article-body li::marker{color:var(--teal-deep);font-weight:700}.article-body a{color:var(--thread-deep);text-decoration-color:color-mix(in srgb, var(--thread-deep) 45%, transparent)}.article-body a:hover{text-decoration-color:currentColor}.article-body strong{font-weight:650}.article-body blockquote{border-left:4px solid var(--lime);font-family:var(--font-serif);color:var(--ink);margin:1.8em 0;padding:.2em 0 .2em 1.4em;font-size:1.12em;line-height:1.5}.article-body blockquote p{margin:0}.article-body .note{padding:var(--space-5);border-radius:var(--radius-lg);background:var(--card-1);border-left:4px solid var(--teal);margin:1.8em 0;font-size:1em}.article-body .note>:last-child{margin-bottom:0}.article-body .note strong:first-child{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:.35rem;font-size:.78rem;display:block}.article-body figure{margin:2em 0}.article-body figure img{border-radius:var(--radius-lg);width:100%;height:auto;box-shadow:var(--shadow)}.article-body table{border-collapse:collapse;max-width:100%;margin:1.6em 0;font-size:.9em;line-height:1.5;display:block;overflow-x:auto}.article-body th,.article-body td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:9rem;padding:.7em .9em}.article-body thead th{font-family:var(--font-sans);border-bottom:2px solid var(--ink);background:var(--white);font-weight:700}.article-body tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--teal-tint) 45%, transparent)}.article-body hr{background:var(--line);border:0;height:1px;margin:2.5em 0}.article-section{margin-top:var(--space-7)}.article-section>h2{font-size:var(--step-h2b)}.article-section__h{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--slate);font-weight:700;font-size:var(--step--1)!important}.sources ol{gap:var(--space-3);font-size:var(--step--1);margin:0;padding-left:1.4em;line-height:1.5;display:grid}.sources li::marker{color:var(--slate);font-variant-numeric:tabular-nums}.sources a{color:var(--ink);overflow-wrap:anywhere}.sources__pub,.sources__host{color:var(--slate);display:block}.sources__host{font-size:.78rem}.article-cta{margin-top:var(--space-7);padding:var(--space-6);border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 0% 0%, var(--teal-tint), transparent 60%), radial-gradient(120% 140% at 100% 100%, var(--lime-tint), transparent 60%), var(--white);border:1px solid var(--line)}.article-cta h2{font-size:var(--step-h2b);margin-bottom:var(--space-2)}.article-cta>p{color:var(--slate)}.article-cta .btn-row{margin:var(--space-4) 0 0}.article-cta__contact{margin:var(--space-4) 0 0;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));padding:0;list-style:none;display:grid}.article-cta__contact span{letter-spacing:.08em;text-transform:uppercase;color:var(--teal-deep);font-size:.75rem;font-weight:700;display:block}.article-cta__contact a{font-family:var(--font-serif);font-size:var(--step-1);color:var(--ink);overflow-wrap:anywhere}.related-posts{border-top:1px solid var(--line);margin-top:var(--space-8)}.back-link{margin-block:var(--space-6) var(--space-8)}.back-link a{color:var(--ink);align-items:center;gap:.5rem;padding:.5rem 0;font-weight:600;text-decoration:none;display:inline-flex}.back-link a span{transition:transform .2s}.back-link a:hover{color:var(--thread-deep)}.back-link a:hover span{transform:translate(-4px)}.article .section,.blog-lead,.blog-index{content-visibility:visible}@media (prefers-reduced-motion:reduce){.post:hover .post__media img,.post:focus-within .post__media img{transform:none}html:focus-within{scroll-behavior:auto}}@media (prefers-reduced-motion:no-preference){html:focus-within{scroll-behavior:smooth}}@media print{.read-progress,.toc,.copy-link,.article-cta,.related-posts,.back-link,.draft-banner{display:none!important}.article-layout{display:block}}
