:root{--paper:#f6f1e7;--card:#fffdf8;--ink:#1d1a16;--muted:#6b6358;--line:#e2d9c8;--accent:#d6451f;--accent-ink:#fff;--chip:#ece4d2;--serif:"Fraunces", Georgia, serif;--sans:"Instrument Sans", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--paper:#15130f;--card:#1e1b16;--ink:#f1ebdd;--muted:#a39a89;--line:#36312a;--chip:#2a2620;--accent:#ff6a3d;--accent-ink:#15130f}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:400 1rem / 1.6 var(--sans);margin:0}a{color:inherit}.wrap{max-width:68rem;margin:0 auto;padding:2rem 1rem}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:68rem;margin:0 auto;padding:1rem;display:flex}.brand{font:700 1.4rem var(--serif);text-decoration:none}.brand span{color:var(--accent)}.top nav{flex-wrap:wrap;gap:1.25rem;font-weight:500;display:flex}.top nav a{color:var(--muted);text-decoration:none}.top nav a:hover{color:var(--accent)}h1,h2,h3{font-family:var(--serif);margin:0 0 .5rem;line-height:1.15}h1{letter-spacing:-.02em;max-width:20ch;font-size:clamp(2rem,6vw,3.5rem)}h2{justify-content:space-between;align-items:baseline;gap:1rem;margin-top:2rem;font-size:1.5rem;display:flex}.more{font:500 .9rem var(--sans);color:var(--accent);text-decoration:none}.kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .75rem;font-size:.85rem;font-weight:600}.kicker a{text-decoration:none}.lede{color:var(--muted);max-width:46ch;font-size:1.15rem}.grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin-top:1rem;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:1rem;flex-direction:column;gap:.35rem;padding:1.1rem;text-decoration:none;transition:transform .15s,border-color .15s;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card h3{margin:0;font-size:1.2rem}.card p{color:var(--muted);flex:1;margin:0;font-size:.95rem}.cat{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.pill{background:var(--chip);border-radius:99px;align-self:flex-start;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.pill.open-source,.pill.gratis{background:var(--accent);color:var(--accent-ink)}.cats{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.cats a{background:var(--chip);border-radius:.9rem;flex-direction:column;height:100%;padding:.9rem 1rem;text-decoration:none;display:flex}.cats span{color:var(--muted);font-size:.9rem}.chips{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.chips a{background:var(--chip);border-radius:99px;padding:.3rem .8rem;font-size:.9rem;text-decoration:none}.chips a[aria-current]{background:var(--ink);color:var(--paper)}.subscribe{max-width:30rem;margin-top:1.5rem}.subscribe label{margin-bottom:.5rem;font-weight:600;display:block}.subscribe .row{flex-wrap:wrap;gap:.5rem;display:flex}.subscribe input{border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;border-radius:99px;flex:12rem;padding:.7rem 1rem}button,.cta{background:var(--accent);color:var(--accent-ink);font:600 1rem var(--sans);cursor:pointer;border:0;border-radius:99px;padding:.7rem 1.3rem;text-decoration:none;display:inline-block}.msg{color:var(--muted);font-size:.9rem}.tool{max-width:46rem}.tool .lede{max-width:none}.uses li{margin:.3rem 0}.facts{background:var(--card);border:1px solid var(--line);border-radius:1rem;gap:.75rem;margin:1.5rem 0;padding:1rem 1.25rem;display:grid}.facts dt{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem}.facts dd{overflow-wrap:anywhere;margin:0}.tiers{gap:.5rem;padding:0;list-style:none;display:grid}.tiers li{background:var(--card);border:1px solid var(--line);border-radius:.8rem;justify-content:space-between;padding:.8rem 1rem;display:flex}.tiers b{font-family:var(--serif);font-size:1.3rem}.note,.empty{color:var(--muted)}.foot{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}.foot a{color:var(--accent)}.skip{position:absolute;left:-999px}.skip:focus{background:var(--ink);color:var(--paper);z-index:10;border-radius:99px;padding:.5rem 1rem;top:1rem;left:1rem}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.card{transition:none}}
