.sw-platform-logo[data-astro-cid-7sutekco]{width:88px;height:24px;display:flex;align-items:center;justify-content:flex-start;flex:0 1 88px}.sw-platform-logo[data-astro-cid-7sutekco] img[data-astro-cid-7sutekco]{display:block;max-height:22px;max-width:100%;-o-object-fit:contain;object-fit:contain}.sw-platform-logo[data-astro-cid-7sutekco] .placeholder[data-astro-cid-7sutekco]{font-family:var(--font-display);font-size:var(--text-md);color:var(--color-ink);font-weight:500}.software-hero{padding-top:var(--space-xl);padding-bottom:var(--space-lg);background:var(--color-paper);border-bottom:var(--rule-hairline)}.software-hero .display-h1{max-width:18ch;margin:0 0 var(--space-md) 0}.software-hero .display-h1 .ital{font-style:italic;font-weight:500}.software-hero .lede strong{color:var(--color-ink)}.software-breadcrumb{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-3);margin-bottom:var(--space-md)}.software-breadcrumb a{color:inherit;text-decoration-color:var(--color-rule)}.software-breadcrumb a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.software-breadcrumb .sep{margin:0 .5rem;opacity:.6}.software-breadcrumb .current{color:var(--color-ink)}.software-meta{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-3);margin-top:var(--space-md);margin-bottom:0}.software-meta a{color:inherit;text-decoration-color:var(--color-rule)}.software-meta a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.software-meta .sep{margin:0 .5rem;opacity:.6}#compare,#top-picks{scroll-margin-top:5rem}.sw-compare-head{margin-bottom:var(--space-md)}.sw-compare-head .section-head{max-width:32ch}.sw-compare-head .lede{margin-top:var(--space-sm);max-width:54ch}@media (max-width: 639px){.software-hero{padding:var(--space-md) 0}.software-hero .display-h1,.software-breadcrumb{margin-bottom:var(--space-xs)}.software-meta{margin-top:var(--space-xs)}#compare{padding-top:var(--space-md)}}.sw-order-note{margin:var(--space-sm) 0 var(--space-xs)}.sw-directory-note{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.55;letter-spacing:.02em;color:var(--color-ink-3);margin-top:var(--space-md);max-width:72ch}.sw-directory-note+.sw-directory-note{margin-top:var(--space-xs)}.sw-see-next{margin-top:var(--space-md)}.sw-see-next a{color:var(--color-ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:3px}.sw-see-next a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.use-case-jump{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-sm) 0;border-top:var(--rule-hairline);border-bottom:var(--rule-hairline)}.use-case-jump ul{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);list-style:none;margin:0;padding:0}.use-case-jump a{color:var(--color-ink-2);font-size:var(--text-sm);text-underline-offset:3px;text-decoration-color:var(--color-rule)}.use-case-jump a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.use-case-group{margin-top:var(--space-xl)}.use-case-group:first-child{margin-top:0}.use-case-group-heading{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--color-ink-3);margin-bottom:var(--space-xs)}.use-case-list{border-top:2px solid var(--color-ink)}.use-case-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding:var(--space-lg) 0;border-bottom:var(--rule-hairline)}@media (min-width: 900px){.use-case-row{grid-template-columns:minmax(15rem,.85fr) minmax(0,1.45fr);gap:var(--space-xl)}}.use-case-row:last-child{border-bottom:0}.use-case-question{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-ink);font-weight:500;letter-spacing:-.015em;line-height:1.25}.use-case-answer{color:var(--color-ink-2);font-size:var(--text-base);line-height:1.65;max-width:62ch}.use-case-picks{width:100%;margin-top:var(--space-md);border-collapse:collapse;border-top:var(--rule-hairline);text-align:left}.use-case-picks caption{padding:var(--space-md) 0 var(--space-xs);caption-side:top;text-align:left;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-ink)}.use-case-picks th,.use-case-picks td{padding:var(--space-sm) 0;border-bottom:var(--rule-hairline);vertical-align:top}.use-case-picks th:first-child{width:34%;padding-right:var(--space-md)}.use-case-cohort-label{display:block;margin-top:var(--space-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-ink)}.use-case-pick-name{font-weight:600;color:var(--color-ink)}.use-case-sponsored{margin-left:.45rem}.use-case-pick-name a,.use-case-guide a{color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:4px}.use-case-pick-name a:hover,.use-case-guide a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.use-case-pick-fit{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.5}.use-case-picks .use-case-pick-price{width:24%;padding-left:var(--space-md);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1.5}.use-case-guide{margin-top:var(--space-sm);font-size:var(--text-sm);font-weight:600}.use-case-guide span{color:var(--color-ink-3);font-weight:400}.switching-router{margin-top:var(--space-xl);border-top:2px solid var(--color-ink);border-bottom:var(--rule-hairline);padding:var(--space-lg) 0;display:grid;gap:var(--space-md)}@media (min-width: 900px){.switching-router{grid-template-columns:minmax(15rem,.85fr) minmax(0,1.45fr);gap:var(--space-xl)}}.switching-router h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-ink)}.switching-router p{color:var(--color-ink-2);line-height:1.6}.switching-links{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin-top:var(--space-sm);padding:0;list-style:none}.switching-links a{color:var(--color-ink);font-weight:600;text-decoration-color:var(--color-accent);text-underline-offset:4px}.pricing-strip{display:grid;grid-template-columns:1fr;border-top:2px solid var(--color-ink);border-bottom:var(--rule-hairline)}@media (min-width: 900px){.pricing-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.pricing-strip .tier{border-right:var(--rule-hairline)}.pricing-strip .tier:last-child{border-right:0}}.pricing-strip .tier{padding:var(--space-md);border-bottom:var(--rule-hairline)}@media (min-width: 900px){.pricing-strip .tier{border-bottom:0}}.pricing-strip .tier:last-child{border-bottom:0}.pricing-strip .tier-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3);display:block;margin-bottom:var(--space-xs)}.pricing-strip .tier-price{font-family:var(--font-mono);font-size:var(--text-xl);color:var(--color-ink);font-weight:500;margin-bottom:var(--space-2xs)}.pricing-strip .tier-entry-note{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.03em;color:var(--color-ink-3);margin-bottom:var(--space-xs)}.pricing-strip .tier-desc{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.55;max-width:32ch}.pricing-strip .tier-list{margin-top:var(--space-sm)}.pricing-strip .tier-list li{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink);font-weight:500;margin-bottom:var(--space-3xs)}.sw-workbench{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}@media (min-width: 1024px){.sw-workbench{grid-template-columns:minmax(13rem,1fr) minmax(0,3fr);gap:var(--space-xl)}}.sw-filters{display:flex;flex-direction:column;align-self:start;background:var(--color-paper-3);border:var(--rule-hairline);border-radius:var(--radius-card)}.sw-filter-disclosure{min-width:0}.sw-filter-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);min-height:44px;padding:var(--space-2xs) var(--space-sm);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;color:var(--color-ink);list-style:none;cursor:pointer}.sw-filter-disclosure summary::-webkit-details-marker{display:none}.sw-filter-disclosure summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sw-filter-disclosure summary svg{width:1rem;height:1rem;flex-shrink:0;transition:transform var(--dur-short) var(--ease-out)}.sw-filter-disclosure[open] summary svg{transform:rotate(180deg)}.sw-filter-content{padding:var(--space-xs) var(--space-sm) var(--space-sm)}@media (min-width: 1024px){.sw-filters{position:sticky;top:6rem;max-height:calc(100dvh - 6rem - var(--space-md));padding:var(--space-md)}.sw-filter-disclosure[data-desktop]{display:flex;flex-direction:column;min-height:0}.sw-filter-disclosure[data-desktop] summary{display:none}.sw-filter-content{display:flex;flex-direction:column;min-height:0;max-height:calc(100dvh - 6rem - var(--space-md) * 3 - 2px);padding:0}.sw-filters-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:var(--space-3xs)}}.sw-filters-head{display:none;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3);padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:var(--rule-hairline)}@media (min-width: 1024px){.sw-filters-head{display:block}}.sw-filters-body{display:grid;gap:var(--space-sm)}@media (min-width: 640px) and (max-width: 1023px){.sw-filters-body{grid-template-columns:repeat(3,minmax(0,1fr))}}.sw-filter{min-width:0}.sw-filter label,.sw-sortbar label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3)}.sw-filter label{display:block;margin-bottom:var(--space-2xs)}.sw-filter select{width:100%;min-height:44px;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-input);padding:.5rem .6rem}.sw-filter select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.sw-filters-foot{display:flex;flex-direction:column;gap:var(--space-xs);border-top:var(--rule-hairline);padding-top:var(--space-sm);margin-top:var(--space-sm)}.sw-filter-reset{min-height:44px;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink-2);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-input);padding:var(--space-2xs);cursor:pointer}.sw-filter-reset:hover{color:var(--color-ink);border-color:var(--color-ink)}.sw-filter-reset:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sw-filter-count{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-ink-3);margin:0}.sw-results{min-width:0}.sw-search{width:100%;min-height:44px;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-input);padding:.6rem .75rem;margin-bottom:var(--space-sm)}.sw-search:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.sw-search::-moz-placeholder{color:var(--color-ink-2);opacity:1}.sw-search::placeholder{color:var(--color-ink-2);opacity:1}.sw-sortbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-xs);margin-bottom:var(--space-sm)}.sw-sort-controls{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.sw-sort-controls label{flex-shrink:0}.sw-sortbar select{min-width:0;min-height:44px;max-width:100%;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-input);padding:.35rem .6rem}.sw-sortbar select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.sw-order-note[hidden],.sw-featured[hidden],[data-organic-platforms][hidden],.sw-no-results[hidden]{display:none}.sw-featured{margin-bottom:var(--space-lg)}.sw-featured .listing-row-group{border-top:0}.sw-featured .listing-row:last-child{border-bottom:0}.sw-platform-row.listing-row{grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) minmax(8rem,auto);padding:var(--space-md) 0;gap:var(--space-md)}@media (max-width: 900px){.sw-platform-row.listing-row{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}}.sw-platform-row[hidden]{display:none}.sw-platform-fit{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.5;margin-top:var(--space-2xs)}.sw-platform-limitation{color:var(--color-ink-3);font-size:var(--text-xs);line-height:1.5;margin-top:var(--space-xs)}.sw-platform-facts{margin:0}.sw-platform-facts dd{overflow-wrap:anywhere}.sw-platform-facts .sw-price-evidence{display:block;color:var(--color-ink-3);font-size:var(--text-xs);margin-top:var(--space-3xs)}.sw-platform-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-xs);width:100%;padding:.45rem .6rem;border:1px solid var(--color-rule);border-radius:var(--radius-input);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;text-align:center;text-decoration:none}.sw-platform-link>span:last-child{white-space:nowrap}.sw-platform-link:hover{border-color:var(--color-ink);color:var(--color-ink)}.sw-platform-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sw-platform-link:active{transform:translateY(1px)}@media (max-width: 900px){.sw-platform-link{width:auto}}.sw-no-results{border-bottom:var(--rule-hairline);color:var(--color-ink-2);font-size:var(--text-sm);padding:var(--space-md) 0}.crosslinks-list{list-style:none;padding:0;margin:0}.crosslinks-list li{padding:var(--space-xs) 0;border-bottom:var(--rule-hairline);color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.55}.crosslinks-list li:last-child{border-bottom:0}.crosslinks-list a{color:var(--color-ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:3px}.crosslinks-list a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}
