:root{--bg:#FFFFFF;--panel:#FAFAFB;--panel2:#F3F4F7;--line:#EBECF0;--line2:#DDDFE6;--ink:#13151A;--fog:#565C69;--mute:#6B7280;--brand:#4F46E5;--brand-dark:#4338CA;--brand-bg:#EEEFFE;--brand-ink:#3730A3;--up:#128A4B;--up-bg:#E6F5EC;--down:#D23A3A;--down-bg:#FBEBEB;--amber:#8A6D1F;--amber-bg:#FBF3DC;--mono:"JetBrains Mono",monospace;--maxw:1120px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}a{color:inherit;text-decoration:none}.mono,.num{font-variant-numeric:tabular-nums}header.site{border-bottom:.5px solid var(--line);position:sticky;top:0;background:#ffffffd9;backdrop-filter:saturate(180%) blur(16px);z-index:20}.nav{display:flex;align-items:center;gap:18px;height:60px;position:relative}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:16px;letter-spacing:-.01em;white-space:nowrap}.brand .mark{width:28px;height:28px;border-radius:7px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px}.search{flex:1;display:flex;align-items:center;gap:8px;background:var(--panel);border:.5px solid var(--line2);border-radius:9px;padding:0 12px;height:38px;max-width:380px}.search input{border:0;outline:0;background:transparent;font-size:14px;color:var(--ink);width:100%;font-family:inherit}.search i{color:var(--mute);font-size:17px}.nav-r{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--fog);margin-left:auto}.nav-r a:hover{color:var(--ink)}.nav-r a.on{color:var(--brand);font-weight:500}.burger{display:none;margin-left:auto;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;cursor:pointer;border-radius:9px}.burger span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .22s,opacity .22s}.burger:hover{background:var(--panel)}@media(max-width:920px){.burger{display:flex}.nav-r{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;margin-left:0;background:#fffffffa;backdrop-filter:saturate(180%) blur(16px);border-bottom:.5px solid var(--line);box-shadow:0 10px 30px -14px #13151a24;padding:6px 0;font-size:15px;border-radius:0 0 14px 14px}.nav-toggle:checked~.nav-r{display:flex}.nav-r a{padding:13px 8px;border-bottom:.5px solid var(--line)}.nav-r a:last-child{border-bottom:0}.nav-toggle:checked~.burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle:checked~.burger span:nth-child(2){opacity:0}.nav-toggle:checked~.burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}}.btn{display:inline-block;background:var(--brand);color:#fff;font-size:15px;font-weight:500;padding:12px 26px;border-radius:980px;transition:background .2s}.btn:hover{background:var(--brand-dark)}.btn-ghost{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--ink);border:1px solid var(--line2);font-size:14px;font-weight:600;padding:11px 22px;border-radius:8px;transition:border-color .2s}.btn-ghost:hover{border-color:var(--ink)}.link{color:var(--brand);font-size:14px;font-weight:500}section{padding:34px 0}.kick{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}h1{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1.08}h2{font-size:22px;font-weight:600;letter-spacing:-.02em}.sub{font-size:17px;color:var(--fog);margin-top:14px;max-width:58ch;line-height:1.55}.label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--line);border:.5px solid var(--line);border-radius:12px;overflow:hidden;margin:22px 0}.stat{background:var(--bg);padding:14px 16px}.stat .l{font-size:12px;color:var(--fog)}.stat .v{font-size:20px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:3px}.stat .v.hi{color:var(--brand)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip{font-size:13px;color:var(--fog);background:var(--panel);border:.5px solid var(--line2);padding:6px 13px;border-radius:980px;cursor:pointer;transition:all .15s}.chip:hover{border-color:var(--mute)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.vtoggle{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fog);cursor:pointer;user-select:none}.sw{width:36px;height:20px;border-radius:980px;background:var(--line2);position:relative;transition:background .18s}.sw:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .18s}.vtoggle.on .sw{background:var(--brand)}.vtoggle.on .sw:after{transform:translate(16px)}.tbl{border:.5px solid var(--line);border-radius:12px;overflow:hidden}table.data{width:100%;border-collapse:collapse}table.data thead th{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);text-align:left;padding:12px 16px;background:var(--panel);border-bottom:.5px solid var(--line);cursor:pointer;white-space:nowrap;user-select:none}table.data thead th.r{text-align:right}table.data thead th.c{text-align:center}table.data thead th .ci{font-size:13px;opacity:0;margin-left:3px;vertical-align:-2px}table.data thead th.sorted .ci{opacity:1;color:var(--brand)}table.data tbody td{padding:13px 16px;font-size:15px;border-bottom:.5px solid var(--line)}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover{background:var(--panel)}td.r{text-align:right}td.c{text-align:center}.rank{color:var(--mute);font-size:12px;font-variant-numeric:tabular-nums}.pname{font-weight:600}.cat{display:inline-block;font-size:11px;color:var(--fog);background:var(--panel2);padding:2px 8px;border-radius:5px;margin-top:3px}.best{font-weight:600;color:var(--brand);font-variant-numeric:tabular-nums}.range{font-size:13px;color:var(--fog);font-variant-numeric:tabular-nums}.delta{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:2px;padding:2px 7px;border-radius:6px}.delta.up{color:var(--up);background:var(--up-bg)}.delta.down{color:var(--down);background:var(--down-bg)}.vpill{font-size:12px;font-weight:500;color:var(--brand-dark);background:var(--brand-bg);padding:2px 8px;border-radius:980px;display:inline-flex;align-items:center;gap:4px}.vchk{color:var(--up);font-size:15px}.go{color:var(--brand);font-size:13px;font-weight:500}.code{font-family:var(--mono);font-size:12px;color:var(--fog);background:var(--panel2);padding:3px 8px;border-radius:5px}.stars{color:var(--amber);font-size:13px;letter-spacing:1px}.trust{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;padding:26px 0;margin-top:26px;border-top:.5px solid var(--line);font-size:13px;color:var(--fog)}.trust span{display:inline-flex;align-items:center;gap:7px}.trust i{color:var(--brand);font-size:16px}footer.site{border-top:.5px solid var(--line);padding:26px 0 40px;margin-top:20px;color:var(--mute);font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:6px 0 12px;gap:12px}.crumb{font-size:12px;color:var(--mute);margin:26px 0 14px}.crumb a:hover{color:var(--brand)}.doc{max-width:720px;padding:34px 22px 60px}.doc h1{margin-bottom:6px}.doc h2{font-size:19px;font-weight:600;letter-spacing:-.01em;margin:30px 0 10px}.doc p{font-size:15px;line-height:1.7;color:#26282e;margin-bottom:14px}.doc ul{margin:0 0 14px 22px;font-size:15px;line-height:1.7;color:#26282e}.doc li{margin-bottom:6px}.doc strong{font-weight:600;color:var(--ink)}.doc a{color:var(--brand);font-weight:500}.faq{margin:34px 0 10px}.faq h2{margin-bottom:14px}.faq details{border:.5px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--bg)}.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;font-size:15px;font-weight:600;letter-spacing:-.01em}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-size:18px;font-weight:400;color:var(--mute);transition:transform .18s}.faq details[open] summary:after{transform:rotate(45deg);color:var(--brand)}.faq .fa{padding:0 18px 16px;font-size:14px;color:var(--fog);line-height:1.65;max-width:70ch}.faq .fa a{color:var(--brand);font-weight:500}@media(max-width:680px){.hide-sm{display:none}h1{font-size:27px}.wrap{padding:0 16px}.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}table.data{min-width:520px}.toolbar{flex-wrap:wrap}section{padding:30px 0}}.annbar{background:var(--panel);border-bottom:.5px solid var(--line);color:var(--fog);font-size:12px;padding:7px 16px;display:flex;justify-content:space-between;gap:12px;max-width:var(--maxw);margin:0 auto}.annbar b{color:var(--ink);font-weight:600}.annbar .adot{color:var(--brand)}.annbar a{color:var(--brand);font-weight:500}.hero{padding:56px 0 30px}.hero h1{max-width:16ch}.hero h1 .mute{color:var(--mute)}.hero .sub{font-size:18px;max-width:56ch}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--brand);margin-bottom:16px}.eyebrow i{color:var(--brand)}.itile{width:40px;height:40px;border-radius:9px;background:var(--brand-bg);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:8px}.fcard{border:.5px solid var(--line);border-radius:12px;padding:20px;background:#fff;transition:border-color .15s}.fcard:hover{border-color:var(--line2)}.fcard h3{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:-.005em;margin:12px 0 6px}.fcard p{font-size:14px;color:var(--fog);line-height:1.6}.band{background:var(--panel);border-top:.5px solid var(--line);border-bottom:.5px solid var(--line)}.sec-kick{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}.sec-title{font-family:var(--serif);font-size:clamp(24px,3.2vw,34px);font-weight:600;letter-spacing:-.012em;line-height:1.1;max-width:22ch}.sec-sub{font-size:16px;color:var(--fog);margin-top:12px;max-width:60ch;line-height:1.6}.brand{font-size:16px;font-weight:600}.brand .mark{width:30px;height:30px;border-radius:7px}:root{--sand:#FAF7F2;--sand-line:#EDE6D9;--teal:#0F766E;--teal-bg:#E7F4F1;--teal-ink:#115E56;--brand-wash:#F5F5FF;--brand-glow:rgba(79,70,229,.08);--shadow-sm:0 1px 2px rgba(19,21,26,.05);--shadow-md:0 10px 30px -14px rgba(19,21,26,.14);--shadow-brand:0 8px 20px -10px rgba(79,70,229,.35);--r-card:14px;--r-panel:20px}.sec-title,.fcard h3{font-family:Inter,sans-serif}.btn{background:linear-gradient(180deg,#5B52F0 0%,var(--brand) 55%,var(--brand-dark) 100%);box-shadow:var(--shadow-brand);transition:transform .18s,box-shadow .18s,filter .18s}.btn:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 12px 26px -10px #4f46e573}.btn:active{transform:translateY(0)}.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn-ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-wash)}.fcard,.faq details,.tbl{border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.fcard{transition:transform .18s,box-shadow .18s,border-color .18s}.fcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line2)}.fcard:hover .itile{background:var(--brand);color:#fff;transition:all .18s}.stats{border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.stat{padding:18px}.stat .v{font-size:24px;letter-spacing:-.02em}.stat:first-child .v{color:var(--brand)}.stat:nth-child(2) .v{color:var(--teal)}.chip{padding:7px 15px}.chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-wash)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}table.data thead th.sorted{background:var(--brand-wash)}table.data tbody tr{transition:background .12s}table.data tbody tr:hover{background:var(--brand-wash)}.go{opacity:.8;transition:opacity .12s,transform .12s;display:inline-block}tr:hover .go{opacity:1;transform:translate(2px)}section{padding:40px 0}.band{background:var(--sand);border-color:var(--sand-line)}.faq details{transition:border-color .15s,box-shadow .15s}.faq details:hover{border-color:var(--line2)}.faq details[open]{border-color:var(--brand-bg);box-shadow:var(--shadow-md)}.faq details[open] summary{color:var(--brand-dark)}.trust{background:var(--sand);border:.5px solid var(--sand-line)!important;border-radius:var(--r-card);padding:22px 26px;margin-top:34px}.hero-panel{position:relative;overflow:hidden;border-radius:var(--r-panel);border:.5px solid var(--sand-line);background:linear-gradient(135deg,var(--brand-wash) 0%,var(--sand) 46%,#FFFFFF 100%);padding:48px 44px 40px;margin-top:22px}.hero-panel h1{max-width:20ch}.hero-panel .hero-mol{position:absolute;right:-56px;top:-28px;width:460px;height:auto;pointer-events:none;-webkit-mask-image:linear-gradient(to left,#000 52%,transparent 100%);mask-image:linear-gradient(to left,#000 52%,transparent 100%)}@media(max-width:820px){.hero-panel{padding:32px 22px}.hero-panel .hero-mol{opacity:.45;width:320px;right:-90px}}@media(max-width:560px){.hero-panel .hero-mol{display:none}.hero-panel h1{max-width:100%}}[data-acc=teal]{--acc:#0F766E;--acc-bg:#E7F4F1;--acc-ink:#115E56}[data-acc=rose]{--acc:#BE185D;--acc-bg:#FCEEF4;--acc-ink:#9D174D}[data-acc=blue]{--acc:#1D4ED8;--acc-bg:#EAF1FE;--acc-ink:#1E40AF}[data-acc=moss]{--acc:#4D7C0F;--acc-bg:#F1F6E6;--acc-ink:#3F6212}.kick{display:inline-flex;align-items:center;gap:9px}.kick:before{content:"";width:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--brand),var(--teal));flex-shrink:0}.hero-panel:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(79,70,229,.055) 1px,transparent 1px);background-size:22px 22px;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000,transparent 72%);mask-image:linear-gradient(180deg,#000,transparent 72%)}.hero-panel>*{position:relative;z-index:1}.sec-h{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:600;letter-spacing:-.02em}.sec-mark{width:7px;height:22px;border-radius:3px;background:linear-gradient(180deg,var(--brand),var(--teal));display:inline-block;flex-shrink:0}.band-sand{background:var(--sand);border-top:.5px solid var(--sand-line);border-bottom:.5px solid var(--sand-line)}.hero2{display:grid;grid-template-columns:1.12fr .88fr;gap:26px;align-items:center}.hero2-l{min-width:0}.hero2-h{font-size:clamp(28px,3.6vw,40px);line-height:1.07;letter-spacing:-.03em}.hero2-h .hl{color:var(--brand)}.hero2 .sub{margin-top:14px}.hero2-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.hero-art{width:100%;max-width:400px;margin-left:auto}.hero-art svg{width:100%;height:auto;display:block}@media(max-width:820px){.hero2{grid-template-columns:1fr}.hero2-r{display:none}}.newhere{display:flex;align-items:center;gap:12px;margin:20px 0 0;padding:14px 18px;border:.5px solid var(--sand-line);border-radius:var(--r-card);background:linear-gradient(100deg,var(--brand-wash),var(--sand));box-shadow:var(--shadow-sm);font-size:14px;color:var(--fog);transition:border-color .15s,transform .15s}.newhere:hover{border-color:var(--brand);transform:translateY(-1px)}.newhere i{color:var(--brand);font-size:22px;flex-shrink:0}.newhere b{color:var(--ink)}.newhere span:first-of-type{flex:1;min-width:0}.newhere .nh-go{color:var(--brand);font-weight:600;font-size:13px;white-space:nowrap}a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:3px}.idx-hint{font-size:13.5px;color:var(--fog);margin:0 0 12px}.redirect{display:flex;gap:13px;align-items:flex-start;background:var(--teal-bg);border:.5px solid #BFE3D9;border-radius:var(--r-card);padding:18px 20px;margin:20px 0;font-size:15px;color:var(--teal-ink);line-height:1.62}.redirect i{color:var(--teal);font-size:23px;flex-shrink:0;margin-top:1px}.redirect b{color:var(--teal-ink)}.redirect a{color:var(--teal-ink);font-weight:600;text-decoration:underline}.thbridge{display:flex;gap:12px;align-items:flex-start;background:var(--teal-bg);border:.5px solid #BFE3D9;border-radius:var(--r-card);padding:16px 18px;margin:0 0 20px;font-size:14.5px;color:var(--teal-ink);line-height:1.55}.thbridge i{color:var(--teal);font-size:20px;flex-shrink:0;margin-top:1px}.thbridge b{color:var(--teal-ink)}.previewbar{display:flex;gap:11px;align-items:flex-start;background:var(--amber-bg);border:.5px solid #E7D9A8;border-radius:var(--r-card);padding:14px 17px;margin:16px 0;font-size:14.5px;color:#6b520f;line-height:1.55}.previewbar i{font-size:20px;flex-shrink:0;margin-top:1px}.previewbar b{color:#6b520f}.redflags{border:.5px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm);padding:22px 24px;margin:20px 0}.redflags h2{font-size:19px;margin-bottom:14px}.redflags ol{list-style:none;counter-reset:rf;display:grid;gap:13px}.redflags li{counter-increment:rf;position:relative;padding-left:46px;font-size:16px;line-height:1.5;color:var(--fog)}.redflags li:before{content:counter(rf);position:absolute;left:0;top:-1px;width:31px;height:31px;border-radius:9px;background:var(--down-bg);color:var(--down);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}.redflags li b{color:var(--ink)}.doc-note{background:var(--brand-wash);border:.5px solid var(--sand-line);border-radius:12px;padding:13px 16px;margin:14px 0 4px;font-size:14px;color:var(--fog);line-height:1.55}.doc-note b{color:var(--ink)}.fpcta{display:flex;align-items:center;gap:14px;margin:18px 0 4px;padding:18px 20px;border:.5px solid var(--sand-line);border-radius:var(--r-panel);background:linear-gradient(120deg,var(--brand-wash),var(--sand));box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s}.fpcta:hover{border-color:var(--brand);transform:translateY(-1px)}.fpcta-i{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:23px;flex-shrink:0}.fpcta-t{flex:1;min-width:0;font-size:15px;color:var(--fog);line-height:1.5}.fpcta-t b{color:var(--ink)}.fpcta-go{color:var(--brand);font-weight:600;font-size:14.5px;white-space:nowrap}@media(max-width:600px){.fpcta{flex-wrap:wrap}.fpcta-go{width:100%}}@media(max-width:680px){.chip{padding:9px 15px;font-size:14px}table.data tbody td .go{display:inline-block;padding:6px 2px}.nav-r a{padding:14px 8px}}.nav-vendor[data-astro-cid-3ef6ksr2]{font-size:12.5px;opacity:.75;border:.5px solid var(--line);border-radius:999px;padding:3px 11px;margin-left:6px}.nav-vendor[data-astro-cid-3ef6ksr2]:hover{opacity:1}footer[data-astro-cid-sz7xmlte].site{display:block}.fgrid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:26px;padding-bottom:22px}@media(max-width:720px){.fgrid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}}@media(max-width:460px){.fgrid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr}}.fbrand[data-astro-cid-sz7xmlte]{display:flex;gap:10px;align-items:flex-start}.fmark[data-astro-cid-sz7xmlte]{width:30px;height:34px;flex-shrink:0}.fname[data-astro-cid-sz7xmlte]{font-weight:600;font-size:14px;color:var(--ink)}.ftag[data-astro-cid-sz7xmlte]{font-size:12px;color:var(--mute);margin-top:4px;max-width:30ch;line-height:1.5}.fcol[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:8px}.fh[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:2px}.fcol[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:13px;color:var(--fog)}.fcol[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--brand)}.flegit[data-astro-cid-sz7xmlte]{font-size:12.5px;color:var(--fog);line-height:1.6;max-width:100ch;border-top:.5px solid var(--line);padding-top:14px;margin-bottom:12px}.fbase[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:.5px solid var(--line);padding-top:16px;font-size:13px;color:var(--fog)}
