@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/instrument-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#F7F6F3;--surface:#FFFFFF;--raised:#EFEEEA;--ink:#1F1F22;--ink-2:rgba(31,31,34,.62);--ink-3:rgba(31,31,34,.40);--line:rgba(31,31,34,.09);--accent:#5E6B8A;--accent-soft:rgba(94,107,138,.12);--gold:#B08A5A;--gold-soft:rgba(176,138,90,.16);--stage-1:#C5CADD;--stage-2:#ECE4D8;--stage-3:#DAD2E0;--sand-1:#EDE3D3;--sand-2:#F6F1E8;--stage-ring:rgba(255,255,255,.45);--band:#232834;--band-ink:#ECEDF2;--band-ink-2:rgba(236,237,242,.60);--band-ink-3:rgba(236,237,242,.40);--band-line:rgba(255,255,255,.09);--band-accent:#A9B4D0;--app-bg:#F6F5F1;--shadow-float:0 1px 2px rgba(31,31,34,.06),0 18px 50px rgba(35,40,52,.18);--r-m:12px;--r-l:18px;--r-xl:26px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--display:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;--maxw:1160px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#121214;--surface:#1A1A1D;--raised:#222226;--ink:#ECECEA;--ink-2:rgba(236,236,234,.62);--ink-3:rgba(236,236,234,.40);--line:rgba(255,255,255,.09);--accent:#8A97B8;--accent-soft:rgba(138,151,184,.18);--gold:#C9A26E;--gold-soft:rgba(201,162,110,.18);--stage-1:#2B3144;--stage-2:#3A342C;--stage-3:#312D3C;--sand-1:#322C24;--sand-2:#24211D;--stage-ring:rgba(255,255,255,.08);--band:#1B1F2A;--band-line:rgba(255,255,255,.08);--shadow-float:0 1px 2px rgba(0,0,0,.4),0 18px 50px rgba(0,0,0,.5);color-scheme:dark}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}body > main{flex:1 0 auto}img,svg{max-width:100%}img{display:block;height:auto}a{color:inherit}p{margin:0}h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:400;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none !important}}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:28px}.wrap--narrow{max-width:760px}@media (max-width:600px){.wrap{padding-inline:20px}}.kicker{font-size:14px;color:var(--ink-2);margin-bottom:18px}.lede{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:48ch}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mono{font-family:var(--mono);font-size:.9em;letter-spacing:-.01em}.text-link{display:inline-block;color:var(--accent);font-size:15px;font-weight:500;text-decoration:none}.text-link:hover{text-decoration:underline;text-underline-offset:3px}.site-head{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}.site-head .wrap{display:flex;align-items:center;gap:28px;height:64px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font:600 17px/1 var(--display);letter-spacing:-.02em}.brand .mark{width:24px;height:24px;color:var(--accent);display:block;overflow:visible}.nav{margin-left:auto;display:flex;align-items:center;gap:28px}.nav a{font-size:14.5px;color:var(--ink-2);text-decoration:none}.nav a:hover{color:var(--ink)}.nav .nav-cta{margin-left:4px;padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--bg);font-size:14px;font-weight:500}.nav .nav-cta:hover{color:var(--bg);opacity:.88}.menu-toggle,.menu-btn{display:none}@media (max-width:760px){.menu-toggle{display:block;position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.menu-toggle:focus-visible + .menu-btn{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}.menu-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;width:28px;height:22px;margin-left:auto;cursor:pointer}.menu-btn span{display:block;height:2px;border-radius:1px;background:var(--ink);transition:transform .2s,opacity .2s}.nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:4px 20px 20px;background:var(--bg);border-bottom:1px solid var(--line)}.nav a{padding:12px 0;font-size:16px}.nav .nav-cta{margin:10px 0 0;padding:14px;text-align:center}.menu-toggle:checked ~ .nav{display:flex}.menu-toggle:checked ~ .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle:checked ~ .menu-btn span:nth-child(2){opacity:0}.menu-toggle:checked ~ .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}}.store-btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 22px 0 16px;border-radius:var(--r-m);background:var(--ink);color:var(--bg);text-decoration:none}.store-btn svg{width:22px;height:22px;flex:none}.store-btn span{display:flex;flex-direction:column;line-height:1.1}.store-btn small{font-size:11px;opacity:.7}.store-btn strong{font-size:16px;font-weight:600;letter-spacing:-.01em}button.store-btn{border:0;font:inherit;text-align:left;cursor:pointer;transition:opacity .12s}button.store-btn:hover{opacity:.88}.notify{position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 32px));height:fit-content;padding:36px 28px 28px;border:0;border-radius:var(--r-xl);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-float);text-align:center;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s,transform .18s,overlay .18s allow-discrete,display .18s allow-discrete}.notify:popover-open{opacity:1;transform:none}@starting-style{.notify:popover-open{opacity:0;transform:translateY(8px) scale(.98)}}.notify::backdrop{background:rgba(18,20,26,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.notify-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--ink-3);cursor:pointer}.notify-close:hover{background:var(--raised);color:var(--ink)}.notify-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.notify-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent)}.notify-icon svg{width:26px;height:26px}.notify h2{margin-top:18px;font-size:28px}.notify p{margin:10px auto 0;max-width:34ch;font-size:15.5px;color:var(--ink-2)}.notify-links{display:grid;gap:10px;margin-top:24px}.notify-link{display:flex;align-items:center;justify-content:center;gap:10px;height:48px;border-radius:var(--r-m);background:var(--ink);color:var(--bg);font-size:15.5px;font-weight:600;text-decoration:none;transition:opacity .12s}.notify-link:hover{opacity:.88}.notify-link svg{width:18px;height:18px}.app-store-badge{display:inline-block;transition:opacity .12s}.app-store-badge:hover{opacity:.85}.app-store-badge img{height:52px;width:auto}.pro-tag{display:inline-block;margin-left:8px;padding:4px 7px 3px;border-radius:6px;background:var(--gold-soft);color:var(--gold);font:600 10.5px/1 var(--font);letter-spacing:.06em;text-transform:uppercase;vertical-align:.2em}.draft-tag{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:6px;background:#b4540022;color:#b45400;font:600 10.5px/1 var(--font);letter-spacing:.04em;text-transform:uppercase;vertical-align:.15em}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .draft-tag{background:#f5a05e22;color:#f0a868}}.stage{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r-xl);background:radial-gradient(120% 90% at 0% 0%,var(--stage-1),transparent 60%),radial-gradient(90% 80% at 100% 100%,var(--stage-2),transparent 65%),var(--stage-3)}.stage::before{content:"";position:absolute;z-index:-1;left:14%;top:-18%;width:118%;aspect-ratio:1;border-radius:50%;border:1px solid var(--stage-ring);pointer-events:none}.stage--sand{background:radial-gradient(90% 90% at 50% 40%,var(--sand-2),var(--sand-1))}.stage--sand::before{left:-30%;top:10%;width:90%;border-color:var(--gold-soft)}.shot{position:relative;overflow:hidden;aspect-ratio:var(--ar);background:var(--app-bg)}.shot img{position:absolute;max-width:none;width:var(--w,100%);left:var(--x,0);top:var(--y,0)}.fade{-webkit-mask-image:linear-gradient(#000 70%,transparent 99%);mask-image:linear-gradient(#000 70%,transparent 99%)}.page{padding-block:72px 120px}.page-head h1{font-size:clamp(38px,4.8vw,58px);letter-spacing:-.035em;line-height:1.04}.page-head .lede{margin-top:18px}.page-head + .entries{margin-top:56px}.page-head + .prose{margin-top:32px}.page-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}.page-grid > .sticky{position:sticky;top:104px}@media (max-width:860px){.page{padding-top:48px}.page-grid{display:flex;flex-direction:column;align-items:stretch;gap:0}.page-grid > .sticky{display:contents}.page-grid > :not(.sticky){order:1;margin-top:40px}.page-grid .help-card{order:2}}.help-card{margin-top:40px;padding:26px 28px;max-width:420px}.help-card h2{font-size:22px;letter-spacing:-.02em}.help-card p{margin-top:8px;font-size:15px;line-height:1.55;color:var(--ink-2)}.help-card .text-link{margin-top:14px}.faq details{border-top:1px solid var(--line);scroll-margin-top:88px}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;font-size:16.5px;font-weight:500}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";flex:none;color:var(--ink-3);font-size:22px;font-weight:300;line-height:1}.faq details[open] summary::after{content:"\2013"}.faq summary:hover,.faq details:target summary{color:var(--accent)}.faq details > p,.faq .answer{padding:0 36px 22px 0;max-width:62ch;color:var(--ink-2);font-size:15.5px;line-height:1.6}.faq .answer > * + *{margin-top:10px}.faq .answer ul,.faq .answer ol{margin-bottom:0;padding-left:1.2em}.faq a{color:var(--accent)}.entries{border-top:1px solid var(--line)}.entry{display:grid;grid-template-columns:180px minmax(0,1fr);gap:6px 40px;padding:28px 0;border-bottom:1px solid var(--line);scroll-margin-top:88px}.entry-date{padding-top:5px;font-size:14px;color:var(--ink-3);font-variant-numeric:tabular-nums}.entry-title{font-size:22px;letter-spacing:-.02em;line-height:1.25}.entry-title a{text-decoration:none}.entry-title a:hover{color:var(--accent)}.entry-body > p,.entry-body > ul,.entry-body > ol{margin-top:10px;max-width:62ch;color:var(--ink-2);font-size:16px;line-height:1.6}.entry-body > ul,.entry-body > ol{margin-bottom:0;padding-left:1.2em}.entry-more{margin-top:10px}.entry-body > :is(h3,h4,h5,h6):not(.entry-title){margin-top:18px;font-family:inherit;font-size:15px;font-weight:600;letter-spacing:0}@media (max-width:640px){.entry{grid-template-columns:minmax(0,1fr)}.entry-date{padding-top:0}}.prose{max-width:680px}.prose h2{margin:52px 0 14px;font-size:26px;letter-spacing:-.025em;scroll-margin-top:88px}.prose > :first-child{margin-top:0}.prose p,.prose li{color:var(--ink-2);font-size:16.5px;line-height:1.65}.prose p + p,.prose p + ul,.prose ul + p,.prose p + ol,.prose ol + p{margin-top:12px}.prose ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}.prose li{position:relative;padding-left:26px}.prose li::before{content:"";position:absolute;left:2px;top:.82em;width:12px;height:1px;background:var(--ink-3)}.prose ol{margin:0;padding-left:1.3em;display:grid;gap:12px}.prose ol li{padding-left:4px}.prose ol li::before{content:none}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--accent)}.callout{padding:30px 32px;margin-bottom:52px}.callout h2{margin:0;font-size:26px;letter-spacing:-.025em}.callout p{margin-top:10px;max-width:52ch;color:var(--ink-2);font-size:16.5px;line-height:1.6}.toc{position:sticky;top:104px;display:grid;font-size:14px}.toc p{margin-bottom:10px;font-size:13px;color:var(--ink-3)}.toc a{padding:7px 0 7px 14px;border-left:1px solid var(--line);color:var(--ink-2);text-decoration:none}.toc a:hover{color:var(--ink);border-left-color:var(--accent)}.doc-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:72px;align-items:start;margin-top:56px}@media (max-width:860px){.doc-grid{grid-template-columns:minmax(0,1fr);margin-top:40px}.toc{display:none}}.back-link{margin-top:40px}.not-found{padding-block:140px 170px;text-align:center}.not-found h1{font-size:clamp(38px,5vw,58px);letter-spacing:-.035em}.not-found .lede{margin:16px auto 28px}.site-foot{background:var(--band);color:var(--band-ink-2);padding-block:36px 48px}.foot-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}.site-foot .brand{color:var(--band-ink);font-size:15px}.site-foot .brand .mark{color:var(--band-accent);width:22px;height:22px}.site-foot nav{display:flex;flex-wrap:wrap;gap:10px 26px;margin-left:auto}.site-foot a{font-size:14px;text-decoration:none}.site-foot nav a:hover{color:var(--band-ink)}.site-foot small{display:block;margin-top:22px;max-width:90ch;font-size:12.5px;line-height:1.5;color:var(--band-ink-3)}@media (max-width:640px){.site-foot nav{margin-left:0;flex-basis:100%}}.social{display:flex;gap:4px}.social a{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--band-ink-2);transition:color .12s,background .12s}.social a:hover{color:var(--band-ink);background:rgba(255,255,255,.07)}.social svg{width:17px;height:17px;display:block}