@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Semibold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:"Baloo 2";src:url(/fonts/Baloo2-600.ttf)format("truetype");font-weight:600;font-display:swap}:root{--font-body:"General Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-wordmark:"Baloo 2", var(--font-body);--page-max:76rem;--copy-max:68ch;--ground:#f8f2e9;--surface:#fbf6ee;--surface-2:#f1e7d8;--tint:#f2d6c2;--text:#3a3028;--text-muted:#6e6155;--border:#e2d3c1;--border-strong:#cdb8a1;--accent:#c97e62;--accent-text:#8f4e37;--on-accent:#fff;--deep:#241d18;--deep-surface:#302720;--deep-text:#f1e7da;--deep-muted:#c6b7a7;--deep-border:#4b3c31;--selection:#f2d6c2;--sunset-1:#e9967a;--sunset-2:#eda683;--sunset-3:#f2b98f;--sunset-4:#f5cba4;--sunset-5:#f8dcbc;--sun:#f9d47f;--sea:#7fcfc6;--sea-deep:#3fa3a6;--sea-line:#e9fbf6;--sand:#f1e3c4;--olive:#8d9a76;--olive-bright:#a9b78f;--limestone:#e6d3ad;--lake:#f0a7a0;--wood:#b98b62;--wood-dark:#8d6547;--lantern:#8fb9c9;--capture-ground:#fff;--swatch-rotli-light:#f8f2e9;--swatch-rotli-light-accent:#c97e62;--swatch-rotli-dark:#241d18;--swatch-rotli-dark-accent:#c97e62;--swatch-paper-light:#fafaf9;--swatch-paper-light-accent:#161616;--swatch-paper-dark:#161616;--swatch-paper-dark-accent:#e9e7e2;--swatch-ocean-light:#dfebf3;--swatch-ocean-light-accent:#2e6e91;--swatch-ocean-dark:#0e171d;--swatch-ocean-dark-accent:#70b2d7;--swatch-grove-light:#e3eee4;--swatch-grove-light-accent:#427a55;--swatch-grove-dark:#101814;--swatch-grove-dark-accent:#82be96;--swatch-iris-light:#e9e4f2;--swatch-iris-light-accent:#6b58a5;--swatch-iris-dark:#15121d;--swatch-iris-dark-accent:#ad9ae3;--swatch-midnight-light:#f0f2f5;--swatch-midnight-light-accent:#364152;--swatch-midnight-dark:#050607;--swatch-midnight-dark-accent:#cfd5dc;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{background:var(--ground);min-width:20rem;color:var(--text);font-family:var(--font-body);margin:0;font-size:17px;line-height:1.62;transition:background-color .18s ease-out,color .18s ease-out}a{color:inherit}button,input,select,textarea{font:inherit}button{color:inherit}img,svg{max-width:100%;display:block}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}:where(a,button,summary):focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}::selection{background:var(--selection);color:var(--text)}.js [data-reveal]{opacity:0;transition:opacity .64s cubic-bezier(.2,.7,.2,1),transform .64s cubic-bezier(.2,.7,.2,1);transform:translateY(12px)}.js [data-reveal].is-visible{opacity:1;transform:none}.js [data-stagger]>*{opacity:0;transition:opacity .56s cubic-bezier(.2,.7,.2,1),transform .56s cubic-bezier(.2,.7,.2,1);transform:translateY(14px)}.js [data-stagger].is-visible>*{opacity:1;transform:none}.js [data-stagger].is-visible>:nth-child(2){transition-delay:70ms}.js [data-stagger].is-visible>:nth-child(3){transition-delay:.14s}.js [data-stagger].is-visible>:nth-child(4){transition-delay:.21s}.js [data-stagger].is-visible>:nth-child(5){transition-delay:.28s}.js [data-stagger].is-visible>:nth-child(6){transition-delay:.35s}.js [data-stagger].is-visible>:nth-child(n+7){transition-delay:.42s}@media (prefers-reduced-motion:reduce){.js [data-reveal],.js [data-stagger]>*{opacity:1;transition:none;transform:none}}.skip-link{z-index:100;background:var(--text);color:var(--ground);border-radius:.5rem;padding:.65rem .9rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:root{--gutter:clamp(1.25rem, 4vw, 2.5rem);--section-space:clamp(4.5rem, 9vw, 7.5rem);--header-height:68px;--radius-frame:.9rem;--step-display:clamp(2.9rem, 6.6vw, 5.9rem);--step-h2:clamp(2.1rem, 4.2vw, 3.5rem);--step-h3:clamp(1.3rem, 1.9vw, 1.55rem);--step-lede:clamp(1.1rem, 1.5vw, 1.28rem)}.wrap{width:min(100% - 2 * var(--gutter), var(--page-max));margin-inline:auto}.section{padding-block:var(--section-space)}.band-warm{background:var(--surface-2)}.inked{background:url(/ink-underline.svg) 0 100%/100% .2em no-repeat;padding-bottom:.06em}.js [data-reveal] .inked{background-size:0% .2em;transition:background-size .9s cubic-bezier(.65,0,.25,1) .35s}.js [data-reveal].is-visible .inked{background-size:100% .2em}@media (prefers-reduced-motion:reduce){.js [data-reveal] .inked{background-size:100% .2em;transition:none}}.band-deep{background:var(--deep);color:var(--deep-text)}.section-title{font-size:var(--step-h2);letter-spacing:-.035em;margin:0;font-weight:600;line-height:1.04}.section-lede{max-width:38rem;color:var(--text-muted);font-size:var(--step-lede);margin:1.1rem 0 0;line-height:1.55}.band-deep .section-lede{color:var(--deep-muted)}.section-head{margin-bottom:clamp(2.5rem,5vw,4rem)}[id]{scroll-margin-top:calc(var(--header-height) + 1.5rem)}.site-header-bar{z-index:30;background:var(--ground);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header,.site-footer{width:min(100% - 2 * var(--gutter), var(--page-max));margin-inline:auto}.site-header{min-height:var(--header-height);align-items:center;gap:2rem;display:flex}.brand,.footer-brand{min-height:44px;color:var(--text);align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.brand-mark{width:28px;line-height:0}.wordmark,.footer-brand b{font-family:var(--font-wordmark);letter-spacing:-.015em;font-size:1.5rem;font-weight:600}.primary-nav{justify-content:center;align-items:center;gap:clamp(1rem,2.2vw,2rem);margin-inline:auto;display:flex}.primary-nav a,.github-link{min-height:44px;color:var(--text-muted);align-items:center;font-size:.92rem;text-decoration:none;display:inline-flex}.primary-nav a:hover,.primary-nav a[aria-current=page],.github-link:hover{color:var(--text)}.primary-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--accent-text);text-underline-offset:.5rem;text-decoration-thickness:2px}.header-actions{align-items:center;gap:.8rem;margin-left:auto;display:flex}.primary-nav+.header-actions{margin-left:0}.github-link{justify-content:center;width:44px}.github-link svg{width:20px;height:20px}.button{white-space:nowrap;border-radius:.7rem;justify-content:center;align-items:center;gap:.5rem;min-height:50px;padding:.72rem 1.3rem;font-weight:600;text-decoration:none;transition:transform .12s ease-out,background-color .14s ease-out,border-color .14s ease-out;display:inline-flex}.button:active{transform:translateY(1px)}.button.primary{background:var(--text);color:var(--ground);border:1px solid var(--text)}.button.primary:hover{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}.button.secondary{color:var(--text);border:1px solid var(--border-strong);background:0 0}.button.secondary:hover{background:var(--surface-2)}.button.pending,.button.pending:hover,.button.pending:active{cursor:default;opacity:.82;transform:none}.site-actions{flex-wrap:wrap;gap:.75rem;display:flex}.action-download .for-other,:root[data-platform=other] .action-download .for-mac{display:none}:root[data-platform=other] .action-download .for-other{display:inline}:root[data-platform=other] .action-web{background:var(--text);color:var(--ground);border-color:var(--text);order:-1}:root[data-platform=other] .action-web:hover{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}:root[data-platform=other] .action-download{color:var(--text);border-color:var(--border-strong);background:0 0}:root[data-platform=other] .action-download:hover{background:var(--surface-2)}.site-header .button{border-radius:.6rem;min-height:40px;padding:.45rem .95rem;font-size:.88rem}.nav-menu{display:none;position:relative}.nav-menu summary{border:1px solid var(--border-strong);min-height:40px;color:var(--text);cursor:pointer;border-radius:.6rem;align-items:center;padding:.45rem .9rem;font-size:.88rem;font-weight:600;list-style:none;display:inline-flex}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu[open] summary,.nav-menu summary:hover{background:var(--surface-2)}.nav-menu-panel{border:1px solid var(--border-strong);background:var(--surface);border-radius:.8rem;gap:.15rem;min-width:15rem;padding:.5rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.nav-menu-panel>a{min-height:44px;color:var(--text);border-radius:.5rem;align-items:center;padding-inline:.75rem;text-decoration:none;display:flex}.nav-menu-panel>a:hover{background:var(--surface-2)}.nav-menu-panel>a[aria-current=page]{background:var(--tint)}.nav-menu-panel>.button{margin-top:.4rem;display:none}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);padding-block:clamp(3rem,6vw,4.5rem) 2rem;font-size:.92rem}.footer-top{grid-template-columns:minmax(14rem,1fr) minmax(0,1.6fr);gap:2.5rem clamp(2rem,6vw,5rem);display:grid}.footer-lead p{max-width:22rem;margin:.6rem 0 0;line-height:1.55}.footer-brand span{width:24px;line-height:0}.footer-brand b{font-size:1.3rem}.footer-groups{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:2rem;display:grid}.footer-group h2{color:var(--text);letter-spacing:0;margin:0 0 .4rem;font-size:.92rem;font-weight:600}.footer-group ul{margin:0;padding:0;list-style:none}.footer-group a{align-items:center;min-height:40px;text-decoration:none;display:inline-flex}.footer-group a:hover{color:var(--text);text-underline-offset:.25em;text-decoration:underline}.footer-bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:1.5rem;font-size:.86rem;display:flex}.footer-bottom p{margin:0}.footer-badges{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.footer-badge{flex:none;line-height:0;display:block}.footer-badge img{width:auto;height:44px}@media (width<=1080px){.primary-nav{display:none}.nav-menu{display:block}.site-header .header-actions{margin-left:auto}}@media (width<=760px){.footer-top{grid-template-columns:1fr}}@media (width<=560px){.site-header{gap:.75rem}.header-actions>.header-download,.header-actions>.github-link{display:none}.nav-menu-panel>.button{display:flex}.footer-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
