:root{--bg:#f8f7f2;--bg-raised:#fcfbf7;--surface:#ffffff;--surface-muted:#f2f0ea;--surface-inverse:#121825;--border:#e8e5df;--border-faint:#f1efea;--border-strong:#dcd8d0;--ink:#0b0d14;--ink-2:#6e717d;--ink-3:#8e9099;--on-dark:#ffffff;--accent:#4a5af0;--accent-pressed:#3a48d4;--accent-soft:#eceffd;--shadow-sm:0 1px 2px rgba(11,13,20,0.04);--shadow-md:0 1px 2px rgba(11,13,20,0.04),0 8px 24px rgba(11,13,20,0.06);--shadow-lg:0 2px 4px rgba(11,13,20,0.04),0 24px 60px rgba(11,13,20,0.12);--r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--shell:1120px;--gutter:clamp(1.25rem,5vw,2.5rem)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:from-font}a:hover{color:var(--accent-pressed)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{margin:0;line-height:1.14;letter-spacing:-.022em;font-weight:700;text-wrap:balance}h1{font-size:clamp(2rem,5vw,2.75rem);letter-spacing:-.03em}p{margin:0 0 1rem;text-wrap:pretty}hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--surface);color:var(--ink);padding:.75rem 1.125rem;border:1px solid var(--border-strong);border-radius:var(--r-md);font-weight:600;box-shadow:var(--shadow-md)}.skip:focus{left:1rem;top:1rem}.masthead{border-bottom:1px solid var(--border);background:rgba(248,247,242,.85);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.masthead>.shell{display:flex;align-items:center;gap:1rem;min-height:64px;flex-wrap:wrap;padding-block:.5rem}.brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;margin-right:auto}.brand img{width:28px;height:28px;border-radius:7px;border:1px solid var(--border)}.masthead nav{display:flex;align-items:center;gap:clamp(.75rem,2.5vw,1.5rem);flex-wrap:wrap}.masthead nav a{color:var(--ink-2);text-decoration:none;font-size:.9375rem;font-weight:500;display:inline-flex;align-items:center;min-height:32px;padding-inline:.125rem}.masthead nav a:hover,.masthead nav a[aria-current=page]{color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8125rem 1.375rem;border-radius:var(--r-md);font-size:1rem;font-weight:600;line-height:1.2;text-decoration:none;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,transform .1s ease}.btn-primary{background:var(--accent);color:var(--on-dark)}.btn-primary:hover{background:var(--accent-pressed);color:var(--on-dark)}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--bg-raised);color:var(--ink);border-color:var(--ink-3)}.btn-pending{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.6875rem 1.375rem;border-radius:var(--r-md);background:var(--surface-inverse);color:var(--on-dark);border:1px solid var(--surface-inverse)}.btn-pending .k{font-size:.6875rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.72);font-weight:600}.btn-pending .v{font-size:1rem;font-weight:600;line-height:1.2}.hero{padding-block:clamp(3.5rem,12vw,8rem) clamp(3rem,8vw,6rem)}.hero h1{font-size:clamp(2.625rem,8.4vw,5rem);line-height:1.02;letter-spacing:-.042em;max-width:15ch;margin-bottom:clamp(1.25rem,3vw,1.75rem)}.lede{font-size:clamp(1.0625rem,2vw,1.25rem);color:var(--ink-2);line-height:1.55;max-width:46ch;margin-bottom:1.5rem}.hero .lede{font-size:clamp(1.125rem,2.3vw,1.4375rem);line-height:1.45;max-width:50ch;margin-bottom:clamp(1.75rem,4vw,2.5rem)}.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.cta-note{font-size:.9375rem;color:var(--ink-2);max-width:44ch;margin:1.5rem 0 0}.device{margin:0;justify-self:center;width:min(340px,100%)}.device .bezel{border-radius:40px;padding:9px;background:linear-gradient(160deg,#d9d6cf,#b9b5ad 45%,#e4e1da);box-shadow:var(--shadow-lg)}.device img{border-radius:32px;background:var(--bg);width:100%}.device figcaption{margin-top:.875rem;font-size:.8125rem;color:var(--ink-2);text-align:center}section{padding-block:clamp(3.5rem,9vw,7rem)}h2{font-size:clamp(1.75rem,4.2vw,2.75rem);letter-spacing:-.032em;line-height:1.08;max-width:20ch;margin-bottom:1.125rem}.section-lede{font-size:clamp(1.0625rem,1.7vw,1.1875rem);color:var(--ink-2);line-height:1.55;max-width:48ch;margin:0 0 clamp(2rem,4.5vw,3rem)}.showcase{background:var(--surface);border-block:1px solid var(--border)}.showcase-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);grid-gap:clamp(2.5rem,7vw,6rem);gap:clamp(2.5rem,7vw,6rem);align-items:center}@media (max-width:880px){.showcase-grid{grid-template-columns:minmax(0,1fr);gap:clamp(2.25rem,6vw,3rem)}}.showcase-copy p{color:var(--ink-2);font-size:1.0625rem;line-height:1.65;max-width:46ch}.showcase-copy p strong{color:var(--ink);font-weight:600}.showcase-copy>:last-child{margin-bottom:0}.quote{margin:clamp(1.75rem,4vw,2.375rem) 0;padding-left:clamp(1rem,2.5vw,1.375rem);border-left:2px solid var(--accent);max-width:36ch}.quote .q-cat{font-size:.75rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--accent-pressed);margin:0 0 .5rem}.quote blockquote{margin:0 0 .5rem;font-size:clamp(1.1875rem,2.2vw,1.4375rem);font-weight:600;line-height:1.25;letter-spacing:-.022em;color:var(--ink);text-wrap:balance}.quote figcaption{color:var(--ink-2);font-size:.9375rem;line-height:1.5}.titlelist{list-style:none;margin:0;padding:0;max-width:54rem;border-top:1px solid var(--border)}.titlelist li{display:grid;grid-template-columns:10rem minmax(0,1fr);grid-gap:0 1.5rem;gap:0 1.5rem;align-items:baseline;padding-block:clamp(.9375rem,2vw,1.1875rem);border-bottom:1px solid var(--border)}.t-cat{font-size:.8125rem;font-weight:600;letter-spacing:.015em;color:var(--ink-2)}.t-title{font-size:clamp(1.0625rem,1.9vw,1.25rem);font-weight:500;letter-spacing:-.016em;line-height:1.35;color:var(--ink);text-wrap:pretty}@media (max-width:640px){.titlelist li{grid-template-columns:minmax(0,1fr);gap:.1875rem}}.afterword{margin:clamp(2.25rem,5vw,3.25rem) 0 0;max-width:58ch;font-size:1.0625rem;line-height:1.7;color:var(--ink-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,1.75rem);box-shadow:var(--shadow-sm)}.card>:last-child{margin-bottom:0}.card.quiet{background:var(--bg-raised);box-shadow:none}.tiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:clamp(1rem,2.5vw,1.5rem);gap:clamp(1rem,2.5vw,1.5rem);align-items:start;max-width:54rem}@media (max-width:760px){.tiers{grid-template-columns:minmax(0,1fr)}}.tier{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2rem)}.tier.pro{border-color:var(--accent)}.tier h3{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:1.25rem}.tier.pro h3{color:var(--accent-pressed)}.tier ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:.6875rem;gap:.6875rem}.tier ul li{position:relative;padding-left:1.5rem;font-size:.9375rem;line-height:1.5;color:var(--ink)}.tier ul li:before{content:"";position:absolute;left:0;top:.42em;width:.6875rem;height:.375rem;border-left:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(-45deg)}.tier.pro ul li:before{border-color:var(--accent)}.tier .prices{list-style:none;margin:1.75rem 0 0;padding-top:.375rem;border-top:1px solid var(--border);display:grid;grid-gap:0;gap:0}.tier .prices li:before{content:none}.prices li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 0;border-bottom:1px solid var(--border-faint)}.prices li:last-child{border-bottom:0;padding-bottom:0}.prices .period{font-weight:600}.prices .amount{font-weight:700;letter-spacing:-.02em}.prices .trial{display:block;width:100%;font-size:.8125rem;color:var(--accent-pressed);font-weight:600}.fineprint{margin-top:1.5rem;font-size:.875rem;color:var(--ink-2);max-width:62ch}.faq{max-width:46rem;border-top:1px solid var(--border)}.faq details{border-bottom:1px solid var(--border)}.faq summary{cursor:pointer;font-weight:600;font-size:1.0625rem;padding:1.125rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";flex:none;width:.5rem;height:.5rem;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);margin-top:-.25rem;transition:transform .15s ease}.faq details[open] summary:after{transform:rotate(-135deg);margin-top:.125rem}.faq details>:not(summary){color:var(--ink-2);font-size:1rem;line-height:1.65;max-width:58ch}.faq details>:last-child{padding-bottom:1.25rem;margin-bottom:0}.close{border-top:1px solid var(--border)}.close h2{max-width:16ch}.close p{color:var(--ink-2);font-size:clamp(1.0625rem,1.7vw,1.1875rem);line-height:1.55;max-width:44ch;margin-bottom:clamp(1.75rem,4vw,2.25rem)}.sitefoot{border-top:1px solid var(--border);background:var(--bg-raised);padding-block:clamp(2rem,4vw,3rem)}.sitefoot .shell{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;align-items:flex-start;justify-content:space-between}.sitefoot nav{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.sitefoot a{font-size:.9375rem;display:inline-flex;align-items:center;min-height:32px}.sitefoot .colophon{font-size:.875rem;color:var(--ink-2);margin:0;max-width:34ch}.prose{max-width:44rem;padding-block:clamp(2.5rem,6vw,4rem)}.prose h1{font-size:clamp(2rem,5vw,2.75rem);margin-bottom:.5rem}.prose .updated{color:var(--ink-2);font-size:.9375rem;margin-bottom:2rem}.prose h2{max-width:none;font-size:clamp(1.3125rem,3vw,1.625rem);margin-top:2.75rem;margin-bottom:.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}.prose h2:first-of-type{border-top:0;padding-top:0}.prose h3{font-size:1.0625rem;margin-top:1.75rem;margin-bottom:.5rem}.prose li,.prose p{color:var(--ink-2)}.prose strong{color:var(--ink);font-weight:600}.prose ul{padding-left:1.25rem;display:grid;grid-gap:.5rem;gap:.5rem;margin:0 0 1rem}.prose .card li,.prose .card p{color:var(--ink)}.prose .lede{max-width:none}.scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);margin-bottom:1.25rem}.prose table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.9375rem}.prose td,.prose th{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border-faint);vertical-align:top;color:var(--ink-2)}.prose thead th{background:var(--surface-muted);color:var(--ink);font-weight:600;white-space:nowrap}.prose tbody tr:last-child td{border-bottom:0}.prose td strong{color:var(--ink)}.mail{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:.6875rem 1.125rem;font-weight:600;text-decoration:none;box-shadow:var(--shadow-sm);word-break:break-word}.mail:hover{background:var(--accent-soft);border-color:var(--accent)}.notfound{max-width:34rem;padding-block:clamp(3.5rem,12vw,7rem)}.notfound .code{font-size:.8125rem;font-weight:700;letter-spacing:.12em;color:var(--accent);margin-bottom:.75rem}.notfound .links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}