.zh{background:var(--zh-bg);color:var(--zh-body);font-family:var(--font-geist-sans), "Helvetica Neue", Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}.zh.zh-embed{color:inherit;line-height:inherit;background:0 0}.zh-serif{font-family:var(--font-newsreader), "Iowan Old Style", "Times New Roman", serif;font-optical-sizing:auto;letter-spacing:-.02em;color:var(--zh-ink);font-weight:400;line-height:1.02}.zh-sans{font-family:var(--font-geist-sans), "Helvetica Neue", sans-serif}.zh-mono{font-family:var(--font-geist-mono), "SF Mono", Menlo, Consolas, monospace}.zh-h2{font-size:clamp(32px,4vw,44px)}.zh-nav{background:color-mix(in oklab, var(--zh-bg) 86%, transparent)}.zh-hero{isolation:isolate;position:relative}.zh-hero:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(55% 60% at 28% 22%,#1f6c9f12,#0000 70%);height:72%;position:absolute;inset:-12% -10% auto}.dark .zh-hero:before{background:radial-gradient(55% 60% at 28% 22%,#9ccdee0f,#0000 70%)}.zh-btn{height:2.5rem;font-family:var(--font-geist-sans), sans-serif;white-space:nowrap;border-radius:6px;align-items:center;gap:.5rem;padding:0 1rem;font-size:.9rem;font-weight:500;line-height:1;transition:background-color .2s,color .2s,transform .15s;display:inline-flex}.zh-btn:active{transform:scale(.98)}.zh-btn-primary{background:var(--zh-ink);color:var(--zh-bg)}.zh-btn-primary:hover{background:#333}.dark .zh-btn-primary:hover{background:#dedcd6}.zh-btn-ghost{border:1px solid var(--zh-line);color:var(--zh-ink);background:0 0}.zh-btn-ghost:hover{background:var(--zh-kbd)}.zh-pill{letter-spacing:.02em;white-space:nowrap;border-radius:9999px;align-items:center;padding:.15rem .55rem;font-size:.72rem;font-weight:500;line-height:1.4;display:inline-flex}.zh-pill-blue{background:var(--zh-blue-bg);color:var(--zh-blue-ink)}.zh-pill-green{background:var(--zh-green-bg);color:var(--zh-green-ink)}.zh-pill-yellow{background:var(--zh-yellow-bg);color:var(--zh-yellow-ink)}.zh-pill-neutral{background:var(--zh-kbd);color:var(--zh-muted)}.zh-cell{border:1px solid var(--zh-line);background:var(--zh-surface);border-radius:12px;padding:1.75rem}@media (min-width:768px){.zh-cell{padding:2rem}}.zh-row{transition:background-color .2s}.zh-row:hover{background:var(--zh-kbd)}.zh kbd{font-family:var(--font-geist-mono), monospace;border:1px solid var(--zh-line);background:var(--zh-kbd);color:var(--zh-ink);border-radius:4px;padding:.1rem .4rem;font-size:.85em}.zh a:focus-visible,.zh button:focus-visible{outline:2px solid var(--zh-blue-ink);outline-offset:3px;border-radius:4px}@keyframes zh-rise{to{opacity:1;transform:none}}.zh-rise{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards zh-rise;animation-delay:var(--d,0s);transform:translateY(14px)}@keyframes zh-draw{to{stroke-dashoffset:0}}.zh-ink .zh-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:1s cubic-bezier(.4,0,.2,1) forwards zh-draw;animation-delay:var(--d,0s)}@keyframes zh-fade{to{opacity:1}}.zh-ink .zh-label{opacity:0;animation:.5s forwards zh-fade;animation-delay:var(--d,0s)}@keyframes zh-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.zh-ink .zh-end{transform-box:fill-box;transform-origin:50%;opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) forwards zh-pop;animation-delay:var(--d,0s)}@media (prefers-reduced-motion:reduce){.zh-rise,.zh-ink .zh-draw,.zh-ink .zh-label,.zh-ink .zh-end{opacity:1;stroke-dashoffset:0;animation:none;transform:none}}.zh-search{border:1px solid var(--zh-line);background:var(--zh-surface);border-radius:10px;align-items:center;gap:.75rem;height:3.5rem;padding:0 .375rem 0 1rem;transition:border-color .2s,box-shadow .2s;display:flex}.zh-search:focus-within{border-color:var(--zh-blue-ink);box-shadow:0 0 0 3px var(--zh-blue-bg)}.zh-search-icon{width:18px;height:18px;color:var(--zh-muted);flex-shrink:0}.zh-search input{min-width:0;height:100%;color:var(--zh-ink);background:0 0;border:0;outline:0;flex:1;font-size:1rem}.zh-search input::placeholder{color:var(--zh-muted)}.zh-search input::-webkit-search-cancel-button{appearance:none}.zh-chip{border:1px solid var(--zh-line);color:var(--zh-body);background:0 0;border-radius:9999px;align-items:center;padding:.3rem .75rem;font-size:.8rem;transition:background-color .2s,transform .15s;display:inline-flex}.zh-chip:hover{background:var(--zh-kbd)}.zh-chip:active{transform:scale(.98)}.zh-prose{color:var(--zh-body);font-size:15.5px;line-height:1.65}.zh-prose>:first-child{margin-top:0}.zh-prose h1,.zh-prose h2,.zh-prose h3,.zh-prose h4{font-family:var(--font-newsreader), Georgia, serif;letter-spacing:-.01em;color:var(--zh-ink);margin:1.6em 0 .5em;font-weight:400;line-height:1.15}.zh-prose h1{font-size:30px}.zh-prose h2{border-bottom:1px solid var(--zh-line);padding-bottom:.3em;font-size:24px}.zh-prose h3{font-size:19px}.zh-prose p,.zh-prose ul,.zh-prose ol,.zh-prose pre,.zh-prose blockquote,.zh-prose table{margin:.8em 0}.zh-prose ul{padding-left:1.4em;list-style:outside}.zh-prose ol{padding-left:1.4em;list-style:decimal}.zh-prose li+li{margin-top:.25em}.zh-prose a{color:var(--zh-blue-ink);text-underline-offset:2px;text-decoration:underline}.zh-prose code{font-family:var(--font-geist-mono), monospace;background:var(--zh-kbd);border:1px solid var(--zh-line);border-radius:4px;padding:.1em .35em;font-size:.88em}.zh-prose pre{background:var(--zh-kbd);border:1px solid var(--zh-line);border-radius:8px;padding:.9rem 1rem;overflow-x:auto}.zh-prose pre code{background:0 0;border:0;padding:0;font-size:13px}.zh-prose blockquote{border-left:2px solid var(--zh-line);color:var(--zh-muted);padding-left:1rem}.zh-prose table{border-collapse:collapse;width:100%;font-size:14px}.zh-prose th,.zh-prose td{border:1px solid var(--zh-line);text-align:left;padding:.4rem .6rem}.zh-prose hr{border:0;border-top:1px solid var(--zh-line);margin:1.5em 0}.zh-prose img{max-width:100%}.zh-code{font-family:var(--font-geist-mono), monospace;counter-reset:line;font-size:13px;line-height:1.6;overflow-x:auto}.zh-code .line{grid-template-columns:3.5rem 1fr;display:grid}.zh-code .line:before{counter-increment:line;content:counter(line);text-align:right;color:var(--zh-muted);-webkit-user-select:none;user-select:none;padding-right:1rem}.zh-code .line>span{white-space:pre;padding-right:1rem}.zh-btn-icon{justify-content:center;width:2rem;padding:0}
