@font-face{font-family:display;src:url(../media/BricolageGrotesque_latin-s.p.22t2pq7q13m35.woff2)format("woff2");font-display:swap;font-weight:500 800}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:85.96%;descent-override:24.96%;line-gap-override:0.0%;size-adjust:108.19%}.vG0yLW_className{font-family:display,display Fallback}.vG0yLW_variable{--font-display:"display", "display Fallback"}
@font-face{font-family:text;src:url(../media/InstrumentSans_latin-s.p.2bkih7h-l5gjs.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:text Fallback;src:local(Arial);ascent-override:93.97%;descent-override:24.22%;line-gap-override:0.0%;size-adjust:103.22%}.VflKCq_className{font-family:text,text Fallback}.VflKCq_variable{--font-text:"text", "text Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ground:#f3f4ef;--surface:#e8eae2;--surface-2:#dcdfd4;--ink:#121512;--ink-2:#4a5148;--accent:#0b6b47;--accent-hover:#08573a;--on-accent:#fff;--field:#c9ef6b;--on-field:#121512;--code-ground:#e8eae2;--font-d:var(--font-display), "Arial Narrow", system-ui, sans-serif;--font-t:var(--font-text), system-ui, -apple-system, "Segoe UI", sans-serif;--font-c:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--step-0:1.0625rem;--step-s:.9375rem;--step-1:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--step-2:clamp(1.75rem, 1.3rem + 1.8vw, 2.75rem);--step-3:clamp(2.5rem, 1.4rem + 5vw, 5.75rem);--gutter:clamp(1rem, 3vw, 2rem);--max:82rem;--gap-section:clamp(4.5rem, 3rem + 6vw, 9rem);--ease-out:cubic-bezier(.23, 1, .32, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ground:#0e1110;--surface:#181c1a;--surface-2:#232826;--ink:#eceee8;--ink-2:#a6ada5;--accent:#8be3b0;--accent-hover:#a9ecc4;--on-accent:#07130c;--field:#24402f;--on-field:#eceee8;--code-ground:#181c1a}}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-t);font-size:var(--step-0);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-d);letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:700;line-height:1}h1{font-size:var(--step-3);letter-spacing:-.035em;line-height:.95}h2{font-size:var(--step-2);margin-bottom:1.5rem}h3{font-size:var(--step-1);letter-spacing:-.015em;line-height:1.15}p{margin:0 0 1rem}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}::selection{background:var(--field);color:var(--on-field)}code,pre{font-family:var(--font-c)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--gutter);background:var(--accent);color:var(--on-accent);z-index:10;padding:.5rem 1rem;position:absolute;top:-4rem}.skip:focus{top:.5rem}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.muted{color:var(--ink-2)}.lede{font-size:var(--step-1);max-width:40ch;margin-top:1.5rem;line-height:1.45}.site-header-row{justify-content:space-between;align-items:center;gap:1rem;min-height:4.5rem;display:flex}.wordmark{font-family:var(--font-d);letter-spacing:-.04em;font-size:1.5rem;font-weight:800;text-decoration:none}.nav{gap:clamp(1rem,3vw,2.25rem);margin:0;padding:0;list-style:none;display:flex}.nav a{padding-block:.75rem;font-weight:600;text-decoration:none}.btn{background:var(--accent);min-height:3.25rem;color:var(--on-accent);transition:transform .16s var(--ease-out), background-color .16s ease;-webkit-user-select:none;user-select:none;border-radius:0;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{color:var(--on-accent)}@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--accent-hover)}}.btn:active{transform:scale(.97)}.arrow{transition:transform .16s var(--ease-out);display:inline-block}@media (hover:hover) and (pointer:fine){a:hover>.arrow{transform:translate(2px,-2px)}}.store-link,.text-link{color:var(--accent);font-weight:700}.store-link{gap:.3rem;padding-block:.5rem;display:inline-flex}.section{margin-top:var(--gap-section)}.page-head{padding-block:clamp(2rem,6vw,4.5rem) 0}.page-head h1{max-width:18ch}.crumbs ol{font-size:var(--step-s);color:var(--ink-2);flex-wrap:wrap;gap:.25rem .6rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";margin-right:.6rem}.home-hero{align-items:end;gap:clamp(2rem,5vw,4rem);padding-top:clamp(2.5rem,7vw,6rem);display:grid}@media (min-width:64rem){.home-hero{grid-template-columns:1.15fr 1fr}}.home-hero h1{max-width:11ch}.hero-actions{flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2rem;display:flex}.hero-sample{background:var(--field);color:var(--on-field);min-width:0;margin:0;padding:clamp(1.25rem,3vw,2rem)}.hero-sample figcaption{font-size:var(--step-s);margin-bottom:1rem}.hero-sample table{border-collapse:collapse;width:100%;font-size:var(--step-s);font-variant-numeric:tabular-nums}.hero-sample th,.hero-sample td{text-align:left;vertical-align:top;border-top:1px solid color-mix(in srgb, var(--on-field) 18%, transparent);overflow-wrap:anywhere;padding:.55rem 0}.hero-sample th{width:38%;padding-right:1rem;font-weight:600}.platforms{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.platforms a{background:var(--surface);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:1rem;padding:1.1rem 1.25rem;text-decoration:none;transition:background-color .16s;display:grid}@media (hover:hover) and (pointer:fine){.platforms a:hover{background:var(--surface-2);color:inherit}}.platform-mono{background:var(--ink);width:2.75rem;height:2.75rem;color:var(--ground);font-family:var(--font-d);grid-row:span 2;place-items:center;font-size:1.35rem;font-weight:800;display:grid}.platform-name{font-family:var(--font-d);letter-spacing:-.02em;font-size:1.3rem;font-weight:700;line-height:1.1}.platform-count{color:var(--ink-2);font-size:var(--step-s)}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.card{background:var(--surface);flex-direction:column;gap:.75rem;min-width:0;padding:1.5rem;display:flex}.card-title a{text-decoration:none}.card-title a:hover{text-decoration:underline}.card-desc{color:var(--ink-2);font-size:var(--step-s);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.card-facts,.facts{font-size:var(--step-s);font-variant-numeric:tabular-nums;gap:.35rem;margin:0;display:grid}.card-facts div,.facts div{grid-template-columns:5.5rem 1fr;gap:.75rem;display:grid}.card-facts dt,.facts dt{color:var(--ink-2)}.card-facts dd,.facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:600}.card .store-link{margin-top:auto}.filters{gap:1.25rem;margin:2.5rem 0 2rem;display:grid}.filter{border:0;min-width:0;margin:0;padding:0}.filter legend{margin-bottom:.6rem;padding:0;font-weight:700}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip input{opacity:0;width:1px;height:1px;position:absolute}.chip label{background:var(--surface);font-size:var(--step-s);cursor:pointer;transition:background-color .12s ease, transform .12s var(--ease-out);-webkit-user-select:none;user-select:none;padding:.5rem .9rem;font-weight:600;display:inline-block}.chip label:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.chip label:hover{background:var(--surface-2)}}.chip input:checked+label{background:var(--ink);color:var(--ground)}.chip input:focus-visible+label{outline:3px solid var(--accent);outline-offset:2px}.dir-empty{background:var(--surface);padding:2rem 1.5rem;font-weight:600;display:none}.actor-hero{gap:2.5rem;padding-top:clamp(2rem,5vw,4rem);display:grid}@media (min-width:64rem){.actor-hero{grid-template-columns:1.4fr 1fr;align-items:end}}.actor-hero h1{max-width:16ch;font-size:clamp(2.25rem,1.3rem + 4vw,4.75rem)}.actor-hero-panel{background:var(--field);color:var(--on-field);gap:1.5rem;min-width:0;padding:clamp(1.25rem,3vw,2rem);display:grid}.actor-hero-panel .facts dt{color:inherit;opacity:.75}.hero-price{gap:.25rem;margin:0;display:grid}.hero-price-figure{font-family:var(--font-d);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:clamp(2.5rem,2rem + 2vw,3.5rem);font-weight:800;line-height:1}.actor-hero-panel .btn{background:var(--ink);color:var(--ground)}@media (hover:hover) and (pointer:fine){.actor-hero-panel .btn:hover{background:var(--ink);color:var(--ground);opacity:.88}}.mode-nav ul{flex-wrap:wrap;gap:.4rem;margin:0 0 2.5rem;padding:0;list-style:none;display:flex}.mode-nav a{background:var(--surface);font-size:var(--step-s);padding:.45rem .85rem;font-weight:600;text-decoration:none;display:inline-block}.modes{gap:.5rem;display:grid}.mode{background:var(--surface);gap:1.5rem 3rem;min-width:0;padding:clamp(1.25rem,3vw,2rem);scroll-margin-top:1.5rem;display:grid}@media (min-width:64rem){.mode{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}}.mode-head p{max-width:45ch}.mode-head h3{margin-bottom:.75rem}.mode-body{gap:1rem;min-width:0;display:grid}.price{gap:.25rem;margin:1.25rem 0 0;display:grid}.price-figure{font-family:var(--font-d);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}.price-unit{font-family:var(--font-t);font-size:var(--step-s);letter-spacing:0;font-weight:600}.price-sentence{font-size:var(--step-s);color:var(--ink-2)}.table-wrap{overflow-x:auto}.inputs{border-collapse:collapse;width:100%;font-size:var(--step-s)}.inputs th,.inputs td{text-align:left;vertical-align:top;border-bottom:1px solid var(--surface-2);padding:.7rem 1rem .7rem 0}.inputs thead th{color:var(--ink-2);font-weight:600}.inputs tbody th{min-width:12rem;font-weight:400}.input-title{font-weight:700;display:block}.input-desc{color:var(--ink-2);display:block}.req{color:var(--accent);font-weight:600}.ex{overflow-wrap:anywhere;min-width:7rem}.sample{background:var(--ground)}.sample summary,.faq summary{cursor:pointer;padding:.9rem 1rem;font-weight:700;list-style-position:inside}.sample-pre{background:var(--code-ground);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:28rem;margin:0;padding:1rem;font-size:.8125rem;line-height:1.5;overflow:auto}.band{background:var(--ink);color:var(--ground);gap:1rem 3rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.band .store-link{color:var(--ground)}@media (min-width:64rem){.band{grid-template-columns:1fr 1.6fr}}.band-body p{max-width:55ch}.uses{font-size:var(--step-1);gap:.5rem;margin:0;padding:0;font-weight:600;list-style:none;display:grid}.uses li{background:var(--surface);padding:1rem 1.25rem}.faq{gap:.5rem;max-width:52rem;display:grid}.faq details{background:var(--surface)}.faq details p{max-width:65ch;margin:0;padding:0 1rem 1rem}.stories{gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.stories a{background:var(--surface);gap:.3rem;padding:1.25rem 1.5rem;text-decoration:none;transition:background-color .16s;display:grid}@media (hover:hover) and (pointer:fine){.stories a:hover{background:var(--surface-2);color:inherit}}@media (min-width:48rem){.stories a{grid-template-columns:7rem 1fr;column-gap:1.5rem}.story-desc{grid-column:2}}.story-kind{color:var(--ink-2);font-size:var(--step-s);font-weight:600}.story-title{font-family:var(--font-d);font-weight:700;font-size:var(--step-1);letter-spacing:-.015em;line-height:1.2}.story-desc{color:var(--ink-2);font-size:var(--step-s)}.story{grid-template-columns:minmax(0,1fr);gap:3rem;margin-top:3.5rem;display:grid}@media (min-width:64rem){.story{grid-template-columns:minmax(0,1fr) 22rem;align-items:start}.story-side{position:sticky;top:1.5rem}}.story-side{background:var(--surface);padding:1.5rem}.side-h{font-size:var(--step-1);margin-bottom:1rem}.steps{gap:1rem;margin:0;padding-left:1.25rem;display:grid}.steps li::marker{font-family:var(--font-d);font-weight:800}.step-name{display:block}.prose{overflow-wrap:break-word;max-width:68ch}.prose pre{white-space:pre-wrap}.prose pre,.prose code{overflow-wrap:anywhere}.prose h2{margin:2.5rem 0 1rem;font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}.prose ul,.prose ol{padding-left:1.25rem}.prose li{margin-bottom:.4rem}.prose .btn{margin-block:1rem}.callout{background:var(--field);color:var(--on-field);margin:1.5rem 0;padding:1.25rem 1.5rem}.callout-title{margin-bottom:.4rem;font-weight:700}.callout>:last-child{margin-bottom:0}.sticky-cta{display:none}@media (max-width:47.99rem){body:has(.sticky-cta){padding-bottom:5rem}.sticky-cta{z-index:5;padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));background:var(--surface-2);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;inset:auto 0 0}.sticky-cta-text{font-weight:700;font-size:var(--step-s);min-width:0;line-height:1.3;display:grid}.sticky-cta-text span{font-weight:400}.sticky-cta .btn{flex:none;min-height:2.75rem;padding-inline:1rem}}.site-footer{margin-top:var(--gap-section);background:var(--surface);padding-top:clamp(3rem,6vw,5rem);overflow:hidden}.footer-cols{font-size:var(--step-s);gap:2.5rem;display:grid}@media (min-width:48rem){.footer-cols{grid-template-columns:1fr 1fr 2fr}}.footer-h{font-family:var(--font-t);font-size:var(--step-0);letter-spacing:0;margin-bottom:.75rem}.footer-cols ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.footer-cols a{padding-block:.15rem;display:inline-block}.footer-notes{max-width:52ch}.footer-mark{font-family:var(--font-d);letter-spacing:-.06em;white-space:nowrap;margin:3rem 0 -.12em;font-size:clamp(4.5rem,21vw,19rem);font-weight:800;line-height:.78}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important}}@media (max-width:47.99rem){.inputs thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.inputs tr{border-bottom:1px solid var(--surface-2);grid-template-columns:auto 1fr;gap:.25rem 1rem;padding-block:.75rem;display:grid}.inputs tbody th{grid-column:1/-1;min-width:0}.inputs th,.inputs td{border:0;padding:0}.inputs td{color:var(--ink-2)}}
