:root{--bg:#0a0b10;--bg-soft:#101320;--card:#14182275;--card-solid:#161a24;--card-2:#232a3a;--border:#262c3a;--border-soft:#1e2431;--text:#edf0f7;--muted:#9aa3b5;--faint:#6b7385;--accent:#7c6cff;--accent-2:#52e0c4;--good:#4fe0a0;--warn:#f0b955;--bad:#f07a7a;--max:1120px;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:radial-gradient(900px 500px at 8% -5%,rgba(124,108,255,.16),transparent 60%),radial-gradient(1000px 620px at 92% -8%,rgba(82,224,196,.12),transparent 55%),var(--bg);background-attachment:fixed;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:rgba(10,11,16,.78);border-bottom:1px solid var(--border-soft)}.site-header .inner{justify-content:space-between;height:64px;gap:16px}.brand,.site-header .inner{display:flex;align-items:center}.brand{gap:10px;font-weight:750;letter-spacing:-.02em;font-size:17px}.brand .mark{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(124,108,255,.4)}.brand .mark svg{width:16px;height:16px;display:block}.nav{display:flex;gap:22px;align-items:center;font-size:14px;color:var(--muted)}.nav a:hover{color:var(--text);text-decoration:none}@media (max-width:640px){.nav a.hide-sm{display:none}}.disclosure{background:linear-gradient(90deg,rgba(124,108,255,.14),rgba(82,224,196,.1));border-bottom:1px solid var(--border-soft);font-size:13px;color:var(--muted)}.disclosure .wrap{padding-top:9px;padding-bottom:9px}.disclosure strong{color:var(--text)}.disclosure a{color:var(--accent-2);font-weight:600}.disclosure .honest-line{display:block;margin-top:3px}.hero{padding:58px 0 26px}.hero h1{font-size:clamp(32px,5.4vw,52px);line-height:1.05;letter-spacing:-.035em;margin:0 0 16px}.hero p.lede{font-size:18.5px;color:var(--muted);max-width:660px;margin:0 0 22px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--accent-2);font-weight:700;margin-bottom:16px}.eyebrow .sep{color:var(--faint);margin:0 8px}.pillrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pill{font-size:12.5px;color:var(--muted);background:var(--card-solid);border:1px solid var(--border);padding:6px 12px;border-radius:999px;transition:border-color .15s,color .15s}a.pill:hover{color:var(--text);text-decoration:none;border-color:#3a425a}.logo-cloud{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:26px}.logo-cloud .cloud-label{font-size:12px;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;margin-right:4px;width:100%;margin-bottom:4px}.wordmark{display:inline-flex;align-items:center;gap:9px;background:var(--card-solid);border:1px solid var(--border);border-radius:999px;padding:5px 15px 5px 6px;transition:border-color .15s,transform .15s,background .15s}.wordmark .wm-name{font-weight:650;font-size:14px;letter-spacing:-.01em}.wordmark:hover,a.wordmark:hover{border-color:color-mix(in srgb,var(--wm-accent) 55%,var(--border));transform:translateY(-2px);text-decoration:none}.logo-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:#fff;flex:none;overflow:hidden}.logo-chip img{display:block;object-fit:contain}.score-ring{display:inline-flex;flex:none}.score-ring,.score-ring-inner{align-items:center;justify-content:center;border-radius:50%}.score-ring-inner{background:var(--card-solid);display:flex;flex-direction:column;line-height:1}.score-ring-num{font-size:18px;font-weight:800;letter-spacing:-.02em}.score-ring-lbl{font-size:9.5px;color:var(--faint);margin-top:1px}section{padding:30px 0}h2{font-size:28px;letter-spacing:-.025em}h2,h3{margin:0 0 6px}h3{font-size:19px;letter-spacing:-.01em}.section-sub{color:var(--muted);margin:0 0 22px;max-width:720px}.grid{display:grid;grid-gap:16px;gap:16px}.rank-list{display:flex;flex-direction:column;gap:14px}.tool-card{display:grid;grid-template-columns:30px 46px 1fr auto;grid-gap:16px;gap:16px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px 18px 19px;transition:border-color .15s ease,transform .15s ease,background .15s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tool-card:hover{border-color:#3a425a;transform:translateY(-2px);background:var(--card-solid);text-decoration:none}.rank-num{font-size:20px;font-weight:800;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.tool-main{min-width:0}.tool-main h3{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:2px}.tool-cat{font-size:12.5px;font-weight:600}.tool-verdict{color:var(--muted);font-size:14.5px;margin:7px 0 0}.tool-best{font-size:13px;color:var(--faint);margin-top:9px}.tool-best b{color:var(--muted);font-weight:600}.score-col{display:flex;align-items:center;justify-content:flex-end}@media (max-width:640px){.tool-card{grid-template-columns:26px 40px 1fr;grid-auto-rows:min-content;padding:16px;gap:12px}.score-col{grid-column:2/4;justify-content:flex-start}}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--card-2);color:var(--muted);font-weight:600}.badge.pub{border-color:rgba(255,92,53,.5);color:#ffb59e;background:rgba(255,92,53,.14)}.badge.free{border-color:rgba(79,224,160,.4);color:var(--good);background:rgba(79,224,160,.1)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}table{border-collapse:collapse;width:100%;font-size:14px;min-width:720px}td,th{text-align:left;padding:13px 15px;border-bottom:1px solid var(--border-soft);vertical-align:middle}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:var(--bg-soft);position:-webkit-sticky;position:sticky;top:0}tbody tr{transition:background .12s}tbody tr:hover{background:rgba(255,255,255,.02)}tbody tr:last-child td{border-bottom:none}td.name{font-weight:650}.td-tool{display:flex;align-items:center;gap:10px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:10px}.detail-title{display:flex;align-items:center;gap:14px;margin:6px 0 12px}.prose p{color:#d6dbe6}.two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:640px){.two-col{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel h4{margin:0 0 10px;font-size:15px}.panel ul{margin:0;padding-left:18px;color:var(--muted)}.panel.pros{border-top:2px solid var(--good)}.panel.cons{border-top:2px solid var(--bad)}.panel.pros ul li::marker{color:var(--good)}.panel.cons ul li::marker{color:var(--bad)}.panel li{margin:6px 0}a.panel:hover{border-color:#3a425a;text-decoration:none;transform:translateY(-2px);transition:transform .15s,border-color .15s}.rubric-bar{display:grid;grid-template-columns:190px 1fr 34px;grid-gap:12px;gap:12px;align-items:center;margin:10px 0;font-size:13.5px}.rubric-bar .track{height:9px;background:var(--card-2);border-radius:999px;overflow:hidden}.rubric-bar .fill{height:100%;border-radius:999px}.rubric-bar .val{text-align:right;color:var(--text);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:560px){.rubric-bar{grid-template-columns:130px 1fr 30px}}.kv{display:grid;grid-template-columns:150px 1fr;grid-gap:8px 16px;gap:8px 16px;font-size:14px}.kv dt{color:var(--faint)}.kv dd{margin:0;color:var(--text)}.cta{display:inline-flex;align-items:center;gap:8px;margin-top:4px;background:linear-gradient(135deg,var(--accent),#6355e6);color:#fff;padding:11px 20px;border-radius:11px;font-weight:650;font-size:14px;border:none;box-shadow:0 6px 18px rgba(124,108,255,.28)}.cta:hover{text-decoration:none;transform:translateY(-1px)}.cta.ghost{background:transparent;border:1px solid var(--border);color:var(--text);box-shadow:none}.cta.ghost:hover{border-color:#3a425a;background:var(--card-solid)}.callout{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:12px;padding:15px 18px;color:var(--muted);font-size:14px}.callout strong{color:var(--text)}.faq details{border:1px solid var(--border);border-radius:12px;padding:2px 18px;margin-bottom:10px;background:var(--card)}.faq summary{cursor:pointer;font-weight:650;list-style:none;position:relative;padding:14px 28px 14px 0}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:4px;top:12px;color:var(--accent-2);font-size:20px;font-weight:400}.faq details[open] summary:after{content:"−"}.faq details[open] summary{border-bottom:1px solid var(--border-soft);margin-bottom:12px}.faq p{color:var(--muted);margin-top:0}.breadcrumb{font-size:13px;color:var(--faint);padding:20px 0 0}.breadcrumb a:hover{color:var(--text)}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.related-card{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:13px 15px;font-size:14px;transition:border-color .15s,transform .15s}.related-card:hover{border-color:#3a425a;transform:translateY(-2px);text-decoration:none}.related-card .rc-body{min-width:0}.related-card .rc-title{font-weight:650}.related-card .rc-sub{font-size:12px;color:var(--faint)}.related-card .arrow{margin-left:auto;color:var(--accent-2)}.site-footer{border-top:1px solid var(--border-soft);margin-top:44px;padding:34px 0 56px;color:var(--muted);font-size:14px}.footer-grid{justify-content:space-between;gap:24px}.footer-grid,.footer-links{display:flex;flex-wrap:wrap}.footer-links{gap:20px}.footer-links a:hover{color:var(--text)}.footer-note{margin-top:20px;font-size:12.5px;color:var(--faint);max-width:760px}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}