@import url('/assets/fonts.css');
:root{--paper:#f8f7f3;--ink:#18282e;--plum:#5b365c;--lavender:#efe8f4;--lime:#e2e88c;--line:#d7d6ce;--muted:#536166;--display:'Bricolage Grotesque',sans-serif;--body:'Source Sans 3',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:19px/1.6 var(--body)}a{color:var(--plum);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--plum);outline-offset:5px}h1,h2,h3,h4{font-family:var(--display);line-height:1.12;letter-spacing:-.035em;font-weight:600;text-wrap:balance}h1{font-size:clamp(42px,5.3vw,76px);margin:15px 0 24px}h2{font-size:clamp(29px,3vw,43px);margin:0 0 22px}h3{font-size:27px;margin:20px 0 12px}p{margin:0 0 20px}ul,ol{padding-left:24px}li{margin:8px 0}strong{font-weight:700}img{max-width:100%;height:auto;display:block}.container{width:min(1280px,calc(100% - 96px));margin:auto;min-width:0}.skip{position:fixed;top:-100px;background:white;padding:10px;z-index:20}.skip:focus{top:10px}.masthead{background:var(--paper);border-bottom:1px solid var(--line)}.header-row{min-height:105px;display:flex;align-items:center;gap:27px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font:600 21px/1.05 var(--display);letter-spacing:-.04em;text-decoration:none;white-space:nowrap}.brand-mark{width:34px;height:40px;display:grid;place-items:center;background:var(--plum);color:var(--lime);font-size:27px;clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,0 100%)}.main-nav{display:flex;align-items:center;gap:18px;margin-left:auto}.main-nav a{font-size:16px;text-decoration:none;color:var(--muted);white-space:nowrap}.main-nav a:hover,.main-nav a[aria-current]{color:var(--plum)}.header-actions{display:flex;gap:8px}.button{display:inline-flex;gap:15px;align-items:center;justify-content:space-between;text-decoration:none;font-weight:700;padding:12px 19px;border:1px solid var(--line);border-radius:4px;line-height:1.2;color:var(--ink);font-size:17px;min-height:48px}.button span{font-size:20px}.button.dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}.button.choice{background:var(--plum);border-color:var(--plum);color:white}.button:hover{filter:brightness(.95);text-decoration:none}.header-actions .button{font-size:15px;padding:11px 13px;gap:9px}.hero{padding:83px 0 0;text-align:center}.kind{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--plum);margin:0 0 14px}.hero h1{font-size:clamp(48px,6.1vw,88px);line-height:1.02}.lead{font-size:23px;line-height:1.5;color:var(--muted);max-width:850px}.hero .lead{margin:0 auto 30px;max-width:850px}.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:24px}.byline{font-size:15px;color:var(--muted);margin:18px 0}.metrics-ledger{margin-top:60px;background:var(--lavender);display:grid;grid-template-columns:repeat(3,1fr) 1.1fr;text-align:left;border-top:4px solid var(--plum)}.metrics-ledger>div{padding:24px 32px}.metrics-ledger strong{font:600 53px/1 var(--display);display:block;letter-spacing:-.06em}.metrics-ledger span{display:block;font-size:17px;margin-top:10px}.metrics-ledger .index-note{background:var(--plum);color:white}.index-note strong{font-size:27px;letter-spacing:-.04em}.scope-line{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:34px 0;border-bottom:1px solid var(--line);font-size:17px}.scope-line p{font-weight:700;margin:0}.scope-line ol{display:flex;gap:32px;margin:0;list-style:decimal-leading-zero}.scope-line li{padding-left:4px;margin:0;flex:1}.home-section{margin:90px 0}.section-head{margin-bottom:34px;max-width:850px}.section-head p:not(.kind){color:var(--muted)}.table-scroll{max-width:100%;overflow-x:auto;margin:26px 0;border:1px solid var(--line);border-radius:3px}table{width:100%;border-collapse:collapse;text-align:left;background:#fff;font-size:16px;line-height:1.5}caption{text-align:left;background:var(--lavender);padding:14px 20px;font-size:15px;color:var(--muted)}th,td{padding:18px 16px;vertical-align:top;border-bottom:1px solid var(--line);min-width:110px}thead th{font-size:13px;letter-spacing:.04em;text-transform:uppercase;background:var(--ink);color:white}tbody th{font-weight:700}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}tbody tr:hover{background:#f6f4f8}.comparison-table{min-width:1210px}.comparison-table th:nth-child(2){min-width:130px}.comparison-table td:nth-child(4){min-width:220px}.comparison-table .table-score{min-width:100px}.score-number{font:600 32px var(--display);display:block}.table-score small{font-size:12px}.table-note{font-size:16px;color:var(--muted)}.badge{display:inline-block;background:var(--lime);color:var(--ink);border-radius:3px;padding:4px 9px;font-size:13px;font-weight:700;line-height:1.4}.comparison-table .badge{margin-top:10px}.vendor-rows{border-top:1px solid var(--line)}.vendor-row{display:grid;grid-template-columns:65px minmax(0,1fr) 130px;gap:30px;padding:40px 20px;border-bottom:1px solid var(--line)}.vendor-row.featured{background:var(--lavender);border-left:4px solid var(--plum);padding-left:16px}.rank{font:500 29px var(--display);color:var(--muted)}.vendor-row h3{font-size:42px;margin:0 0 15px}.vendor-row h3 a{color:var(--ink);text-decoration:none}.vendor-row .kind{font-size:12px}.vendor-copy>p{max-width:840px}.row-score{text-align:right}.row-score strong{font:600 67px/1 var(--display);letter-spacing:-.07em;display:block}.row-score span{font-size:14px;color:var(--muted)}.award{font-size:17px}.award .badge{margin-right:8px}.access-line{display:flex;gap:25px;border-top:1px solid var(--line);padding-top:17px;font-size:16px;color:var(--muted)}.access-line>span{flex:1}.panel-links{display:flex;gap:25px;margin-top:20px;font-size:16px;font-weight:700}.evidence-essay{padding:60px 10%;background:var(--ink);color:var(--paper);margin:90px 0;display:grid;grid-template-columns:1fr 1.3fr;gap:10px 65px}.evidence-essay .kind{grid-column:1/-1;color:var(--lime)}.evidence-essay h2{font-size:48px}.evidence-essay p{color:#d2dbdb}.evidence-essay .button{color:var(--paper);margin:10px 5px 0 0;border-color:#657378}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}.article-card{text-decoration:none;color:var(--ink);min-width:0}.article-card img{aspect-ratio:1376/768;object-fit:cover;border:1px solid var(--line)}.article-card h3{font-size:26px;line-height:1.2}.article-card p{font-size:17px;color:var(--muted)}.article-card .meta{font-size:14px;color:var(--plum)}.article-card:hover h3{text-decoration:underline;text-underline-offset:4px}.method-callout{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:42px;background:var(--lime);margin:90px 0}.method-callout h2{font-size:38px}.method-callout p:last-child{margin:0}.faq{border-top:1px solid var(--line);max-width:1000px}.faq details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-family:var(--display);font-size:23px;line-height:1.35;padding:23px 46px 23px 0;position:relative;letter-spacing:-.025em}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:10px;top:22px;color:var(--plum);font:400 28px var(--body)}details[open] summary:after{content:'−'}.answer{padding:0 48px 10px 0;color:var(--muted)}.breadcrumbs{margin:25px 0 0;font-size:14px;color:var(--muted)}.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.breadcrumbs li{margin:0}.breadcrumbs li+li:before{content:'/';margin-right:8px;color:#9d9d94}.page-top{padding:55px 0 45px;max-width:1050px}.page-intro .lead{max-width:900px}.review-facts{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--lavender);border-top:4px solid var(--plum)}.review-facts>div{padding:28px;min-width:0}.review-facts h2{font:700 14px var(--body);letter-spacing:.03em;text-transform:uppercase;margin:0 0 15px}.review-facts p{font-size:19px;margin:0}.score-box .score{font:600 65px/1 var(--display);letter-spacing:-.06em;margin:0 0 15px}.score small{font:400 20px var(--body);letter-spacing:0}.score-box .badge{margin-bottom:8px}.review-actions{display:flex;gap:10px;margin:25px 0 55px}.review-layout,.doc-layout,.blog-layout{display:grid;grid-template-columns:minmax(0,880px) minmax(180px,260px);justify-content:space-between;gap:65px;align-items:start}.reading,.review-content,.article-body{min-width:0;max-width:880px}.reading>section,.article-body>section{margin-bottom:48px}.reading h2,.article-body h2{font-size:33px;margin-top:42px}.reading h3,.article-body h3{font-size:25px}.toc{position:sticky;top:30px;border-left:3px solid var(--plum);padding-left:20px;font-size:15px;max-height:85vh;overflow-y:auto}.toc h2{font:700 14px var(--body);letter-spacing:.05em;text-transform:uppercase;margin:0 0 17px}.toc a{display:block;margin:0 0 12px;text-decoration:none;color:var(--muted);line-height:1.4}.toc a:hover{color:var(--plum)}.key-facts{margin:20px 0}.key-facts>div{padding:20px 0;border-bottom:1px solid var(--line)}dt{font-weight:700;color:var(--plum);margin-bottom:8px}dd{margin:0}.source-inline{font-size:14px;white-space:nowrap}.balance{display:grid;grid-template-columns:1fr 1fr;gap:28px}.balance h2{font-size:29px}.balance ul{font-size:18px}.rubric-table{min-width:740px}.rubric-table tbody th{width:28%}.rubric-table small{display:block;font-weight:400;color:var(--muted);margin-top:8px}.rubric-table td:nth-child(2){min-width:100px;width:16%}.source-list{padding-left:22px;font-size:17px}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.resource{border-top:3px solid var(--plum);padding-top:10px}.resource h3{font-size:27px}.resource p{font-size:18px}.resource ul{font-size:17px}.mission-layout{padding:50px 0 70px;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.mission-layout h2{font-size:56px}.mission-layout .reading{margin:35px auto 0;text-align:left;max-width:800px}.author-feature{margin:70px 0;text-align:center}.author-feature h2{font-size:56px;margin-bottom:12px}.author-role{font-size:20px;color:var(--plum)}.author-feature .reading{margin:25px auto 0;max-width:800px;text-align:left}.publication-body{margin:auto}.contact-route{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px;border-top:1px solid var(--line);padding:35px 0}.contact-route h2{font-size:31px}.contact-email{overflow-wrap:anywhere;font-size:17px;font-weight:700}.contact-route ul{font-size:17px}.cover{margin:0 0 30px}.cover img{width:100%;border:1px solid var(--line)}figcaption{font-size:14px;line-height:1.5;color:var(--muted);margin:12px 0}.article-body{line-height:1.75}.article-body>p:first-of-type{font-size:21px;font-weight:600}.article-body table{min-width:630px}.flow{list-style:none;background:var(--lavender);padding:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:28px 0 8px;font-size:15px;line-height:1.4}.flow li{margin:0}.flow strong{display:block;font:600 30px var(--display);color:var(--plum);margin-bottom:10px}.article-body figure{margin:28px 0}.ai-summary{border-top:1px solid var(--line);padding:35px 0;margin-top:70px}.ai-summary h2{font:700 14px var(--body);text-transform:uppercase;letter-spacing:.07em;margin:0 0 15px}.ai-summary ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px;margin:0}.ai-summary li{margin:0}.ai-summary a{display:block;background:var(--lavender);border:1px solid #d9cce1;padding:8px 15px;border-radius:3px;font-size:15px;text-decoration:none}.article-body .ai-summary{margin:24px 0 30px;padding:22px 0}.site-footer{background:var(--ink);color:#d2dbdb;margin-top:45px;padding:55px 0 20px;font-size:16px}.site-footer a{color:#e8edf0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px}.footer-title{font:600 29px var(--display);color:var(--paper);margin-bottom:15px}.footer-grid nav{display:flex;flex-direction:column;gap:10px}.footer-grid nav a{text-decoration:none}.footer-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:40px;border-top:1px solid #415157;padding-top:20px;font-size:13px}.empty-page{padding:90px 0 60px}.reading:not(.review-content){margin-bottom:30px}section[id]{scroll-margin-top:30px}code{font-size:.9em;overflow-wrap:anywhere}pre{overflow-x:auto;padding:20px;background:var(--lavender)}
@media(min-width:1300px){.main-nav{gap:15px}.container{width:min(1280px,calc(100% - 80px))}}
@media(max-width:1250px){.header-row{flex-wrap:wrap;gap:20px;padding:22px 0}.main-nav{order:3;flex-basis:100%;justify-content:center}.header-actions{margin-left:auto}.container{width:calc(100% - 72px)}.review-layout,.doc-layout,.blog-layout{gap:35px;grid-template-columns:minmax(0,1fr) 210px}.evidence-essay{padding:45px 5%;gap:35px}.scope-line{gap:25px}}
@media(max-width:800px){body{font-size:18px}.container{width:calc(100% - 40px)}.hero{padding-top:50px}.hero h1{font-size:58px}.hero .lead{font-size:21px}.metrics-ledger{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:40px}.metrics-ledger>div{padding:20px}.metrics-ledger strong{font-size:43px}.metrics-ledger span{font-size:15px}.metrics-ledger .index-note{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px}.index-note strong{font-size:25px}.index-note span{margin:0}.scope-line{grid-template-columns:1fr;gap:15px}.scope-line ol{gap:28px;margin-left:10px}.home-section{margin:60px 0}.vendor-row{grid-template-columns:40px minmax(0,1fr) 90px;gap:20px;padding:30px 15px}.vendor-row.featured{padding-left:11px}.vendor-row h3{font-size:35px}.row-score strong{font-size:52px}.access-line{flex-direction:column;gap:10px}.evidence-essay{grid-template-columns:1fr;margin:60px 0}.evidence-essay h2{font-size:42px}.evidence-essay .kind{grid-column:auto}.article-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.method-callout{grid-template-columns:1fr;gap:15px;padding:30px;margin:60px 0}.method-callout h2{font-size:34px}.review-layout,.doc-layout,.blog-layout{display:flex;flex-direction:column;gap:30px}.review-layout>.toc,.doc-layout>.toc,.blog-layout>.toc{order:-1;position:static;width:100%;max-height:none;display:flex;flex-wrap:wrap;gap:8px 18px}.toc h2{flex-basis:100%;margin-bottom:4px}.toc a{margin:0}.review-facts{grid-template-columns:1fr 1fr}.review-facts .score-box{grid-column:1/-1;border-bottom:1px solid #d9cce1}.review-facts .score-box p{font-size:17px}.resource-grid{grid-template-columns:1fr}.resource{padding-top:0}.contact-route{gap:25px;grid-template-columns:1fr}.mission-layout h2,.author-feature h2{font-size:45px}.footer-grid{gap:30px;grid-template-columns:1fr 1fr}.footer-grid>div{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:8px}.reading h2{font-size:31px}.flow{grid-template-columns:1fr 1fr}summary{font-size:22px}}
@media(max-width:480px){.header-row{gap:16px;padding:18px 0}.brand{font-size:21px}.main-nav{justify-content:flex-start;overflow-x:auto;gap:23px;padding:4px 0 5px;flex-basis:100%;min-width:0;order:3}.header-actions{width:100%;margin:0;gap:8px;order:2}.header-actions .button{flex:1;font-size:15px;padding:11px 13px}.hero{padding-top:38px}.hero h1{font-size:45px;line-height:1.05}.hero h1 br{display:none}.lead,.hero .lead{font-size:20px}.hero-actions{justify-content:flex-start}.hero{text-align:left}.hero .lead{margin-left:0}.byline{font-size:14px}.metrics-ledger>div{padding:19px 12px}.metrics-ledger strong{font-size:39px}.metrics-ledger span{font-size:13px;line-height:1.4}.metrics-ledger .index-note{padding:18px}.index-note strong{font-size:24px}.index-note span{font-size:13px}.scope-line ol{display:block;padding-left:17px}.scope-line li{margin:8px 0}.home-section{margin:50px 0}.vendor-row,.vendor-row.featured{grid-template-columns:24px minmax(0,1fr) 64px;gap:12px;padding:25px 10px}.vendor-row.featured{padding-left:6px}.rank{font-size:20px}.vendor-row h3{font-size:31px}.row-score strong{font-size:40px}.row-score span{font-size:11px}.vendor-copy p{font-size:17px}.vendor-copy .kind{font-size:10px;line-height:1.4}.vendor-copy .award{font-size:15px}.access-line{font-size:15px}.panel-links{gap:10px;flex-direction:column;font-size:15px}.evidence-essay{padding:30px 23px}.evidence-essay h2{font-size:38px}.article-grid{grid-template-columns:1fr}.article-card h3{font-size:28px}.method-callout{padding:26px}.method-callout h2{font-size:29px}.page-top{padding:35px 0 25px}.page-top h1{font-size:40px}.page-top .lead{font-size:20px}.review-facts>div{padding:20px}.review-facts p{font-size:17px}.review-facts h2{font-size:12px}.review-actions{flex-wrap:wrap;margin-bottom:35px}.balance{grid-template-columns:1fr;gap:0}.balance section{margin-bottom:8px}.reading h2,.article-body h2{font-size:28px}.source-list{font-size:16px}.faq summary{font-size:20px}.answer{padding-right:12px;font-size:17px}.mission-layout h2,.author-feature h2{font-size:38px}.mission-layout{padding:35px 0}.contact-route{gap:12px}.contact-email{font-size:15px}.flow{padding:18px;font-size:14px}.footer-grid{font-size:15px;gap:25px}.site-footer{padding-top:35px}.ai-summary{margin-top:40px}.breadcrumbs{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Constrain stacked document content before its scrollable tables are sized. */
.review-layout>.reading,.doc-layout>.reading,.blog-layout>.article-body{width:100%;min-width:0}
