@font-face{font-family:Montserrat Fallback;src:local(Arial),local(Liberation Sans),local(Helvetica);size-adjust:110.6%;ascent-override:87.5%;descent-override:22.7%;line-gap-override:0%}@font-face{font-family:Cormorant Fallback;src:local(Times New Roman),local(Liberation Serif),local(Times);size-adjust:95%;ascent-override:97.3%;descent-override:30.2%;line-gap-override:0%}:root{--cream:#f4efe4;--ivory:#fbf8f1;--ink:#211f1c;--graphite:#423d37;--stone:#857e72;--red:#c0473a;--red-deep:#a63b30;--hairline:#dad2c4;--code-bg:#211f1c;--code-fg:#f4efe4;--code-muted:#dad2c4;--code-line:#423d37;color-scheme:light dark;--font-display:"Cormorant Garamond", "Cormorant", "Cormorant Fallback", Georgia, "Times New Roman", serif;--font-sans:"Montserrat", "Montserrat Fallback", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-display:clamp(40px, 8vw, 56px);--text-h1:40px;--text-h2:30px;--text-h3:21px;--text-body:16px;--text-small:13px;--text-eyebrow:12px;--tracking-wordmark:.24em;--tracking-label:.14em;--leading-body:1.75;--leading-tight:1.15;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;--s8:128px;--radius:3px;--motion:.2s;--measure:920px;--page:1200px;--gutter:24px}@media (prefers-color-scheme:dark){:root{--cream:#1b1916;--ivory:#211f1c;--ink:#f4efe4;--graphite:#dad2c4;--hairline:#423d37;--red-deep:#e57f72}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--s3)}body{background:var(--cream);color:var(--graphite);font:400 var(--text-body) / var(--leading-body) var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}img,svg{max-width:100%;height:auto;display:block}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);line-height:var(--leading-tight);margin:0}h1{font-weight:500;font-size:var(--text-h1)}h2{font-weight:500;font-size:var(--text-h2)}h3{font-weight:600;font-size:var(--text-h3)}p{margin:0 0 var(--s2)}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:4px;transition:color var(--motion), text-decoration-color var(--motion);text-decoration-thickness:1px}a:hover{color:var(--red-deep);text-decoration-color:var(--red-deep)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--radius)}.skip{left:var(--s2);background:var(--ink);color:var(--cream);padding:var(--s1) var(--s2);z-index:10;position:absolute;top:-64px}.skip:focus{top:var(--s2)}.wrap{max-width:var(--page);padding-inline:var(--gutter);margin-inline:auto}.measure{max-width:var(--measure)}.eyebrow,.label{font:500 var(--text-eyebrow) / 1.4 var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--graphite)}.eyebrow{margin:0 0 var(--s2)}.dot{color:var(--red);padding-inline:.5em;text-decoration:none}.btn{padding:14px var(--s3);font:500 var(--text-eyebrow) / 1.4 var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink);cursor:pointer;transition:color var(--motion), background-color var(--motion), border-color var(--motion);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover{color:var(--red-deep);border-color:var(--red-deep)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--cream)}.btn-primary:hover{background:var(--red-deep);border-color:var(--red-deep);color:var(--cream)}.wordmark{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-wordmark);color:var(--ink);white-space:nowrap;font-weight:500;text-decoration:none}.wordmark:hover{color:var(--ink)}.site-header{border-bottom:1px solid var(--hairline)}.site-header .wrap{justify-content:space-between;align-items:center;gap:var(--s2);min-height:72px;display:flex}.site-header .wordmark{font-size:20px}.site-nav{align-items:center;gap:var(--s1);flex-wrap:wrap;justify-content:flex-end;display:flex}.site-nav a,.site-nav button{font:500 var(--text-eyebrow) / 1 var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink);padding:var(--s1);cursor:pointer;transition:color var(--motion);background:0 0;border:0;text-decoration:none}.site-nav a:hover,.site-nav button:hover{color:var(--red-deep)}.site-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:6px}@media (width<=600px){.site-header .wrap{min-height:64px}.site-header .wordmark{font-size:16px}.site-nav{flex-wrap:nowrap;gap:0}.site-nav .dot,.site-nav a[href$=\#download],.site-nav a[href^="https://github.com"]{display:none}.site-nav a,.site-nav button{padding:var(--s1) 10px}}.site-footer{border-top:1px solid var(--hairline);margin-top:var(--s8);padding-block:var(--s5);font-size:var(--text-small)}.site-footer .wrap{gap:var(--s2);flex-direction:column;display:flex}.site-footer .line{color:var(--ink);margin:0}.site-footer .line .wordmark{font-size:14px}.site-footer .legal{max-width:var(--measure);margin:0}.site-footer nav{gap:var(--s3);flex-wrap:wrap;display:flex}dialog.search{width:min(680px, calc(100vw - 2 * var(--gutter)));max-height:80vh;padding:var(--s3);background:var(--ivory);color:var(--graphite);border:1px solid var(--hairline);border-radius:var(--radius);margin:10vh auto auto}dialog.search::backdrop{background:#211f1c66}dialog.search .bar{margin-bottom:var(--s2);justify-content:space-between;align-items:center;display:flex}dialog.search .bar button{font:500 var(--text-eyebrow) / 1 var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink);cursor:pointer;padding:var(--s1);background:0 0;border:0}.pagefind-ui{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--ink);--pagefind-ui-text:var(--graphite);--pagefind-ui-background:var(--ivory);--pagefind-ui-border:var(--hairline);--pagefind-ui-tag:var(--hairline);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:3px;--pagefind-ui-image-border-radius:3px;--pagefind-ui-font:var(--font-sans)}.pagefind-ui__result-link{font-family:var(--font-display);font-size:var(--text-h3);color:var(--ink)!important}.pagefind-ui__result-link:hover{color:var(--red-deep)!important}.pagefind-ui__result-excerpt mark{color:var(--ink);background:0 0;font-weight:600}.pagefind-ui__search-input{font-family:var(--font-sans)!important;font-weight:400!important;font-size:var(--text-body)!important}.pagefind-ui__search-clear{font-family:var(--font-sans)!important;font-size:var(--text-small)!important;color:var(--ink)!important}.code{position:relative}.code pre,.prose pre{margin:0 0 var(--s3);padding:var(--s3);background:var(--code-bg);color:var(--code-fg);border:1px solid var(--code-line);border-radius:var(--radius);font:400 14px / 1.7 var(--font-mono);tab-size:2;overflow-x:auto}.code pre{margin:0}.prose .code{margin-bottom:var(--s3)}pre code{font:inherit;color:inherit;background:0 0;border:0;padding:0}.copy{top:var(--s1);right:var(--s1);font:500 11px / 1 var(--font-sans);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--code-muted);background:var(--code-bg);border:1px solid var(--code-line);border-radius:var(--radius);cursor:pointer;transition:color var(--motion), border-color var(--motion);padding:6px 10px;position:absolute}.copy:hover{color:var(--code-fg);border-color:var(--code-muted)}.copy:focus-visible{outline-color:var(--code-fg)}:not(pre)>code{font:400 .88em / 1 var(--font-mono);background:var(--ivory);border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink);overflow-wrap:anywhere;padding:.15em .4em}kbd{font:500 .8em / 1 var(--font-sans);background:var(--ivory);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius);padding:.2em .5em}.tagline[data-astro-cid-qisgtjgl]{font:400 13px / 1.4 var(--font-sans);letter-spacing:.14em;color:var(--graphite);margin:12px 0 0}
