@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_efc253b3-module__w1i8Da__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_efc253b3-module__w1i8Da__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6c186216202f40aa-s.03emcql08-8t3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/84feb34116826df2-s.0pmc52xmq8tzu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9f3a8f528b429e0d-s.p.3aw7w7yacp2q7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Syne Fallback;src:local(Arial);ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.0%;size-adjust:98.47%}.syne_af852b4d-module__pyMn6q__className{font-family:Syne,Syne Fallback;font-style:normal;font-weight:700}.syne_af852b4d-module__pyMn6q__variable{--font-syne:"Syne", "Syne Fallback"}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
:root{--c-purple:#7b6eff;--c-purple-dim:#7b6eff1f;--c-purple-border:#7b6eff4d;--c-purple-glow:#7b6eff2e;--c-blue:#38bfff;--c-lime:#c7f87a;--c-lime-dim:#a4d455;--c-lime-text:#c7f87a;--c-lime-bg:#c7f87a1a;--c-lime-border:#c7f87a40;--c-hot:#ff8c69;--c-hot-bg:#ff8c691a;--c-hot-border:#ff8c6940;--c-new-bg:#38bfff1a;--c-new-border:#38bfff40;--c-rising:#ffd166;--c-rising-bg:#ffd1661a;--c-rising-border:#ffd16640;--bg-base:#0a0b12;--bg-surface:#0d0e14;--bg-card:#13141f;--bg-elevated:#1a1b2a;--bg-hover:#7b6eff12;--bg-hover-strong:#7b6eff1f;--t-primary:#eeedf8;--t-secondary:#8b8ba8;--t-muted:#55546a;--b-subtle:#ffffff0f;--b-mid:#ffffff1c;--b-strong:#ffffff2e;--overlay-subtle:#ffffff0a;--overlay-hover:#ffffff12;--scrim:#0009;--nav-scroll-bg:#0a0b12d6;--nav-scroll-border:#ffffff1c;--ring-track:#ffffff0f;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:28px;--r-pill:100px;--sh-card:0 2px 16px #00000059;--sh-drop:0 8px 32px #00000073;--sh-glow:0 0 0 1px #7b6eff40, 0 6px 32px #7b6eff1f;--sh-glow-lime:0 0 0 1px #c7f87a33, 0 4px 20px #c7f87a14;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--dur-xs:.1s;--dur-sm:.15s;--dur-md:.22s;--dur-lg:.35s;--nav-h:60px;--ticker-h:28px;--nav-total:88px;--container-max:1280px;--grad-brand:linear-gradient(135deg, var(--c-purple), var(--c-blue));--grad-lime:linear-gradient(135deg, var(--c-lime), #8be800);--grad-card:linear-gradient(160deg, var(--bg-card), var(--bg-elevated))}:root[data-theme=light]{--bg-base:#f4f5f7;--bg-surface:#eceef1;--bg-card:#fff;--bg-elevated:#fff;--bg-hover:#7b6eff12;--bg-hover-strong:#7b6eff1f;--t-primary:#17181f;--t-secondary:#5b5c6b;--t-muted:#8b8c9a;--b-subtle:#11121a12;--b-mid:#11121a1f;--b-strong:#11121a33;--overlay-subtle:#11121a08;--overlay-hover:#11121a0d;--c-lime-text:#3d6a00;--nav-scroll-bg:#ffffffd9;--nav-scroll-border:#11121a1f;--ring-track:#11121a17;--sh-card:0 1px 2px #11121a0a, 0 1px 3px #11121a0f;--sh-drop:0 12px 32px #11121a1f, 0 2px 8px #11121a0f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg-base:#f4f5f7;--bg-surface:#eceef1;--bg-card:#fff;--bg-elevated:#fff;--t-primary:#17181f;--t-secondary:#5b5c6b;--t-muted:#8b8c9a;--b-subtle:#11121a12;--b-mid:#11121a1f;--b-strong:#11121a33;--overlay-subtle:#11121a08;--overlay-hover:#11121a0d;--c-lime-text:#3d6a00;--nav-scroll-bg:#ffffffd9;--nav-scroll-border:#11121a1f;--ring-track:#11121a17}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg-base);color:var(--t-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--nav-total);min-height:100vh;font-family:DM Sans,system-ui,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img,svg{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:Syne,sans-serif;font-weight:700;line-height:1.2}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{max-width:var(--container-max);margin:0 auto;padding:0 32px}.section{padding:64px 0}.btn-primary{border-radius:var(--r-pill);background:var(--grad-brand);color:#fff;white-space:nowrap;transition:opacity var(--dur-sm) ease, transform var(--dur-md) var(--ease-spring), box-shadow var(--dur-sm) ease;align-items:center;gap:7px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;display:inline-flex;box-shadow:0 2px 16px #7b6eff59}.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 24px #7b6eff80}.btn-primary:active{transform:scale(.97)}.btn-primary--full{justify-content:center;width:100%}.btn-ghost{border-radius:var(--r-pill);border:1px solid var(--b-mid);color:var(--t-secondary);transition:background var(--dur-sm), color var(--dur-sm);align-items:center;gap:6px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:14px;display:inline-flex}.btn-ghost:hover{background:var(--bg-hover);color:var(--t-primary)}.tool-badge{border-radius:var(--r-pill);white-space:nowrap;border:1px solid;align-items:center;padding:2px 8px;font-family:DM Sans,sans-serif;font-size:10.5px;font-weight:500;display:inline-flex}.badge--pick{color:var(--c-lime);background:var(--c-lime-bg);border-color:var(--c-lime-border)}.badge--hot{color:var(--c-hot);background:var(--c-hot-bg);border-color:var(--c-hot-border)}.badge--new{color:var(--c-blue);background:var(--c-new-bg);border-color:var(--c-new-border)}.badge--updated{color:var(--c-purple);background:var(--c-purple-dim);border-color:var(--c-purple-border)}.badge--rising{color:var(--c-rising);background:var(--c-rising-bg);border-color:var(--c-rising-border)}.tool-tag{border-radius:var(--r-pill);border:1px solid var(--b-subtle);color:var(--t-muted);transition:background var(--dur-sm), color var(--dur-sm);background:#ffffff0a;padding:3px 9px;font-family:DM Sans,sans-serif;font-size:11px;display:inline-block}.tool-tag:hover{background:var(--bg-hover);color:var(--t-secondary)}.tool-tag--sm{padding:2px 7px;font-size:10.5px}.visit-btn{border-radius:var(--r-pill);border:1px solid var(--c-purple-border);background:var(--c-purple-dim);color:var(--c-purple);white-space:nowrap;transition:background var(--dur-sm), border-color var(--dur-sm), transform var(--dur-sm) var(--ease-spring);align-items:center;gap:5px;padding:6px 14px;font-family:DM Sans,sans-serif;font-size:12.5px;font-weight:500;display:inline-flex}.visit-btn:hover{background:#7b6eff2e;border-color:#7b6eff80;transform:translateY(-1px)}.visit-btn--sm{padding:4px 11px;font-size:11.5px}.pricing-pill{border-radius:var(--r-pill);border:1px solid var(--b-subtle);color:var(--t-muted);background:#ffffff0d;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.icon-action{border-radius:var(--r-md);border:1px solid var(--b-subtle);width:32px;height:32px;color:var(--t-muted);transition:all var(--dur-sm);justify-content:center;align-items:center;display:flex}.icon-action:hover{background:var(--bg-hover);color:var(--t-secondary);border-color:var(--b-mid)}.icon-action.saved{color:var(--c-purple);background:var(--c-purple-dim);border-color:var(--c-purple-border)}.vote-btn{border-radius:var(--r-md);border:1px solid var(--b-subtle);min-width:44px;color:var(--t-muted);transition:all var(--dur-sm);flex-direction:column;align-items:center;gap:3px;padding:8px 10px;font-family:Syne,sans-serif;font-size:12px;font-weight:700;display:flex}.vote-btn:hover{background:var(--bg-hover-strong);color:var(--c-purple);border-color:var(--c-purple-border)}.vote-btn.voted{background:var(--c-purple-dim);color:var(--c-purple);border-color:var(--c-purple-border);transform:scale(1.05)}.vote-sm{border-radius:var(--r-md);border:1px solid var(--b-subtle);color:var(--t-muted);transition:all var(--dur-sm);align-items:center;gap:4px;padding:5px 9px;font-family:Syne,sans-serif;font-size:11.5px;font-weight:700;display:inline-flex}.vote-sm:hover{background:var(--bg-hover);color:var(--c-purple);border-color:var(--c-purple-border)}.vote-sm.voted{background:var(--c-purple-dim);color:var(--c-purple);border-color:var(--c-purple-border)}.load-more-btn{border-radius:var(--r-pill);border:1px solid var(--b-mid);background:var(--bg-card);color:var(--t-secondary);transition:all var(--dur-md) var(--ease-spring);align-items:center;gap:8px;padding:11px 28px;font-family:DM Sans,sans-serif;font-size:14px;display:inline-flex}.load-more-btn:hover{background:var(--bg-hover-strong);color:var(--t-primary);border-color:var(--c-purple-border);transform:translateY(-1px)}.score-ring-wrap{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.score-ring-label{color:var(--t-muted);letter-spacing:.06em;text-transform:uppercase;font-family:DM Sans,sans-serif;font-size:9px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:72px 20px;display:flex}.empty-state__icon{border-radius:var(--r-lg);background:var(--bg-card);border:1px solid var(--b-subtle);width:56px;height:56px;color:var(--t-muted);justify-content:center;align-items:center;display:flex}.empty-state h3{color:var(--t-primary);font-size:18px;font-weight:700}.empty-state p{color:var(--t-secondary);font-size:14px}.empty-state strong{color:var(--t-primary)}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseDot{0%,to{box-shadow:0 0 #c7f87a80}50%{box-shadow:0 0 0 5px #c7f87a00}}@keyframes blobFloat{0%,to{transform:translate(0)}50%{transform:translate(20px,30px)}}@keyframes floatBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}:focus-visible{outline:2px solid var(--c-purple);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.tool-badge,.pricing-pill,.tool-tag{border:1px solid buttontext}.vote-btn.voted,.vote-sm.voted{border:2px solid highlight}}@media print{body{color:#000;background:#fff;padding-top:0}}.loading-spinner{background:var(--bg-base);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.spinner{border:3px solid #7b6eff;border-color:#7b6eff #38bfff #c7f87a #7b6eff1a;border-radius:50%;width:60px;height:60px;animation:.8s cubic-bezier(.68,-.55,.265,1.55) infinite spin}.spinner-dots{gap:12px;display:flex}.spinner-dots .dot{border-radius:50%;width:12px;height:12px;animation:.6s infinite alternate bounce}.spinner-dots .dot:first-child{background:#7b6eff;animation-delay:0s}.spinner-dots .dot:nth-child(2){background:#38bfff;animation-delay:.2s}.spinner-dots .dot:nth-child(3){background:#c7f87a;animation-delay:.4s}.loading-spinner p{color:#0000;background:linear-gradient(135deg,#7b6eff,#38bfff);letter-spacing:.5px;-webkit-background-clip:text;background-clip:text;margin-top:1rem;font-size:.9rem;font-weight:500}.spinner-pulse{background:linear-gradient(135deg,#7b6eff,#38bfff);border-radius:50%;width:50px;height:50px;animation:1.2s ease-in-out infinite pulse;box-shadow:0 0 20px #7b6eff4d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-15px)}}@keyframes pulse{0%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1)}to{opacity:.5;transform:scale(.8)}}.loading-spinner p{animation:2s infinite shimmer;position:relative}@keyframes shimmer{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.gradient-text{background:linear-gradient(135deg,#7b6eff,#38bfff,#c7f87a);color:#0000;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:3s infinite gradientShift}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}
