:root{--bg:#fff;--bg-soft:#f6f7f9;--card:#fff;--text:#0f172a;--muted:#5b6475;--border:#e4e7ec;--accent:#4d7c0f;--accent-bg:#ecfccb;--accent-strong:#65a30d;--warn-bg:#fff7e6;--warn-text:#8a5300;--warn-border:#f5d48b;--radius:14px;--shadow:0 1px 2px #1018280d, 0 4px 16px #1018280a;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#0b0f17;--bg-soft:#111723;--card:#121926;--text:#e7ebf3;--muted:#97a1b3;--border:#232c3d;--accent:#a3e635;--accent-bg:#1f2a10;--accent-strong:#bef264;--warn-bg:#2a2110;--warn-text:#f5c86b;--warn-border:#4d3b14;--shadow:none}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:3px}a:hover{color:var(--accent)}h1,h2,h3{letter-spacing:-.02em;margin:0 0 .5em;line-height:1.2}h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:800}h2{margin-top:1.6em;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:750}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 1em}.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}.muted{color:var(--muted)}.fine{padding-top:16px;padding-bottom:28px;font-size:.85rem}.skip{position:absolute;left:-999px}.skip:focus{background:var(--card);z-index:10;padding:8px 12px;top:12px;left:12px}.site-header{z-index:5;background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;height:62px;display:flex}.site-header nav{gap:18px;font-size:.95rem;display:flex}.site-header nav a{color:var(--muted);font-weight:550;text-decoration:none}.site-header nav a:hover{color:var(--text)}.wordmark{letter-spacing:-.03em;align-items:center;gap:8px;font-size:1.25rem;font-weight:850;text-decoration:none;display:inline-flex}.wordmark.small{font-size:1.05rem}.wm-mark{background:var(--text);width:28px;height:28px;color:var(--bg);border-radius:8px;place-items:center;font-size:.95rem;display:inline-grid}.wm-for{color:var(--accent)}@media (width<=640px){.site-header nav{gap:12px;font-size:.85rem}.site-header nav a:nth-child(3){display:none}}.hero{padding:72px 0 40px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:.8rem;font-weight:700;display:inline-block}.hero h1{max-width:16ch}.hero .lede{color:var(--muted);max-width:60ch;font-size:clamp(1.1rem,2.2vw,1.3rem)}.hero-points{flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none;display:flex}.hero-points li{background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:.9rem}.btn{background:var(--text);color:var(--bg);font-weight:650;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:11px 18px;text-decoration:none;display:inline-block}.btn:hover{color:var(--bg);opacity:.9}.btn.ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn[disabled]{opacity:.55;cursor:not-allowed}.cta-row{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.banner{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border);border-radius:12px;align-items:flex-start;gap:10px;margin:18px 0;padding:12px 16px;font-size:.95rem;display:flex}.banner strong{color:inherit}.section{padding:36px 0}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-head h2{margin:0}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:20px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}a.card{flex-direction:column;gap:6px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}a.card:hover{border-color:var(--accent);color:inherit;transform:translateY(-2px)}.card .emoji{font-size:1.6rem}.card h3{margin:4px 0 0}.card p{color:var(--muted);margin:0;font-size:.95rem}.card .pick-line{border-top:1px dashed var(--border);margin-top:auto;padding-top:12px;font-size:.9rem}.tag{letter-spacing:.04em;text-transform:uppercase;background:var(--bg-soft);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-block}.tag.pick{background:var(--accent-bg);color:var(--accent);border-color:#0000}.tag.untested{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.release-list{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.release{background:var(--card);border:1px solid var(--border);border-radius:12px;grid-template-columns:110px 1fr auto;align-items:start;gap:14px;padding:14px 16px;display:grid}.release time{font-family:var(--mono);color:var(--muted);padding-top:2px;font-size:.85rem}.release h3{margin:0 0 2px;font-size:1.02rem}.release p{color:var(--muted);margin:0;font-size:.95rem}.release .meta{color:var(--muted);margin-top:6px;font-size:.8rem}@media (width<=640px){.release{grid-template-columns:1fr;gap:6px}}.newsletter{background:var(--bg-soft);border:1px solid var(--border);border-radius:18px;grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;padding:28px;display:grid}.newsletter form{flex-wrap:wrap;gap:8px;display:flex}.newsletter input,.form input,.form textarea,.form select{border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;border-radius:10px;flex:220px;padding:11px 14px}@media (width<=760px){.newsletter{grid-template-columns:1fr}}.ranking-hero{padding:48px 0 8px}.crumbs{color:var(--muted);margin-bottom:14px;font-size:.88rem}.crumbs a{color:var(--muted)}.meta-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;display:flex}.verdict{border-left:4px solid var(--accent);background:var(--accent-bg);border-radius:0 12px 12px 0;margin:20px 0;padding:16px 20px}.verdict p{color:var(--text);margin:0}.tool{margin-top:18px;position:relative}.tool.is-pick{border:2px solid var(--accent)}.tool-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tool-head h3{margin:0;font-size:1.3rem}.rank{font-family:var(--mono);color:var(--muted);margin-right:8px;font-size:.9rem}.tool dl{grid-template-columns:150px 1fr;gap:8px 16px;margin:16px 0 0;font-size:.96rem;display:grid}.tool dt{color:var(--muted);font-weight:600}.tool dd{margin:0}@media (width<=640px){.tool dl{grid-template-columns:1fr;gap:2px}.tool dd{margin-bottom:10px}}.tool .links{flex-wrap:wrap;gap:12px;margin-top:14px;font-size:.9rem;display:flex}.sources{color:var(--muted);margin-top:12px;font-size:.82rem}.sources a{word-break:break-all}.compare{border-collapse:collapse;width:100%;margin-top:16px;font-size:.92rem}.compare th,.compare td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.compare th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:650}.table-wrap{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.prose h2{font-size:1.5rem}.prose ul,.prose ol{padding-left:1.2em}.prose li{margin-bottom:.4em}.form{gap:14px;max-width:560px;display:grid}.form label{gap:6px;font-size:.95rem;font-weight:600;display:grid}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:24px;padding-top:32px;display:flex}.footer-inner p{max-width:46ch;margin-top:10px;font-size:.92rem}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);margin-top:56px}.footer-nav{grid-template-columns:repeat(2,auto);gap:8px 28px;font-size:.95rem;display:grid}.footer-nav a{color:var(--muted);text-decoration:none}.footer-nav a:hover{color:var(--text)}.tag{white-space:nowrap}a.card .tag:not(.pick){align-self:flex-start}@media (width<=640px){.compare th:nth-child(4),.compare td:nth-child(4){display:none}.compare th,.compare td{padding:8px}}
