*{box-sizing:border-box;margin:0;padding:0;border:0 solid}:root{--ink:#1a1a1a;--black:#000;--gray:#666;--muted:#999;--faint:#c0c0c0;--line:#ccc;--hairline:#f0f0f0;--hover-bg:#fafafa;--icon-bg:#f0f0f0;--mono:"SF Mono",Menlo,Monaco,"Courier New",monospace}html{font-size:16px}body{background:#fff;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img,svg{display:block;vertical-align:middle}.container{max-width:540px;margin:0 auto;padding:48px 24px 64px}h1{font-size:33px;font-weight:700;letter-spacing:-.035em;line-height:1.05;color:var(--black)}.h1-list,.h1-tool{font-size:28px;margin-top:28px}.h1-tool .year{color:var(--line);font-weight:500}.tagline{margin-top:12px;font-size:16px;line-height:1.5;letter-spacing:-.005em;color:var(--ink)}.meta{margin-top:4px;font-size:13px;line-height:1.55;color:var(--muted)}.breadcrumb{font-family:var(--mono);font-size:12px;letter-spacing:-.025em;color:var(--faint)}.breadcrumb a{color:var(--muted);transition:color .15s}.breadcrumb a:hover{color:var(--ink)}.breadcrumb .sep{margin:0 6px;color:#e5e5e5}.hero{display:flex;align-items:center;gap:16px;margin-top:28px}.hero .tagline{margin-top:4px}.hero .h1-tool{margin-top:0}.facts{margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:-.025em;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cta-row{margin-top:12px}.cta{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink);padding:8px 14px;border-radius:999px;background:var(--hairline);transition:background-color .15s}.cta:hover{background:#e8e8e8}.cta .arrow{width:12px;height:12px;color:var(--muted)}.cta-dark{background:var(--black);color:#fff}.cta-dark:hover{background:#333}.cta-dark .arrow{color:#999}.featured-list{display:flex;flex-direction:column;gap:12px}.featured-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--hover-bg);border:1px solid var(--hairline);border-radius:14px;padding:14px 18px}.featured-name{font-size:16px}.featured-cta{flex-shrink:0;font-size:13px;padding:7px 13px}.featured-review{color:var(--muted);transition:color .15s}.featured-review:hover{color:var(--ink)}.home-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:13px;min-width:0}.crumb,.crumb-home{display:inline-flex;align-items:center}.crumb-home{gap:6px}.cta-submit{flex-shrink:0;margin-top:6px;font-size:13px;padding:7px 13px}.sponsor-fab{position:fixed;bottom:20px;right:20px;z-index:10;display:inline-flex;align-items:baseline;gap:8px;font-size:13px;font-weight:500;color:#fff;background:var(--black);padding:9px 16px;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:transform .15s ease-out,background-color .15s}.sponsor-fab:hover{background:#333;transform:translateY(-1px)}.sponsor-fab-note{font-family:var(--mono);font-size:11px;color:#34d98f}@media (max-width:480px){.sponsor-fab{bottom:14px;right:14px;padding:8px 13px}}.slot{cursor:default}.slot-open{border:1px dashed #e0e0e0;margin-bottom:8px}.slot-icon{font-family:var(--mono);font-size:13px;color:var(--faint)}section{margin-top:56px}section:first-of-type{margin-top:64px}.section-label{font-family:var(--mono);font-size:13px;letter-spacing:-.025em;color:var(--faint);margin-bottom:18px}.section-label a{color:inherit;transition:color .15s}.section-label a:hover{color:var(--muted)}.prose{font-size:15px;line-height:1.65;color:#444}.prose+.prose{margin-top:12px}.tool-list{display:flex;flex-direction:column}.tool{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;margin:0 -12px;border-radius:10px;transition:background-color .15s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.tool:hover{background-color:var(--hover-bg)}}.tool-left{gap:14px;min-width:0}.tool-icon,.tool-left{display:flex;align-items:center}.tool-icon{width:36px;height:36px;border-radius:10px;background:var(--icon-bg);flex-shrink:0;overflow:hidden;justify-content:center}.tool-icon img{width:22px;height:22px;object-fit:contain}.tool-icon-lg{width:48px;height:48px;border-radius:12px}.tool-icon-lg img{width:28px;height:28px}.tool-body{min-width:0}.tool-title-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.tool-name{font-size:15px;font-weight:500;color:var(--ink);transition:color .15s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.tool:hover .tool-name{color:var(--black)}}.tool-desc{display:block;margin-top:2px;font-size:14px;color:var(--muted)}.tool-ranked{align-items:flex-start}.tool-ranked .tool-icon{margin-top:2px}.tool-ranked .tool-right{margin-top:8px}.tool-list-ranked .tool+.tool{border-top:1px solid var(--hairline);border-radius:0 0 10px 10px}.rank{font-family:var(--mono);font-size:12px;color:var(--line);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0;width:18px;margin-top:11px}.tool-blurb{margin-top:6px;font-size:14px;line-height:1.6;color:#555;max-width:400px}.badge{font-size:11px;font-weight:500;line-height:1;border-radius:999px;padding:2px 8px;white-space:nowrap}.badge-green{color:#34785a;background:#e8f5ee}.badge-yellow{color:#946800;background:#fef3cd}.badge-gray{color:#888;background:#f0f0f0}.tool-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.tool-price{font-family:var(--mono);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--line)}.arrow{width:14px;height:14px;color:var(--line);flex-shrink:0;transition:color .15s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.tool:hover .arrow{color:var(--muted)}}.features{list-style:none}.features li{font-size:15px;line-height:1.6;color:#444;padding-left:18px;position:relative}.features li+li{margin-top:10px}.features li:before{content:"·";position:absolute;left:2px;color:var(--line);font-weight:700}.features strong{color:var(--ink);font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:13px;color:var(--gray);background:var(--hairline);border-radius:999px;padding:4px 12px;transition:background-color .15s,color .15s}a.chip:hover{background:#e8e8e8;color:var(--ink)}.proscons{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.pc-label{font-family:var(--mono);font-size:12px;letter-spacing:-.025em;margin-bottom:10px}.pc-pro{color:#34785a}.pc-con{color:#946800}.proscons ul{list-style:none}.proscons li{font-size:14px;line-height:1.55;color:#555;padding-left:14px;position:relative}.proscons li+li{margin-top:8px}.proscons li:before{content:"·";position:absolute;left:0;color:var(--line);font-weight:700}@media (max-width:480px){.proscons{grid-template-columns:1fr}}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:-.025em;color:var(--faint);text-align:left;padding:0 8px 10px 0}td{padding:9px 8px 9px 0;border-top:1px solid var(--hairline);color:#444}td a{font-weight:500;color:var(--ink)}td a:hover{color:var(--black);text-decoration:underline;text-underline-offset:3px;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}td.num,th.num{text-align:right;font-family:var(--mono);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.faq{border-top:1px solid var(--hairline)}.faq:last-of-type{border-bottom:1px solid var(--hairline)}.faq summary{font-size:15px;font-weight:500;color:var(--ink);padding:14px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--mono);color:var(--line);flex-shrink:0;transition:transform .15s}.faq[open] summary:after{content:"–"}.faq p{font-size:14px;line-height:1.65;color:#555;padding:0 0 16px;max-width:480px}footer{margin-top:96px;padding-top:32px;border-top:1px solid var(--hairline)}.footer-label{font-family:var(--mono);font-size:12px;letter-spacing:-.025em;color:var(--faint);margin-bottom:10px}.footer-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:24px}.footer-links a{font-size:13px;color:var(--muted);transition:color .15s}.footer-links a:hover{color:var(--ink)}.footer-note{font-family:var(--mono);font-size:12px;letter-spacing:-.025em;color:var(--line)}.footer-note a{color:var(--muted)}@media (min-width:640px){.container{padding-top:72px}h1{font-size:42px}.h1-list,.h1-tool{font-size:32px}}@media (max-width:480px){.tool-price,.tool-ranked .tool-right{display:none}}