:root,:root[data-theme=paper]{--paper: #F2EFE6;--paper-2: #EAE6D9;--paper-3: #FFFFFF;--ink: #0A0A0A;--ink-soft: #1F1F1F;--ink-mute: #545454;--rule: #0A0A0A;--rule-soft: rgba(10, 10, 10, .18);--accent: #C2381E;--accent-hot: #FF4D2E;--highlight: #F0E14B;--ok: #2E7D3A;--shadow-hard: 6px 6px 0 var(--ink);--shadow-soft: 3px 3px 0 var(--ink)}:root[data-theme=dark]{--paper: #0E0D0A;--paper-2: #16140E;--paper-3: #1A1812;--ink: #F2EFE6;--ink-soft: #D9D5C7;--ink-mute: #8E897C;--rule: #F2EFE6;--rule-soft: rgba(242, 239, 230, .2);--accent: #FF6A50;--accent-hot: #FF8B6E;--highlight: #FFE949;--ok: #6ACF95;--shadow-hard: 6px 6px 0 var(--ink);--shadow-soft: 3px 3px 0 var(--ink)}:root{--f-display: "Instrument Serif", "Source Serif 4", Georgia, ui-serif, serif;--f-body: "Space Grotesk", system-ui, -apple-system, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--pad-x: clamp(20px, 4vw, 64px);--pad-y: clamp(56px, 7vw, 112px);--maxw: 1280px;--maxw-narrow: 760px;--ease: cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01";overflow-x:hidden;transition:background .2s var(--ease),color .2s var(--ease)}::selection{background:var(--ink);color:var(--paper)}*{scrollbar-width:thin;scrollbar-color:var(--ink) var(--paper-2)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--paper-2);border-left:1px solid var(--rule-soft)}::-webkit-scrollbar-thumb{background:var(--ink);border:2px solid var(--paper-2)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-corner{background:var(--paper-2)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.container{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);position:relative}.container.narrow{max-width:var(--maxw-narrow)}.section{padding-top:var(--pad-y);padding-bottom:var(--pad-y);position:relative}.section+.section{border-top:1.5px solid var(--rule)}.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);font-weight:500;display:inline-flex;align-items:center;gap:12px;margin-bottom:24px}.eyebrow .num{color:var(--accent)}.eyebrow:after{content:"";display:inline-block;width:32px;height:1.5px;background:var(--ink)}.h-display{font-family:var(--f-display);font-weight:400;font-size:clamp(48px,8vw,112px);letter-spacing:-.02em;line-height:.96;margin:0}.h-display em{color:var(--accent);font-style:italic}.h-section{font-family:var(--f-display);font-weight:400;font-size:clamp(34px,4.5vw,60px);letter-spacing:-.015em;line-height:1.02;margin:0 0 .5em}.h-section em{font-style:italic;color:var(--accent)}.h-card{font-family:var(--f-body);font-weight:600;font-size:17px;letter-spacing:-.005em;line-height:1.25;margin:0}.lede{font-size:clamp(17px,1.4vw,21px);line-height:1.5;color:var(--ink-soft);max-width:60ch;margin:0 0 24px}.mono{font-family:var(--f-mono);font-feature-settings:"tnum"}.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--pad-x);background:var(--paper);border-bottom:1.5px solid var(--ink)}.nav-brand{display:inline-flex;align-items:center;gap:0;font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.nav-brand strong{color:var(--accent);margin-right:6px;font-weight:600}.nav-links{display:flex;gap:24px;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.nav-links a{border-bottom:1.5px solid transparent;padding-bottom:2px;transition:border-color .15s var(--ease)}.nav-links a:hover{border-bottom-color:var(--accent)}.nav-status{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--ink-mute);text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.nav-status:before{content:"";width:8px;height:8px;background:var(--accent);display:inline-block}@media(max-width:720px){.nav{flex-wrap:wrap}.nav-status{display:none}}.hero{padding-top:clamp(48px,5vw,80px)}.hero .meta{display:flex;gap:32px;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-mute);text-transform:uppercase;margin-top:40px;flex-wrap:wrap}.hero .meta strong{color:var(--ink);font-weight:600}.alert-bar{background:var(--highlight);color:#0a0a0a;border:1.5px solid #0A0A0A;border-left-width:8px;padding:22px 26px;margin:56px 0;display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;box-shadow:3px 3px #0a0a0a}.alert-bar .label{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#0a0a0a;font-weight:700;white-space:nowrap}.alert-bar .body{color:#0a0a0a;flex:1;min-width:240px;font-size:15px;line-height:1.5}.alert-bar .body strong{font-weight:700;color:#0a0a0a}.alert-bar a{color:#0a0a0a;font-weight:600;border-bottom:1.5px solid #0A0A0A}.alert-bar a:hover{color:#c2381e;border-bottom-color:#c2381e}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:32px 0}.card{background:var(--paper-3);padding:22px;display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--ink);position:relative;border-left:4px solid var(--ink);border-top:1px solid var(--rule-soft);border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);transition:transform .15s var(--ease),box-shadow .15s var(--ease),border-left-color .15s var(--ease)}.card:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-soft);border-left-color:var(--accent)}.card:focus-visible{outline:none;border-left-color:var(--accent);box-shadow:var(--shadow-hard)}.card .top{display:flex;gap:14px;align-items:flex-start}.card .one-line{color:var(--ink-soft);font-size:14px;margin:0;line-height:1.5}.card .meta-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.logo{width:44px;height:44px;background:var(--paper-2);border:1px solid var(--ink);flex-shrink:0;object-fit:contain;padding:4px;display:block}.logo.placeholder{display:grid;place-items:center;font-family:var(--f-display);font-style:italic;font-weight:400;font-size:22px;color:var(--accent);background:var(--paper-2);letter-spacing:-.02em}.logo.hero{width:96px;height:96px;padding:12px}.logo.hero.placeholder{font-size:44px}.tag{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;border:1px solid var(--ink);color:var(--ink);background:var(--paper-3);font-weight:500}.tag.cat{background:var(--paper-2);border-color:var(--rule-soft);color:var(--ink-mute)}.tag.tier-enterprise{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tag.tier-paid{background:var(--accent);color:#f2efe6;border-color:var(--accent)}.tag.tier-free{background:var(--paper-3);color:var(--ok);border-color:var(--ok)}.tag.tier-freemium{background:var(--paper-3);color:var(--ink)}.list-rows{border-top:1.5px solid var(--ink);margin:32px 0}.list-rows a{display:flex;justify-content:space-between;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule-soft);transition:padding .15s var(--ease),color .15s var(--ease)}.list-rows a:hover{padding-left:16px;color:var(--accent)}.list-rows .label{font-family:var(--f-display);font-weight:400;font-size:clamp(22px,2vw,32px);letter-spacing:-.01em}.list-rows .count{font-family:var(--f-mono);font-size:11px;color:var(--ink-mute);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.crumbs{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:32px}.crumbs a:hover{color:var(--accent)}.crumbs span{margin:0 8px;opacity:.5}.vendor-hero{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap;padding-bottom:48px;border-bottom:1.5px solid var(--ink);margin-bottom:48px}.vendor-hero .head{flex:1;min-width:280px}.vendor-hero h1{font-family:var(--f-display);font-weight:400;font-size:clamp(44px,6vw,80px);letter-spacing:-.02em;line-height:1;margin:0 0 16px}.vendor-hero .tagline{font-family:var(--f-display);font-style:italic;color:var(--ink-soft);font-size:clamp(18px,1.6vw,24px);line-height:1.4;max-width:60ch;margin:0 0 28px}.vendor-hero .actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border:1.5px solid var(--ink);background:var(--paper-3);color:var(--ink);cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease);text-decoration:none;white-space:nowrap}.btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-soft)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.btn .arr{transition:transform .15s var(--ease)}.btn:hover .arr{transform:translate(3px)}.vendor-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:56px}@media(max-width:900px){.vendor-body{grid-template-columns:1fr;gap:40px}}.vendor-body .desc{font-size:17px;line-height:1.7;color:var(--ink)}.vendor-body .desc p{margin:0 0 18px}.vendor-body aside .box{border-top:1.5px solid var(--ink);padding:18px 0}.vendor-body aside .box:first-child{border-top:1.5px solid var(--ink)}.vendor-body aside .box h4{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 12px;font-weight:500}.vendor-body aside .box ul{list-style:none;margin:0;padding:0}.vendor-body aside .box li{padding:5px 0}.vendor-body aside .box a{color:var(--ink);border-bottom:1px solid var(--rule-soft);padding-bottom:1px}.vendor-body aside .box a:hover{color:var(--accent);border-bottom-color:var(--accent)}.theme-toggle{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--ink);background:var(--paper);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer;padding:0;height:30px}.theme-toggle button{border:0;background:transparent;color:var(--ink);font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:6px 12px;height:100%}.theme-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.theme-toggle button+button{border-left:1.5px solid var(--ink)}.cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;z-index:100;background:var(--paper-3);border:1.5px solid var(--ink);box-shadow:var(--shadow-hard);padding:18px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;max-width:880px;margin:0 auto}.cookie-banner .text{flex:1;min-width:240px;font-size:13px;line-height:1.5;color:var(--ink)}.cookie-banner .text strong{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:4px;color:var(--accent)}.cookie-banner .actions{display:flex;gap:8px;flex-wrap:wrap}.cookie-banner button{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);padding:9px 14px;cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}.cookie-banner button:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-soft)}.cookie-banner button.primary{background:var(--ink);color:var(--paper)}footer.site{margin-top:96px;padding:56px 0 40px;border-top:1.5px solid var(--ink);color:var(--ink);font-size:14px}footer.site .row{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}footer.site h5{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 14px;font-weight:500}footer.site ul{list-style:none;padding:0;margin:0}footer.site li{padding:4px 0}footer.site a{color:var(--ink);border-bottom:1px solid transparent}footer.site a:hover{border-bottom-color:var(--ink)}footer.site .legal{margin-top:40px;padding-top:20px;border-top:1px solid var(--rule-soft);font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-mute)}
