:root{--bg:#f7f8fa;--surface:#fff;--ink:#0b1220;--ink-soft:#475467;--ink-faint:#98a2b3;--line:#e6e8ee;--line-strong:#d3d8e0;--brand:#1c4ed8;--brand-ink:#15369e;--yes-bg:#e7f6ee;--yes-ink:#08613a;--yes-line:#a8e0c2;--no-bg:#fdecec;--no-ink:#9f1d1d;--no-line:#f3bcbc;--maybe-bg:#fef5e3;--maybe-ink:#8a5400;--maybe-line:#f3d79b;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--radius:12px;--shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);--maxw:1080px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;letter-spacing:-.02em;margin:0}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.85);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.site-header .wrap{justify-content:space-between;height:60px;gap:16px}.brand,.site-header .wrap{display:flex;align-items:center}.brand{gap:10px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-size:17px}.brand:hover{text-decoration:none}.brand .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--brand),#4f7bf0);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:800}.nav-links{display:flex;gap:18px;font-size:14px;font-weight:500}.nav-links,.nav-links a{color:var(--ink-soft)}.site-footer{border-top:1px solid var(--line);margin-top:64px;padding:28px 0 48px;color:var(--ink-faint);font-size:13px}.site-footer .disclaimer{max-width:720px;margin-bottom:12px;line-height:1.6}.hero{padding:56px 0 28px;text-align:center}.hero h1{font-size:clamp(30px,5vw,46px);margin-bottom:14px}.hero p.lede{font-size:18px;color:var(--ink-soft);max-width:640px;margin:0 auto}.hero .stat{margin-top:16px;font-size:13px;color:var(--ink-faint);font-family:var(--mono)}.search-box{margin:28px auto 8px;max-width:560px;position:relative}.search-box input{width:100%;padding:14px 16px 14px 44px;font-size:16px;font-family:var(--sans);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--ink);outline:none}.search-box input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(28,78,216,.12)}.search-box .icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px 0 4px}.chip{font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);cursor:pointer;font-weight:500;transition:background .12s ease,color .12s ease,border-color .12s ease}.chip:hover{border-color:var(--brand);color:var(--brand)}.chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.result-count{text-align:center;font-size:13px;color:var(--ink-faint);margin:6px 0 20px;font-family:var(--mono)}.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px;padding-bottom:24px}.vendor-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.vendor-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 14px rgba(16,24,40,.1);border-color:var(--line-strong)}.vendor-card .vc-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.vendor-card .vc-name{font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.01em}.vendor-card .vc-cat{font-size:12px;color:var(--ink-faint);margin-top:2px}.vendor-card .vc-badges{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap}.no-results{text-align:center;color:var(--ink-faint);padding:48px 0}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.yes{background:var(--yes-bg);color:var(--yes-ink);border-color:var(--yes-line)}.badge.yes .dot{background:var(--yes-ink)}.badge.no{background:var(--no-bg);color:var(--no-ink);border-color:var(--no-line)}.badge.no .dot{background:var(--no-ink)}.badge.maybe{background:var(--maybe-bg);color:var(--maybe-ink);border-color:var(--maybe-line)}.badge.maybe .dot{background:var(--maybe-ink)}.breadcrumb{font-size:13px;color:var(--ink-faint);padding:22px 0 0}.breadcrumb a{color:var(--ink-soft)}.vendor-hero{padding:14px 0 8px}.vendor-hero h1{font-size:clamp(26px,4vw,38px);margin-bottom:6px}.vendor-hero .cat{color:var(--ink-faint);font-size:14px}.verdict-row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.answer-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);margin:8px 0 24px}.answer-card.tone-yes{border-left-color:var(--yes-ink)}.answer-card.tone-no{border-left-color:var(--no-ink)}.answer-card.tone-maybe{border-left-color:var(--maybe-ink)}.answer-card .a-head{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:700;margin-bottom:6px}.answer-card .a-body{font-size:19px;font-weight:600;letter-spacing:-.01em}.answer-card .a-detail{font-size:15px;color:var(--ink-soft);margin-top:8px;font-weight:400}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin:8px 0 28px}.fact{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.fact .f-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700}.fact .f-value{font-size:15px;margin-top:6px;color:var(--ink)}.fact .f-value a{word-break:break-word}.section-title{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700;margin:28px 0 12px}.sources{display:flex;flex-direction:column;gap:10px}.source-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;box-shadow:var(--shadow)}.source-item .s-title{font-weight:600;font-size:15px}.source-item .s-url{font-family:var(--mono);font-size:12px;color:var(--ink-faint);word-break:break-all;margin-top:2px}.source-item .s-meta{display:flex;gap:14px;margin-top:8px;font-size:12.5px;color:var(--ink-soft);flex-wrap:wrap}.source-item .s-meta .s-date{font-family:var(--mono)}.verify-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#eef2fb;border:1px solid #d6e0fa;color:var(--brand-ink);border-radius:var(--radius);padding:12px 16px;font-size:13.5px;margin:8px 0 4px}.verify-bar .vb-date{font-family:var(--mono);font-weight:700}.notice{background:#fff8ec;border:1px solid var(--maybe-line);color:var(--maybe-ink);border-radius:var(--radius);padding:12px 16px;font-size:13px;margin-top:16px;line-height:1.6}.confidence-tag{font-size:11px;font-family:var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.related{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;gap:12px}.related a{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;box-shadow:var(--shadow)}.related a:hover{text-decoration:none;border-color:var(--line-strong)}.related a .r-name{font-weight:600;color:var(--ink);font-size:14px}.related a .r-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.more-link{margin:18px 0 4px;font-size:14px}.faq{display:flex;flex-direction:column;gap:8px}.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px;box-shadow:var(--shadow)}.faq-item .faq-q{font-weight:600;font-size:15px;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.faq-item .faq-q::-webkit-details-marker{display:none}.faq-item .faq-q:after{content:"+";color:var(--ink-faint);font-size:18px;line-height:1;flex:none}.faq-item[open] .faq-q:after{content:"–"}.faq-item .faq-a{margin-top:10px;font-size:14px;color:var(--ink-soft);line-height:1.6}.howto{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.howto.tone-yes{border-left-color:var(--yes-ink)}.howto.tone-no{border-left-color:var(--no-ink)}.howto.tone-maybe{border-left-color:var(--maybe-ink)}.howto .howto-summary{margin:0 0 14px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.howto-mech{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;background:#eef2fb;border:1px solid #d6e0fa;border-radius:999px;padding:5px 12px 5px 10px}.howto-mech .hm-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--brand-ink);opacity:.7}.howto-mech .hm-value{font-size:13px;font-weight:600;color:var(--brand-ink)}.howto-steps{list-style:none;counter-reset:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.howto-step{display:flex;gap:14px;align-items:flex-start}.howto-step .step-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:700;font-family:var(--mono);display:flex;align-items:center;justify-content:center;margin-top:1px}.howto-step .step-name{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:3px}.howto-step .step-text{font-size:14px;color:var(--ink-soft);line-height:1.6}.howto-noavail p{font-size:15px;color:var(--ink-soft);line-height:1.6;margin:0 0 10px}.howto-noavail .howto-alt{font-size:14px}.howto-gotchas{margin-top:18px;background:#fff8ec;border:1px solid var(--maybe-line);border-radius:10px;padding:12px 16px}.howto-gotchas .hg-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--maybe-ink);margin-bottom:8px}.howto-gotchas ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}.howto-gotchas .gotcha{font-size:13.5px;color:var(--maybe-ink);line-height:1.55}.howto-verify{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-faint);line-height:1.6}.howto-verify .vb-date{font-family:var(--mono);font-weight:700;color:var(--ink-soft)}.dir-group{margin-bottom:8px}.tier-table{display:flex;flex-direction:column;gap:10px;margin:8px 0 28px}.tier-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;grid-gap:8px 14px;gap:8px 14px;align-items:start}.tier-row .t-name{font-weight:700;font-size:15px;color:var(--ink)}.tier-row .t-detail{grid-column:1/-1;font-size:14px;color:var(--ink-soft);line-height:1.55}.tier-row .t-badge{justify-self:end}.subnav{font-size:13px;color:var(--ink-faint);margin:2px 0 10px}.hub-table-wrap{margin:18px 0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow-x:auto;-webkit-overflow-scrolling:touch}.hub-table{width:100%;border-collapse:collapse;font-size:14px;min-width:720px}.hub-table thead th{text-align:left;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);white-space:nowrap;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--bg)}.hub-table tbody td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink-soft);line-height:1.5}.hub-table tbody tr:last-child td{border-bottom:0}.hub-table tbody tr:hover{background:rgba(28,78,216,.025)}.hub-table .c-rank{width:40px;font-family:var(--mono);font-size:13px;color:var(--ink-faint);text-align:center}.hub-table .c-tool{white-space:nowrap}.hub-table .ht-name{display:block;font-weight:700;font-size:15px;color:var(--ink)}.hub-table .ht-name:hover{color:var(--brand)}.hub-table .ht-vendor{display:block;font-size:12px;color:var(--ink-faint);margin-top:1px}.hub-table .c-nuance{min-width:200px;max-width:280px;font-size:13px;white-space:normal}.hub-table .c-date{font-family:var(--mono);font-size:12.5px;color:var(--ink-faint);white-space:nowrap}.cmp-table{display:flex;flex-direction:column;gap:12px;margin:10px 0 8px}.cmp-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--line-strong)}.cmp-row.tone-yes{border-left-color:var(--yes-ink)}.cmp-row.tone-no{border-left-color:var(--no-ink)}.cmp-row.tone-maybe{border-left-color:var(--maybe-ink)}.cmp-head{justify-content:space-between;align-items:flex-start;gap:12px}.cmp-head,.cmp-id{display:flex;flex-wrap:wrap}.cmp-id{align-items:baseline;gap:10px}.cmp-name{font-weight:700;font-size:18px;color:var(--ink);letter-spacing:-.01em}.cmp-name:hover{color:var(--brand)}.cmp-tier{font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 10px;white-space:nowrap}.cmp-badges{display:flex;gap:7px;flex-wrap:wrap}.cmp-detail{font-size:14px;color:var(--ink-soft);line-height:1.6;margin:12px 0 0}.cmp-suite{font-size:13px;color:var(--ink-soft);line-height:1.55;margin:8px 0 0;padding-left:12px;border-left:2px solid var(--line);font-style:italic}.cmp-foot{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12.5px}.cmp-foot .cmp-src{font-family:var(--mono);font-size:12px}.cmp-foot .cmp-meta,.cmp-foot .cmp-src-none{color:var(--ink-faint)}.cmp-foot .cmp-meta{font-family:var(--mono)}.cmp-foot .cmp-more{margin-left:auto;font-weight:600;font-size:13px}.disclaimer-inline{background:#fff8ec;border:1px solid var(--maybe-line);color:var(--maybe-ink);border-radius:var(--radius);padding:12px 16px;font-size:13px;margin:16px 0;line-height:1.6}@media (max-width:640px){.nav-links{gap:12px}.hero{padding:40px 0 20px}}.notify{margin:28px 0;background:linear-gradient(180deg,rgba(28,78,216,.045),rgba(28,78,216,0) 60%),var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px 20px}.notify-head{display:flex;align-items:center;gap:10px}.notify-bell{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;background:rgba(28,78,216,.1);color:var(--brand)}.notify-title{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.notify-sub{margin:10px 0 14px;font-size:14px;color:var(--ink-soft);line-height:1.55;max-width:560px}.notify-label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;letter-spacing:.01em}.notify-row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}.notify-input{flex:1 1 240px;min-width:0;padding:11px 14px;font-size:15px;font-family:var(--sans);border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.notify-input::placeholder{color:var(--ink-faint)}.notify-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(28,78,216,.12)}.notify-input[aria-invalid=true]{border-color:var(--no-line);box-shadow:0 0 0 3px rgba(159,29,29,.1)}.notify-input:disabled{opacity:.6}.notify-btn{flex:0 0 auto;padding:11px 18px;font-size:15px;font-weight:600;font-family:var(--sans);color:#fff;background:var(--brand);border:1px solid var(--brand);border-radius:10px;cursor:pointer;white-space:nowrap;transition:background .12s ease,transform .06s ease}.notify-btn:hover{background:var(--brand-ink)}.notify-btn:active{transform:translateY(1px)}.notify-btn:disabled{opacity:.7;cursor:default;transform:none}.notify-fine{margin:10px 0 0;font-size:12px;color:var(--ink-faint);line-height:1.5}.notify-err{color:var(--no-ink);font-weight:500}.notify-done{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;background:var(--yes-bg);border:1px solid var(--yes-line);border-radius:10px;animation:notify-confirm .16s ease-out both}@keyframes notify-confirm{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.notify-done{animation:none}}.notify-done p{margin:0;font-size:14px;color:var(--yes-ink);line-height:1.5;font-weight:500}.notify-check{width:22px;height:22px;flex:none;border-radius:999px;display:grid;place-items:center;background:var(--yes-ink);color:#fff}.notify-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}@media (max-width:640px){.notify-btn{flex:1 1 100%}}