:root{--ink-50: #effbf3;--ink-100: #d9f5e4;--ink-200: #b3ebc9;--ink-500: #34c96a;--ink-600: #1fa259;--ink-700: #0e7a4f;--ink-800: #0b5e3d;--ink-900: #0f3a26;--ink-950: #0a2418;--text: #2f3833;--head: #111a15;--muted: #66706a;--faint: #8c948f;--rule: #e3e5e1;--rule-strong: #c9cdc8;--paper: #f8f7f3;--flag: #b4321f;--flag-bg: #fdf1ee;--slate-50: var(--paper);--slate-100: #eef0ed;--slate-200: var(--rule);--slate-400: var(--faint);--slate-500: var(--muted);--slate-600: #4d5751;--slate-700: var(--text);--slate-900: var(--head);--radius: 6px;--shadow: 0 1px 2px rgb(17 26 21 / .06), 0 6px 18px rgb(17 26 21 / .05);--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif: "Iowan Old Style", "Charter", "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font);color:var(--text);background:#fff;line-height:1.6;font-size:17px}img{max-width:100%;height:auto}a{color:var(--ink-700);text-underline-offset:3px}a:hover{color:var(--ink-800)}h1,h2,h3,h4{color:var(--head);line-height:1.18;margin:0 0 .55em}h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:-.005em}h1{font-size:clamp(2.1rem,4.6vw,3.4rem)}h2{font-size:clamp(1.6rem,3vw,2.15rem)}h3{font-size:1.08rem;font-weight:650;letter-spacing:-.005em}p{margin:0 0 1em}:focus-visible{outline:3px solid var(--ink-500);outline-offset:2px;border-radius:3px}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}.narrow{width:min(760px,100% - 32px);margin-inline:auto}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.skip{position:absolute;left:-9999px;top:8px;background:#fff;padding:8px 12px;z-index:100}.skip:focus{left:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.68em 1.15em;border-radius:var(--radius);font-weight:600;text-decoration:none;font-size:.95rem;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s;cursor:pointer}.btn-primary{background:var(--ink-700);color:#fff}.btn-primary:hover{background:var(--ink-800);color:#fff}.btn-light{background:#fff;color:var(--ink-900)}.btn-light:hover{background:var(--ink-50);color:var(--ink-900)}.btn-quiet{color:var(--text)}.btn-quiet:hover{color:var(--ink-800);background:var(--paper)}.btn-outline{border-color:var(--rule-strong);color:var(--head);background:#fff}.btn-outline:hover{border-color:var(--head);color:var(--head)}.btn-lg{padding:.8em 1.4em;font-size:1rem}.btn-block{width:100%}.actions{display:flex;flex-wrap:wrap;gap:12px}.arrow-link{font-weight:600;text-decoration:none}.arrow-link:after{content:" →"}.site-header{position:sticky;top:0;z-index:50;background:#fffffff0;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--rule)}.header-row{display:flex;align-items:center;gap:24px;min-height:64px}.brand img{display:block}.site-header nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}.site-header nav a{display:block;padding:8px 12px;border-radius:var(--radius);text-decoration:none;color:var(--text);font-weight:500;font-size:.95rem;white-space:nowrap}.site-header nav a:hover{color:var(--head);background:var(--paper)}.site-header nav a[aria-current=page]{color:var(--head);box-shadow:inset 0 -2px 0 var(--ink-700);border-radius:0}.nav-desktop:is(nav){margin-left:auto}.nav-actions{display:flex;gap:8px;white-space:nowrap}.nav-mobile{display:none;margin-left:auto}.nav-mobile summary{list-style:none;cursor:pointer;padding:10px;display:grid;gap:5px}.nav-mobile summary::-webkit-details-marker{display:none}.nav-mobile summary span{display:block;width:22px;height:2px;background:var(--head);border-radius:2px}.nav-mobile nav{position:fixed;left:0;right:0;top:64px;max-height:calc(100vh - 64px);overflow-y:auto;background:#fff;border-bottom:1px solid var(--rule);padding:12px 16px 20px;box-shadow:var(--shadow)}.nav-mobile nav ul{flex-direction:column;margin-bottom:12px}.nav-mobile nav a[aria-current=page]{box-shadow:inset 2px 0 0 var(--ink-700)}.site-header nav a.btn-primary{color:#fff;background:var(--ink-700);text-align:center;padding:.8em 1em}.site-header nav a.btn-primary:hover{background:var(--ink-800);color:#fff}@media(max-width:1120px){.nav-desktop{display:none!important}.nav-mobile{display:block}}section{padding:clamp(56px,8vw,96px) 0}section+section:not(.section-alt):not(.cta){border-top:1px solid var(--rule)}.hero+section{border-top:0!important}.section-alt{background:var(--paper)}.section-head{max-width:640px;margin:0 0 36px}.section-head p{font-size:1.08rem;color:var(--muted)}.center .section-head,.section-head.center{margin-inline:auto}.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}.split>.section-head{margin:0}@media(max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}.hero{padding:clamp(48px,8vw,96px) 0 clamp(48px,7vw,80px)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,64px);align-items:center}.hero p.lead{font-size:1.18rem;color:var(--slate-600);max-width:34em}.hero-note{margin-top:16px;font-size:.9rem;color:var(--muted)}@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}}.demo{background:#fff;border:1px solid var(--rule-strong);border-radius:var(--radius);box-shadow:var(--shadow);font-size:.85rem;overflow:hidden}.demo-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--paper);font-weight:600;color:var(--head)}.demo-head .muted{font-weight:400;font-size:.8rem}.demo table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.demo th{text-align:left;font-weight:600;color:var(--muted);font-size:.74rem;padding:8px 6px;border-bottom:1px solid var(--rule)}.demo td{padding:8px 6px;border-bottom:1px solid var(--slate-100);color:var(--text)}.demo th:first-child,.demo td:first-child{padding-left:16px;white-space:nowrap}.demo th:last-child,.demo td:last-child{padding-right:16px}.demo th.num,.demo td.num{text-align:right;padding-left:14px;white-space:nowrap}.demo tr.carried td{color:var(--head);font-weight:600}.demo tr.broken td{background:var(--flag-bg)}.demo tr.broken td.num:last-child{color:var(--flag);font-weight:600}.demo-check{display:flex;align-items:center;gap:8px;margin:0;padding:11px 16px;font-size:.8rem;color:var(--ink-800)}.demo-check.flagged{color:var(--flag)}.demo-check svg{width:15px;height:15px;flex:none}@media(max-width:480px){.demo{font-size:.78rem}.demo th,.demo td{padding-left:3px;padding-right:3px}.demo th:first-child,.demo td:first-child{padding-left:12px}.demo th:last-child,.demo td:last-child{padding-right:12px}.demo th.num,.demo td.num{padding-left:8px}.demo th{font-size:.68rem}}.badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--ink-50);color:var(--ink-800);border:1px solid var(--ink-100)}.badge svg{width:14px;height:14px;flex:none}.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong)}.rows>li{border-bottom:1px solid var(--rule)}.rows a.row,.rows .row{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.4fr) auto;gap:8px 24px;align-items:baseline;padding:20px 0;color:inherit;text-decoration:none}.rows a.row h3,.rows .row h3{margin:0;font-size:1.08rem}.rows a.row p,.rows .row p{margin:0;color:var(--muted)}.rows a.row:after{content:"→";color:var(--ink-700);font-weight:600;transition:transform .15s}.rows a.row:hover h3{color:var(--ink-800)}.rows a.row:hover:after{transform:translate(3px)}.rows .row-meta{font-size:.85rem;color:var(--faint);white-space:nowrap}.rows.dated a.row{grid-template-columns:minmax(0,1fr) auto auto}.rows.dated a.row h3{font-weight:600}@media(max-width:700px){.rows a.row,.rows .row{grid-template-columns:minmax(0,1fr) auto}.rows a.row p,.rows .row p{grid-column:1}.rows a.row:after{grid-row:1;grid-column:2}}.terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:0}.terms>div{padding:20px 0;border-top:1px solid var(--rule)}.terms dt{font-weight:650;color:var(--head);margin-bottom:4px}.terms dd{margin:0;color:var(--muted)}.terms.one{grid-template-columns:minmax(0,1fr)}@media(max-width:700px){.terms{grid-template-columns:minmax(0,1fr)}}.proof-points{list-style:none;padding:0;margin:24px 0 0}.proof-points li{padding:14px 0 14px 30px;border-top:1px solid var(--rule);position:relative}.proof-points li:before{content:"";position:absolute;left:2px;top:1.25em;width:14px;height:2px;background:var(--ink-700)}.proof-points strong{color:var(--head)}.steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:0;margin:0}.steps li{counter-increment:step;border-top:2px solid var(--head);padding-top:16px}.steps li:before{content:counter(step,decimal-leading-zero);display:block;font-family:var(--serif);font-size:1.35rem;color:var(--ink-700);margin-bottom:6px}.steps h3{margin-bottom:.35em}.steps p{color:var(--muted);margin:0}@media(max-width:760px){.steps{grid-template-columns:minmax(0,1fr)}}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.card{background:#fff;border:1px solid var(--rule);border-radius:var(--radius);padding:24px}.card h3{margin-bottom:.4em}.card p:last-child{margin-bottom:0}.card-link{text-decoration:none;color:inherit;display:block;transition:border-color .15s}.card-link:hover{border-color:var(--rule-strong);color:inherit}.icon{width:36px;height:36px;border-radius:var(--radius);background:var(--ink-50);color:var(--ink-700);display:grid;place-items:center;margin-bottom:12px}.icon svg{width:20px;height:20px}.ticks{list-style:none;padding:0;margin:0 0 1em}.ticks li{position:relative;padding-left:26px;margin-bottom:8px}.ticks li:before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7a4f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat}.facts{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule-strong)}.facts li{padding:12px 0 12px 26px;border-bottom:1px solid var(--rule);position:relative}.facts li:before{content:"";position:absolute;left:0;top:1.05em;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7a4f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}@media(max-width:900px){.plans{grid-template-columns:minmax(0,1fr)}}.plan{display:flex;flex-direction:column}.plan.featured{border:2px solid var(--head)}.plan h2{font-family:var(--font);font-weight:650}.price{font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--head);margin-bottom:.2em}.price small{font-family:var(--font);font-size:1rem;font-weight:400;color:var(--muted)}.plan .ticks{flex:1}table.rates{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--rule);font-variant-numeric:tabular-nums}table.rates th,table.rates td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--rule)}table.rates th{background:var(--paper);font-size:.85rem;color:var(--slate-600)}.faq details{border-bottom:1px solid var(--rule);padding:16px 0}.faq details:first-of-type{border-top:1px solid var(--rule-strong)}.faq summary{cursor:pointer;font-weight:600;color:var(--head);list-style:none;display:flex;justify-content:space-between;gap:16px}.faq summary:after{content:"+";color:var(--ink-700);font-size:1.3rem;line-height:1}.faq details[open] summary:after{content:"−"}.faq summary::-webkit-details-marker{display:none}.faq details p{margin:12px 0 0;color:var(--slate-600);max-width:42em}.cta{background:var(--ink-950);color:#c9ddd1}.cta-row{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:end;justify-content:space-between}.cta h2{color:#fff;margin-bottom:.3em}.cta p{margin:0;max-width:36em}.btn-ghost{color:#fff;border-color:#ffffff59}.btn-ghost:hover{color:#fff;border-color:#fff}.prose{font-size:1.05rem}.prose h2{margin-top:1.8em}.prose h3,.prose h4{margin-top:1.5em}.prose img{border-radius:var(--radius);margin:1em 0}.prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.95rem}.prose th,.prose td{border:1px solid var(--rule);padding:8px 10px;text-align:left}.prose blockquote{border-left:3px solid var(--ink-700);margin:1.5em 0;padding:.2em 1em;color:var(--slate-600)}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin-bottom:.4em}.article-head{padding:56px 0 16px}.article-meta{color:var(--muted);font-size:.9rem}.breadcrumbs{font-size:.85rem;color:var(--muted);margin-bottom:18px}.breadcrumbs a{color:var(--muted)}.post-card img{aspect-ratio:2 / 1;object-fit:cover;border-radius:var(--radius);margin-bottom:14px;background:var(--paper);border:1px solid var(--rule)}.post-card h3,.post-card h2{font-size:1.08rem}.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}.posts a{color:inherit;text-decoration:none}.posts a:hover h2{color:var(--ink-800)}@media(max-width:900px){.posts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.posts{grid-template-columns:minmax(0,1fr)}}.site-footer{background:var(--ink-950);color:#b6cdbf;padding:56px 0 28px;margin-top:0;border-top:1px solid rgb(255 255 255 / .06)}.site-footer a{color:#d6efe0;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:#fff}.site-footer h2{font-family:var(--font);color:#fff;font-size:.9rem;font-weight:600;margin-bottom:12px}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin-bottom:8px}.site-footer .muted{color:#8fb3a0}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-logo{filter:brightness(0) invert(1);opacity:.9;margin-bottom:12px}.legal-line{border-top:1px solid rgb(255 255 255 / .08);margin-top:32px;padding-top:20px}
