:root{--bg:#fff;--text:#111113;--muted:#6b6b76;--faint:#9a9aa3;--line:#e8e8ec;--soft:#f5f5f7}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:720px;margin:0 auto;padding-left:24px;padding-right:24px}
.mark{width:13px;height:19px;fill:currentColor}
.brand{display:flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.01em}
.nav{display:flex;align-items:center;justify-content:space-between;padding-top:28px;padding-bottom:28px}
.link{font-size:14.5px;color:var(--muted);transition:color .15s}
.link:hover{color:var(--text)}
.hero{padding-top:64px;padding-bottom:72px}
h1{font-size:clamp(34px,5.5vw,52px);line-height:1.08;letter-spacing:-.03em;font-weight:600;margin:0 0 18px}
h1 .muted{color:var(--muted)}
.lede{font-size:18px;color:var(--muted);max-width:520px;margin:0}
.cta{display:flex;align-items:center;gap:22px;margin-top:32px}
.btn{display:inline-flex;align-items:center;padding:11px 20px;border-radius:999px;background:var(--text);color:#fff;font-size:15px;font-weight:500;transition:opacity .15s}
.btn:hover{opacity:.82}
.preview{margin-top:64px;border:1px solid var(--line);border-radius:16px;padding:18px 18px 12px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 16px 48px -20px rgba(0,0,0,.14)}
.preview .head{font-weight:600;font-size:16px;margin:0 6px 6px}
.grp{display:flex;gap:6px;font-size:12.5px;font-weight:500;color:var(--faint);margin:14px 6px 4px}
.task{display:flex;align-items:center;gap:12px;padding:9px 6px;font-size:15px;white-space:nowrap}
.task .txt{overflow:hidden;text-overflow:ellipsis}
.ring{width:15px;height:15px;border-radius:50%;border:1.5px solid #c8c8cf;flex:none}
.ring.dash{border-style:dashed}
.proj{font-style:normal;font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.proj:before{content:'';width:6px;height:6px;border-radius:50%;background:#c8c8cf}
.due{margin-left:auto;font-size:12.5px;color:#c2453f}
.task.draft{color:var(--muted)}
.accept{margin-left:auto;font-size:12.5px;font-weight:500;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
section+section{border-top:1px solid var(--line)}
section{padding-top:56px;padding-bottom:56px}
h2{font-size:22px;letter-spacing:-.02em;font-weight:600;margin:0 0 8px}
section>p{color:var(--muted);margin:0;max-width:560px}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px}
.feat h3{font-size:15px;font-weight:600;margin:0 0 6px}
.feat p{margin:0;font-size:14.5px;color:var(--muted)}
.urlbox{display:flex;align-items:center;gap:12px;margin-top:24px;border:1px solid var(--line);border-radius:12px;padding:8px 8px 8px 16px;background:var(--soft)}
.urlbox code{flex:1;min-width:0;overflow:auto;white-space:nowrap;font:13.5px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.copy{background:var(--text);color:#fff;border:0;border-radius:999px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:500;line-height:1.4;cursor:pointer;transition:opacity .15s}
.copy:hover{opacity:.82}
.steps{margin:24px 0 0;padding-left:20px;color:var(--muted);font-size:15px}
.steps li{margin:6px 0;padding-left:4px}
.steps b{color:var(--text);font-weight:500}
.more{margin-top:32px;font-size:14.5px;color:var(--muted)}
.more summary{cursor:pointer;width:max-content;max-width:100%}
.more summary:hover{color:var(--text)}
.more p{margin:14px 0 0}
.more b{color:var(--text);font-weight:500}
pre{margin:14px 0;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow:auto;font-size:13px;line-height:1.5;color:var(--text)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
p code{background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:13px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:28px;padding-bottom:64px;border-top:1px solid var(--line);font-size:13.5px;color:var(--faint)}
@media(max-width:640px){.hero{padding-top:44px;padding-bottom:56px}.preview{margin-top:48px}.features{grid-template-columns:1fr;gap:24px}section{padding-top:44px;padding-bottom:44px}.urlbox{flex-wrap:wrap;padding:12px}.urlbox code{flex-basis:100%}.copy{margin-left:auto}.foot{flex-direction:column;align-items:flex-start}}
.page{padding-top:56px;padding-bottom:24px}
.page h1{font-size:clamp(28px,4vw,36px);margin-bottom:10px}
.page .lede{margin-bottom:0}
.updated{font-size:13.5px;color:var(--faint);margin:14px 0 0}
.prose{padding-top:8px}
.prose h2{font-size:17px;margin:38px 0 8px}
.prose p{color:var(--muted);font-size:15px;margin:0 0 12px;max-width:none}
.prose ul{margin:0 0 12px;padding-left:20px;color:var(--muted);font-size:15px}
.prose li{margin:6px 0;padding-left:4px}
.prose b{color:var(--text);font-weight:500}
.prose a.ln{color:var(--text);border-bottom:1px solid var(--line)}
.prose a.ln:hover{border-bottom-color:var(--faint)}
.rel{position:relative;padding:0 0 30px 26px;border-left:1px solid var(--line);margin-left:4px}
.rel:last-child{border-left-color:transparent;padding-bottom:0}
.rel:before{content:'';position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:#c8c8cf}
.rel.now:before{background:var(--text)}
.rel .ver{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rel h3{font-size:15px;font-weight:600;margin:0}
.rel .when{font-size:12.5px;color:var(--faint);margin-left:auto}
.rel .sub{font-size:14.5px;color:var(--muted);margin:6px 0 0}
.rel ul{margin:10px 0 0;padding-left:18px;color:var(--muted);font-size:14.5px}
.rel li{margin:5px 0;padding-left:2px}
.footlinks{display:flex;gap:18px}
.footlinks a:hover{color:var(--text)}

.navlinks{display:flex;align-items:center;gap:20px}
.after{margin-top:28px;font-size:14.5px;color:var(--muted)}
.after a{color:var(--text);border-bottom:1px solid var(--line)}
.after a:hover{border-bottom-color:var(--faint)}

/* Docs — /docs and /docs/<section>, generated from docs.md by build-docs.mjs */
.docs{max-width:1060px}
.crumb{font-weight:400;color:var(--faint);padding-left:10px;margin-left:1px;border-left:1px solid var(--line)}
.docs-tools{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.copymd{background:var(--soft);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-family:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}
.copymd:hover{border-color:var(--faint)}
.docs-layout{display:grid;grid-template-columns:212px minmax(0,1fr);gap:56px;align-items:start;padding:28px 0 72px}
.docs-nav{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;font-size:13.5px}
.docs-nav summary{display:none}
.docs-nav .navttl{margin:22px 0 6px;font-size:12px;font-weight:500;color:var(--faint)}
.docs-nav a{display:block;padding:4px 0 4px 12px;color:var(--muted);border-left:1px solid var(--line);transition:color .15s,border-color .15s}
.docs-nav a:hover{color:var(--text)}
.docs-nav a.here{color:var(--text);border-left-color:var(--text)}
.docs-nav a.h2.here{font-weight:500}
.docs-nav .sub a{padding-left:24px;font-size:13px;color:var(--faint)}
.docs-nav .sub a:hover,.docs-nav .sub a.here{color:var(--text)}
.doc .eyebrow{font-size:13px;font-weight:500;color:var(--faint);margin:0 0 8px}
.doc h1{font-size:clamp(28px,4vw,36px);line-height:1.12;margin:0 0 16px}
.doc h1+p{font-size:17px;color:var(--muted)}
.doc h2{font-size:19px;letter-spacing:-.02em;margin:44px 0 10px;padding-top:36px;border-top:1px solid var(--line);scroll-margin-top:8px}
.doc .anchor{opacity:0;margin-left:8px;font-weight:400;color:var(--faint);transition:opacity .15s}
.doc h2:hover .anchor,.doc .anchor:focus{opacity:1}
.doc ol{margin:0 0 12px;padding-left:20px;color:var(--muted);font-size:15px}
.doc li>b:first-child{color:var(--text)}
.doc blockquote{margin:0 0 14px;padding:2px 0 2px 16px;border-left:2px solid var(--line);color:var(--muted);font-size:14.5px}
.doc td code,.doc li code,.doc th code{background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12.5px}
.doc td code,.doc th code{white-space:nowrap}
.doc li code,.doc p code{overflow-wrap:anywhere}
.doc h2.cardttl{font-size:13px;font-weight:500;color:var(--faint);letter-spacing:0;margin:36px 0 12px;padding:0;border:0}
.doccards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.doccard{display:block;padding:18px 20px;border:1px solid var(--line);border-radius:18px;transition:border-color .15s,transform .2s,box-shadow .2s}
.doccard:hover{border-color:#cfcfd6;transform:translateY(-1px);box-shadow:0 12px 28px -20px rgba(0,0,0,.3)}
.doccard b{display:block;font-weight:600;font-size:15px;color:var(--text)}
.doccard span{display:block;margin-top:4px;font-size:13.5px;line-height:1.5;color:var(--muted)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}
.pager a{display:block;padding:14px 20px;border:1px solid var(--line);border-radius:18px;transition:border-color .15s}
.pager a:hover{border-color:#cfcfd6}
.pager .next{text-align:right}
.pager span{display:block;font-size:12.5px;color:var(--faint)}
.pager b{font-weight:500;font-size:15px;color:var(--text)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin:0 0 16px}
.tablewrap table{border-collapse:collapse;width:100%;font-size:14px}
.tablewrap th{text-align:left;font-weight:600;font-size:12.5px;color:var(--muted);background:var(--soft);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tablewrap td{padding:10px 14px;border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top}
.tablewrap tr:last-child td{border-bottom:0}
.tablewrap td:first-child{color:var(--text)}
.codeblock{position:relative}
.codeblock pre{margin:0 0 16px}
.copycode{position:absolute;top:8px;right:8px;opacity:0;background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-family:inherit;font-size:12.5px;cursor:pointer;transition:opacity .15s,color .15s}
.codeblock:hover .copycode,.copycode:focus{opacity:1}
.copycode:hover{color:var(--text)}
@media(max-width:899px){
  .docs-layout{grid-template-columns:minmax(0,1fr);gap:0;padding-top:18px}
  .docs-nav{position:static;max-height:none;margin-bottom:26px;border:1px solid var(--line);border-radius:18px;padding:12px 16px}
  .docs-nav summary{display:block;cursor:pointer;font-weight:500;color:var(--text);font-size:14px}
  .docs-nav details[open] summary{margin-bottom:8px}
  .doccards,.pager{grid-template-columns:1fr}
  .docs .navlinks a:first-child{display:none}
}

/* Download — /download */
.dl .badge{display:inline-block;font-size:12.5px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 11px;margin-bottom:20px}
.dl .cta{flex-wrap:wrap;gap:14px 20px}
.btn .apple{width:14px;height:17px;fill:currentColor;margin:-2px 9px 0 -2px}
.meta{font-size:13.5px;color:var(--faint)}
section>p a.ln{color:var(--text);border-bottom:1px solid var(--line)}
section>p b,.more b{color:var(--text);font-weight:500}
