/* tokens.css */
:root{--paper:#faf7f0;--panel:#f2ede3;--white:#fffdf8;--ink:#20251f;--muted:#59615a;--forest:#17372f;--forest-hover:#21483e;--clay:#945a3b;--rule:#d8cfc0;--focus:#a86342;--font:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",sans-serif;--serif:Georgia,"Times New Roman",serif;--shell:1280px;--radius-sm:10px;--radius:12px;--radius-media:16px;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--space-6:72px;--space-7:96px;--space-8:120px;--clay-text:var(--clay);--sage:#6f8a73;--media-radius:var(--radius-media);--radius-button:var(--radius-sm);--color-text-muted:var(--muted)}

/* base.css */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:18px;line-height:1.5;text-rendering:optimizeLegibility}[hidden]{display:none!important}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.shell{width:min(calc(100% - 80px),var(--shell));margin-inline:auto}.skip-link{position:fixed;left:16px;top:16px;z-index:1000;background:var(--white);padding:12px 16px;transform:translateY(-160%)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}:where(a,button,input,select):focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(max-width:720px){.shell{width:min(calc(100% - 40px),var(--shell))}body{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* components.css */
.announcement{min-height:40px;padding:8px 20px;background:var(--forest);color:#fff;text-align:center;font-size:14px}.announcement a{margin-left:8px;border-bottom:1px solid #aebdb7}.site-header{height:82px;background:var(--paper);border-bottom:1px solid var(--rule);position:relative;z-index:20}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.brand,.footer-brand{display:inline-flex;align-items:center}.brand{width:154px;min-height:48px}.brand img,.footer-brand img{display:block;width:100%;height:auto}.footer-brand{width:166px;min-height:44px}.footer-brand img{filter:brightness(0) invert(1);opacity:.94}.primary-nav{display:flex;gap:28px;align-items:center}.primary-nav a{min-width:44px;height:46px;display:flex;align-items:center;justify-content:center;position:relative;font-size:17px;font-weight:560}.primary-nav a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--forest)}.header-actions{display:flex;gap:10px;align-items:center}.icon-button{width:48px;height:48px;border:0;background:transparent;display:grid;place-items:center;border-radius:var(--radius-sm)}.icon-button svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.menu-button{display:none}.button{min-height:52px;padding:0 20px;border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;line-height:1;text-align:center;white-space:nowrap}.button-primary{background:var(--forest);color:#fff}.button-secondary{background:transparent;border-color:#9f988d;color:var(--forest)}.button-light{background:var(--white);color:var(--forest)}.site-footer{background:#20251f;color:#f4f0e7;padding:72px 0 34px}.footer-grid{display:grid;grid-template-columns:1.35fr repeat(3,.7fr);gap:72px}.footer-grid p{color:#b9c0ba;max-width:330px;font-size:16px}.footer-grid h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:#959c96;margin:10px 0 12px}.footer-grid a:not(.footer-brand){min-height:44px;display:flex;align-items:center;font-size:16px}.footer-bottom{border-top:1px solid #3d433e;margin-top:52px;padding-top:22px;color:#979e98;font-size:14px;display:flex;justify-content:space-between}.mobile-nav{background:var(--paper);border-bottom:1px solid var(--rule);padding:12px 20px 20px}.mobile-nav nav{display:grid}.mobile-nav a{min-height:50px;display:flex;align-items:center;border-bottom:1px solid var(--rule);font-weight:560}@media(hover:hover)and (pointer:fine){.button-primary:hover{background:var(--forest-hover)}.button-secondary:hover{background:var(--white)}.primary-nav a:hover{color:var(--clay)}}@media(max-width:920px){.primary-nav,.desktop-action{display:none}.menu-button{display:grid}.site-header{height:70px}.brand{width:142px;min-height:44px}.mobile-nav[hidden]{display:none}.mobile-nav:not([hidden]){display:block}.footer-grid{grid-template-columns:1fr 1fr;gap:44px}}@media(max-width:600px){.announcement{font-size:13px}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:grid;gap:8px}.site-footer{padding-top:56px}}.announcement{min-height:44px;padding-block:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 8px}.announcement a{min-height:44px;margin-left:0;display:inline-flex;align-items:center}@media(min-width:921px){.primary-nav{gap:18px}.primary-nav a{font-size:16px}}@media(min-width:921px)and (max-width:1250px){.desktop-action{display:none}}

/* release.css */
.site-search{width:min(760px,calc(100% - 32px));max-height:min(760px,calc(100dvh - 32px));margin:auto;padding:0;border:0;border-radius:var(--radius-media);background:var(--paper);color:var(--ink);box-shadow:0 24px 80px rgba(20,28,23,.24)}.site-search::backdrop{background:rgba(23,36,31,.58)}.site-search-panel{padding:32px}.site-search-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.site-search-heading p{margin:0 0 6px;color:var(--clay-text);font-size:14px;font-weight:650}.site-search-heading h2{margin:0;font-size:32px;font-weight:520;letter-spacing:-.03em}.search-close{min-width:72px;min-height:48px;padding:0 16px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);font-size:15px;font-weight:600}.site-search-field{height:60px;margin-top:28px;padding:0 18px;display:flex;align-items:center;gap:12px;border:1px solid #9e988f;border-radius:var(--radius);background:var(--white)}.site-search-field:focus-within{box-shadow:0 0 0 3px var(--focus)}.site-search-field>span svg{width:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.site-search-field input{width:100%;height:100%;border:0;outline:0;background:transparent;font-size:18px}.site-search-count{margin:16px 0 10px;color:var(--muted);font-size:15px}.site-search-results{max-height:390px;margin:0;padding:0;overflow:auto;overscroll-behavior:contain;list-style:none;border-top:1px solid var(--rule)}.site-search-results li{border-bottom:1px solid var(--rule)}.site-search-results a{min-height:74px;padding:14px 4px;display:grid;grid-template-columns:1fr auto;gap:3px 20px;align-content:center}.site-search-results strong{font-size:17px;font-weight:570}.site-search-results span{grid-row:1 / 3;grid-column:2;color:var(--clay-text);font-size:13px}.site-search-results small{color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-search-empty{padding:32px 4px;color:var(--muted)}.site-search-help{padding-top:18px;display:flex;gap:24px;font-size:15px;font-weight:600}.site-search-help a{text-decoration:underline;text-underline-offset:4px}.compat-index{padding:0 0 110px}.compat-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}.compat-grid>a{min-width:0;padding:34px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.compat-grid>a:first-child{padding-left:0}.compat-grid>a:last-child{border-right:0}.compat-grid span{color:var(--clay-text);font-size:14px;font-weight:650}.compat-grid h2{margin:30px 0 12px;font-size:28px;font-weight:540}.compat-grid p{color:var(--muted)}.compat-grid strong,.compat-statement a{text-decoration:underline;text-underline-offset:4px}.compat-statement{padding:90px 0;background:var(--panel)}.compat-statement>.shell{display:grid;grid-template-columns:1fr 1fr;gap:80px}.compat-statement h2{font-size:34px;font-weight:520;letter-spacing:-.03em}.compat-statement p,.compat-statement li{color:var(--muted)}.route-status{max-width:680px;margin:32px 0;padding:24px 26px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.route-status strong{display:block;margin-bottom:6px}.route-status p{margin:0;font-size:16px}.seller-facts{display:grid;grid-template-columns:1fr 1fr;margin:36px 0;border-top:1px solid var(--rule)}.seller-facts>div{padding:18px 0;border-bottom:1px solid var(--rule)}.seller-facts span{display:block;color:var(--muted);font-size:14px}.seller-facts strong{font-size:17px}@media(hover:hover)and (pointer:fine){.site-search-results a:hover strong,.compat-grid>a:hover h2{color:var(--clay-text)}}@media(max-width:760px){.site-search{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.site-search-panel{padding:22px 18px}.site-search-heading h2{font-size:27px}.site-search-field{margin-top:22px}.site-search-results{max-height:calc(100dvh - 330px)}.site-search-help{display:grid;gap:10px}.compat-grid,.compat-statement>.shell{grid-template-columns:1fr}.compat-grid>a{padding:28px 0;border-right:0}.compat-statement{padding:68px 0}.seller-facts{grid-template-columns:1fr}}

/* article.css */
.guide-article-page{background:var(--paper)}.article-shell{width:min(calc(100% - 80px),1180px);margin-inline:auto}.article-header{padding-top:68px;padding-bottom:54px}.article-breadcrumbs{display:flex;gap:10px;align-items:center;margin-bottom:38px;color:var(--muted);font-size:15px}.article-breadcrumbs a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px}.article-header>.eyebrow{color:var(--clay);font-size:13px;font-weight:620;letter-spacing:.08em;text-transform:uppercase}.article-header h1{max-width:1000px;margin:18px 0 24px;font-size:clamp(48px,6vw,76px);font-weight:500;line-height:1;letter-spacing:-.05em}.article-dek{max-width:760px;margin:0;color:var(--muted);font-size:21px;line-height:1.6}.article-image{width:min(calc(100% - 80px),1380px);margin:0 auto 76px}.article-image img{width:100%;max-height:720px;object-fit:cover;border-radius:var(--radius-media)}.article-body{width:min(calc(100% - 80px),1180px);display:grid;grid-template-columns:minmax(0,740px) minmax(250px,320px);gap:clamp(50px,8vw,110px);align-items:start;margin:0 auto;padding-bottom:100px}.article-body>section,.article-body>.article-faq,.article-body>.article-sources,.article-body>.article-related{grid-column:1}.article-body>section{padding:22px 0}.article-body h2{margin:0 0 18px;font-size:clamp(30px,3vw,40px);font-weight:520;line-height:1.12;letter-spacing:-.035em}.article-body h3{margin-top:32px;font-size:23px;font-weight:560}.article-body p,.article-body li{max-width:70ch;color:#39413a;font-size:18px;line-height:1.75}.article-body li+li{margin-top:8px}.article-body a:not(.button){text-decoration:underline;text-decoration-color:#9f978b;text-underline-offset:4px}.article-summary{grid-column:2;grid-row:1/span 3;position:sticky;top:26px;padding:26px;background:var(--white);border:1px solid var(--rule);border-radius:var(--radius)}.article-summary>.eyebrow{color:var(--clay);font-size:12px;font-weight:620;letter-spacing:.08em;text-transform:uppercase}.article-summary h2{font-size:25px}.article-summary ul{margin:0;padding-left:20px}.article-summary li{font-size:15px;line-height:1.55}.article-cta{grid-column:1/-1;margin:34px 0;padding:34px;background:var(--forest);border-radius:var(--radius);color:#fff}.article-cta h2{font-size:32px}.article-cta p{color:#d3ddd8}.article-cta .button{margin-top:6px}.article-evidence-table{width:100%;border-collapse:collapse;margin:28px 0}.article-evidence-table th,.article-evidence-table td{padding:14px;border:1px solid var(--rule);text-align:left;vertical-align:top;font-size:15px}.article-evidence-table th{background:var(--panel)}.article-faq,.article-sources,.article-related{margin-top:38px;padding-top:34px;border-top:1px solid var(--rule)}.article-faq details{border-bottom:1px solid var(--rule)}.article-faq summary{padding:18px 0;cursor:pointer;font-weight:580}.article-faq details p{padding-bottom:18px}.article-sources li{font-size:15px}.article-cta-actions,.template-actions{display:flex;flex-wrap:wrap;gap:12px}.template-sheet,.tree-template-wrap{max-width:100%;overflow-x:auto;padding:24px;background:var(--white);border:1px solid var(--rule)}.tree-columns{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:18px}.tree-person{padding:16px;border:1px solid var(--rule)}.article-pin-section{grid-column:1/-1}.article-pin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.article-pin-grid img{border-radius:var(--radius-media)}.article-sequence{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:100px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.article-sequence a{min-height:120px;padding:26px 28px 26px 0}.article-sequence a+a{padding-left:28px;border-left:1px solid var(--rule)}.article-sequence span,.article-sequence strong{display:block}.article-sequence span{margin-bottom:8px;color:var(--muted);font-size:14px}.article-sequence strong{font-size:19px;font-weight:560}@media(hover:hover)and (pointer:fine){.article-sequence a:hover strong{color:var(--clay)}}@media(max-width:900px){.article-body{grid-template-columns:1fr}.article-summary{grid-column:1;grid-row:auto;position:static}.article-body>section,.article-body>.article-faq,.article-body>.article-sources,.article-body>.article-related{grid-column:1}.article-pin-section{grid-column:1}.article-header h1{font-size:54px}}@media(max-width:620px){.article-shell,.article-body,.article-image{width:min(calc(100% - 40px),1180px)}.article-header{padding-top:42px;padding-bottom:34px}.article-header h1{font-size:42px}.article-dek{font-size:18px}.article-image{margin-bottom:42px}.article-body{padding-bottom:64px}.article-body p,.article-body li{font-size:17px}.article-cta{padding:24px 20px}.article-pin-grid,.article-sequence{grid-template-columns:1fr}.article-sequence a+a{padding-left:0;border-top:1px solid var(--rule);border-left:0}.tree-columns{grid-template-columns:1fr}}.article-body>*{min-width:0}.article-evidence-table{max-width:100%;overflow-x:auto}.article-evidence-table table{min-width:660px}@media(max-width:900px){.article-body{grid-template-columns:minmax(0,1fr)}}.editorial-article-body{width:min(calc(100% - 80px),1180px);margin:0 auto;padding-bottom:100px}.editorial-prose{width:min(100%,680px);margin-inline:auto}.editorial-prose h2{margin:58px 0 18px;font-size:clamp(30px,3vw,40px);font-weight:520;line-height:1.12;letter-spacing:-.035em}.editorial-prose h3{margin:36px 0 14px;font-size:24px;line-height:1.25}.editorial-prose p,.editorial-prose li{color:#39413a;font-size:19px;line-height:1.72}.editorial-prose li+li{margin-top:10px}.editorial-prose a{text-decoration:underline;text-decoration-color:#9f978b;text-underline-offset:4px}.editorial-prose blockquote{margin:8px 0 54px;padding:28px 30px;background:#f5f2e8}.editorial-prose blockquote p{margin:0}.editorial-prose blockquote p:first-child{margin-bottom:8px;color:var(--forest);font-size:14px;letter-spacing:.06em;text-transform:uppercase}.editorial-prose hr{margin:54px 0;border:0;border-top:1px solid var(--rule)}.editorial-callout{display:grid;grid-template-columns:140px minmax(0,1fr);gap:28px;align-items:center;margin:54px 0;padding:30px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.editorial-callout-free{grid-template-columns:1fr;padding:34px;background:var(--forest);border:0;color:#fff}.editorial-callout .eyebrow{margin:0 0 8px;color:var(--clay);font-size:12px;font-weight:620;letter-spacing:.08em;text-transform:uppercase}.editorial-callout-free .eyebrow,.editorial-callout-free p{color:#d9e2dd}.editorial-callout h2{margin:0 0 10px;font-size:27px}.editorial-callout p{margin:0 0 20px;font-size:16px;line-height:1.6}.editorial-callout-media img{width:140px;height:140px;object-fit:cover;border-radius:var(--radius-media)}.editorial-callout .button{text-decoration:none}.editorial-guide-page .article-header{padding-bottom:58px}.editorial-guide-page .article-header h1{max-width:940px}.editorial-guide-page .article-dek{max-width:720px}@media(max-width:620px){.editorial-article-body{width:min(calc(100% - 40px),1180px);padding-bottom:64px}.editorial-prose p,.editorial-prose li{font-size:18px;line-height:1.68}.editorial-prose h2{margin-top:46px}.editorial-prose blockquote{margin-bottom:42px;padding:24px 20px}.editorial-callout{grid-template-columns:1fr;gap:20px}.editorial-callout-media img{width:112px;height:112px}.editorial-callout-free{padding:26px 22px}}.article-meta{color:var(--color-text-muted, #5f6b66);font-size:0.92rem;margin-top:1rem}.software-editorial-image{margin-top:0;margin-bottom:64px}.software-editorial-image img{display:block;width:100%;height:auto;border-radius:var(--radius-media)}.software-editorial-image figcaption{max-width:680px;margin:16px auto 0;color:var(--muted);font-size:14px;line-height:1.55}@media(max-width:620px){.software-editorial-image{width:min(calc(100% - 40px),1180px);margin-bottom:48px}.software-editorial-image figcaption{font-size:13px}}.article-breadcrumbs a{min-width:44px}.article-sequence a{padding:26px 0}.article-sequence a:first-child span,.article-sequence a:first-child strong{margin-right:28px}.article-sequence a+a{padding-left:0}.article-sequence a+a span,.article-sequence a+a strong{margin-left:28px}@media(max-width:620px){.article-sequence a:first-child span,.article-sequence a:first-child strong,.article-sequence a+a span,.article-sequence a+a strong{margin-right:0;margin-left:0}}.editorial-callout .editorial-callout-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:-6px 0 18px}.editorial-callout-price strong{color:var(--ink);font-size:24px;font-weight:650}.editorial-callout-price del{color:var(--muted);font-size:17px}.editorial-callout-price span{color:var(--muted);font-size:14px}

/* email-acquisition.css */
.footer-letter{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(480px,1.22fr);gap:clamp(48px,7vw,96px);align-items:start;margin-bottom:64px;padding-bottom:56px;border-bottom:1px solid #3d433e}.footer-letter>div>p{margin:0 0 14px;color:#aeb8b0;font-size:13px;font-weight:650;letter-spacing:.08em}.footer-letter h2{max-width:440px;margin:0 0 14px;color:#f4f0e7;font-size:clamp(32px,4vw,48px);font-weight:500;line-height:1.04;letter-spacing:-.04em}.footer-letter>div>span{display:block;max-width:470px;color:#b9c0ba;font-size:16px;line-height:1.5}.footer-letter form{display:grid;gap:14px;max-width:760px}.footer-letter .sub-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important}.footer-letter form>label:first-child{color:#f4f0e7;font-size:16px;font-weight:650}.footer-letter form>div{display:grid;grid-template-columns:minmax(240px,1fr) max-content;gap:12px}.footer-letter input[type=email]{width:100%;min-height:52px;padding:11px 14px;border:1px solid #778078;border-radius:var(--radius);background:#f8f5ee;color:var(--ink);font-size:16px}.footer-letter input[type=email]:focus-visible{outline:3px solid #d6a27e;outline-offset:2px}.footer-letter-consent{display:block;position:relative;min-height:44px;max-width:660px;color:#b9c0ba;font-size:16px;line-height:1.45;cursor:pointer}.footer-letter-consent input{position:absolute;top:0;left:0;width:44px;height:44px;margin:0;opacity:0;cursor:pointer}.footer-letter-consent>span{display:block;position:relative;min-height:44px;padding-left:54px}.footer-letter-consent>span::before{position:absolute;top:12px;left:12px;width:20px;height:20px;border:1px solid #aeb7af;border-radius:4px;background:transparent;content:""}.footer-letter-consent input:checked+span::before{border-color:#f4f0e7;background:#f4f0e7;box-shadow:inset 0 0 0 4px var(--forest)}.footer-letter-consent input:focus-visible+span::before{outline:3px solid #d6a27e;outline-offset:3px}.footer-letter-consent a{display:inline;color:#f4f0e7;text-decoration:underline;text-underline-offset:3px}.footer-letter [role=status]{margin:0;color:#d5ddd6;font-size:16px}.footer-letter [role=status]:empty{display:none}.footer-letter [role=status]:not(:empty){padding:14px 16px;border:1px solid #4d574f;border-radius:var(--radius);background:#28302a}.footer-letter form.is-pending>:not([role=status]){opacity:.55}@media(max-width:920px){.footer-letter{grid-template-columns:1fr;gap:30px}}@media(max-width:600px){.footer-letter form>div{grid-template-columns:1fr}.footer-letter .button{width:100%}}
