.blog-post{min-width:0;max-width:42rem;margin-inline:auto}.blog-post-content{font-family:var(--font-sans), system-ui, sans-serif;color:hsl(var(--foreground-soft));overflow-wrap:break-word;border-top:1px solid hsl(var(--border));min-width:0;padding-top:2rem;font-size:1rem;line-height:1.75}@media (min-width:640px){.blog-post-content{padding-top:2.5rem;font-size:1.0625rem}}.blog-post-content>*{min-width:0}.blog-post-content>*+*{margin-top:1.25em}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{letter-spacing:-.01em;text-wrap:balance;color:hsl(var(--foreground));scroll-margin-top:5.5rem;font-weight:300;line-height:1.25}.blog-post-content h1,.blog-post-content h2{margin-top:2.25em;font-size:1.85em}.blog-post-content h3{margin-top:1.9em;font-size:1.35em;font-weight:400}.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{letter-spacing:0;margin-top:1.6em;font-size:1.05em;font-weight:500}.blog-post-content .heading-anchor{color:hsl(var(--muted-foreground));opacity:0;margin-left:.4em;font-weight:300;text-decoration:none;transition:opacity .15s}.blog-post-content :is(h2,h3,h4):hover .heading-anchor,.blog-post-content .heading-anchor:focus-visible{opacity:1}.blog-post-content .heading-anchor:hover{color:hsl(var(--foreground))}@media (hover:none){.blog-post-content .heading-anchor{opacity:.45}}.blog-post-content>:is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.blog-post-content :is(h1,h2,h3,h4,h5,h6)+*{margin-top:.85em}.blog-post-content strong{font-weight:600}.blog-post-content a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:hsl(var(--muted-foreground));text-decoration-color:hsl(var(--muted-foreground));text-underline-offset:.18em;transition:text-decoration-color .15s}.blog-post-content a:hover{text-decoration-color:currentColor}.blog-post-content sup,.blog-post-content sub{line-height:0}.blog-post-content mark{background:var(--diagram-accent-soft);color:inherit;padding:0 .15em}.blog-post-content kbd{font-family:var(--font-typewriter);border:1px solid hsl(var(--border));background:hsl(var(--muted));border-bottom-width:2px;border-radius:.3rem;padding:.1em .4em;font-size:.85em}.blog-post-content ul,.blog-post-content ol{padding-left:1.5em}.blog-post-content ul{list-style:outside}.blog-post-content ol{list-style:decimal}.blog-post-content li{padding-left:.25em}.blog-post-content li+li,.blog-post-content li>ul,.blog-post-content li>ol{margin-top:.4em}.blog-post-content li>p+p{margin-top:.75em}.blog-post-content li::marker{color:hsl(var(--muted-foreground))}.blog-post-content ul.contains-task-list{padding-left:.25em;list-style:none}.blog-post-content .task-list-item input[type=checkbox]{vertical-align:-.1em;accent-color:currentColor;margin:0 .6em 0 0}.blog-post-content blockquote{border-left:3px solid hsl(var(--border));color:inherit;margin-inline:0;padding:.25em 0 .25em 1.25em;font-style:italic}.blog-post-content blockquote>*+*{margin-top:.75em}.blog-post-content blockquote cite{color:hsl(var(--muted-foreground));font-size:.9em;font-style:normal}.blog-post-content hr{background:hsl(var(--muted-foreground));opacity:.6;border:0;width:6rem;height:1px;margin:2.75em auto}.blog-post-content code{font-family:var(--font-typewriter);background:hsl(var(--muted));overflow-wrap:anywhere;border-radius:.3rem;padding:.12em .4em;font-size:.9em}.blog-post-content figure[data-rehype-pretty-code-figure]{margin-inline:0}.blog-post-content [data-rehype-pretty-code-title]{color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));background:hsl(var(--muted));border-bottom:0;border-radius:.5rem .5rem 0 0;padding:.5em 1.25em;font-size:.8em}.blog-post-content [data-rehype-pretty-code-title]+pre{border-top-left-radius:0;border-top-right-radius:0}.blog-post-content pre{font-family:var(--font-typewriter);background:hsl(var(--muted));border:1px solid hsl(var(--border));overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:.5rem;padding:1em 0;font-size:.875em;line-height:1.65;overflow-x:auto}.blog-post-content pre code{font-size:inherit;overflow-wrap:normal;background:0 0;border-radius:0;padding:0;display:grid}.blog-post-content pre [data-line]{padding:0 1.25em}.blog-post-content pre [data-highlighted-line]{background:var(--diagram-accent-soft)}.blog-post-content pre [data-highlighted-chars]{background:var(--diagram-accent-soft);border-radius:.2em;padding:.1em 0}.blog-post-content code[data-line-numbers]{counter-reset:line}.blog-post-content code[data-line-numbers]>[data-line]:before{counter-increment:line;content:counter(line);text-align:right;width:1.5rem;color:hsl(var(--muted-foreground));margin-right:1.25rem;display:inline-block}.blog-post-content code[data-theme*=\ ],.blog-post-content code[data-theme*=\ ] span{color:var(--shiki-light)}:root[data-theme=dark] .blog-post-content code[data-theme*=\ ],:root[data-theme=dark] .blog-post-content code[data-theme*=\ ] span{color:var(--shiki-dark)}.blog-post-content .table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;overflow-x:auto}.blog-post-content table{border-collapse:collapse;width:100%;font-size:.92em;line-height:1.5}.blog-post-content th,.blog-post-content td{border-bottom:1px solid hsl(var(--border));text-align:left;vertical-align:top;padding:.55em .8em}.blog-post-content th{border-bottom:2px solid hsl(var(--muted-foreground));font-weight:600}.blog-post-content tbody tr:hover{background:hsl(var(--muted))}.blog-post-content :is(th,td)[align=right]{text-align:right}.blog-post-content :is(th,td)[align=center]{text-align:center}.blog-post-content td>code,.blog-post-content th>code{white-space:nowrap}.blog-post-content figure{margin-inline:0}.blog-post-content figcaption{color:hsl(var(--muted-foreground));text-align:center;margin-top:.75em;font-size:.85em;line-height:1.5}.blog-post-content img{border-radius:.25rem;max-width:100%;height:auto;margin-inline:auto;display:block}.blog-post-content svg{max-width:100%;height:auto;color:hsl(var(--foreground));margin-inline:auto;display:block}.blog-post-content svg:not([width]){width:100%}.blog-post-content .footnotes{border-top:1px solid hsl(var(--border));margin-top:3em;padding-top:1.5em;font-size:.875em}.blog-post-content .footnotes>h2{clip:auto;clip-path:none;white-space:normal;letter-spacing:.12em;text-transform:uppercase;width:auto;height:auto;color:hsl(var(--muted-foreground));text-shadow:none;margin:0 0 .75em;padding:0;font-size:.8em;font-weight:600;position:static;overflow:visible}.blog-post-content .footnotes ol{padding-left:1.5em}.blog-post-content .footnotes li+li{margin-top:.6em}.blog-post-content .footnotes p{display:inline}.blog-post-content [data-footnote-ref]{padding:0 .15em;text-decoration:none}.blog-post-content [data-footnote-backref]{margin-left:.35em;text-decoration:none}.blog-post-content ::selection{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.blog-post-content .pullquote{border-left:3px solid var(--diagram-accent);text-wrap:balance;margin:2rem 0;padding-left:1.15rem;font-size:1.35rem;line-height:1.3}.blog-post-content .figure-flush img{width:100%;height:auto}.blog-post-content .figure-phone{flex-direction:column;align-items:center;display:flex}.blog-post-content .figure-phone figcaption{text-align:center}.blog-post-content .browser{border:1px solid hsl(var(--border));background:hsl(var(--secondary));border-radius:9px;overflow:hidden}.blog-post-content .browser-bar{border-bottom:1px solid hsl(var(--border));align-items:center;gap:7px;padding:9px 12px;display:flex}.blog-post-content .browser-bar .tl{border-radius:50%;flex:none;width:10px;height:10px}.blog-post-content .browser-bar .tl1{background:#ff5f57}.blog-post-content .browser-bar .tl2{background:#febc2e}.blog-post-content .browser-bar .tl3{background:#28c840}.blog-post-content .browser-url{text-align:center;max-width:20rem;font-family:var(--font-typewriter), monospace;color:hsl(var(--muted-foreground));background:hsl(var(--background));border:1px solid hsl(var(--border));white-space:nowrap;text-overflow:ellipsis;border-radius:20px;flex:1;margin-inline:auto;padding:3px 10px;font-size:.7rem;overflow:hidden}.blog-post-content .browser img{border:0;border-radius:0;margin:0;display:block}.blog-post-content .iphone{width:min(270px,70%);box-shadow:0 0 0 2px hsl(var(--border)), 0 18px 40px #00000047;background:#1b1e1d;border-radius:40px;padding:9px;position:relative}.blog-post-content .iphone:after{content:"";z-index:1;background:#000;border-radius:9px;width:62px;height:17px;position:absolute;top:19px;left:50%;transform:translate(-50%)}.blog-post-content .iphone-screen{aspect-ratio:390/844;scrollbar-width:none;background:#0b0e0d;border-radius:32px;overflow:hidden auto}.blog-post-content .iphone-screen::-webkit-scrollbar{display:none}.blog-post-content .iphone-screen img{border:0;border-radius:0;width:100%;height:auto;margin:0;display:block}.blog-post-content .livefleet{border:1px solid hsl(var(--border));background:hsl(var(--secondary));border-radius:8px;margin:1.5rem 0}.blog-post-content .livefleet-h{border-bottom:1px solid hsl(var(--border));font-family:var(--font-typewriter), monospace;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--muted-foreground));flex-wrap:wrap;align-items:center;gap:.5rem .8rem;padding:.8rem 1.1rem;font-size:.66rem;font-weight:700;display:flex}.blog-post-content .livefleet .dot{background:#2f6f4e;border-radius:50%;flex:none;width:7px;height:7px}.blog-post-content .livefleet-rows>div{border-bottom:1px solid hsl(var(--border));grid-template-columns:1fr auto;gap:.15rem .9rem;padding:.7rem 1.1rem;display:grid}.blog-post-content .livefleet-rows>div:last-child{border-bottom:0}.blog-post-content .livefleet .n{font-weight:600}.blog-post-content .livefleet .s{font-family:var(--font-typewriter), monospace;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;white-space:pre-wrap;grid-column:1/-1;font-size:.72rem}.blog-post-content .livefleet .u{font-family:var(--font-typewriter), monospace;color:hsl(var(--muted-foreground));white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.72rem}.blog-post-content .livefleet-f{font-family:var(--font-typewriter), monospace;color:hsl(var(--muted-foreground));border-top:1px solid hsl(var(--border));padding:.7rem 1.1rem;font-size:.68rem;line-height:1.6}.blog-post-content .compare{border:1px solid hsl(var(--border));background:hsl(var(--secondary));font-family:var(--font-typewriter), monospace;color:hsl(var(--muted-foreground));border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.6rem 1.1rem;margin:1.5rem 0;padding:1.2rem 1.4rem;font-size:.8rem;display:flex}.blog-post-content .compare b{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700}.blog-post-content .compare .a{color:#2f6f4e}.blog-post-content .compare .b{color:var(--diagram-accent)}.blog-post-content .qflow{border:1px solid hsl(var(--border));background:hsl(var(--secondary));font-family:var(--font-typewriter), monospace;border-radius:8px;grid-template-columns:.85fr 1.05fr 1.25fr;gap:12px;padding:14px;font-size:.72rem;line-height:1.5;display:grid}@media (max-width:600px){.blog-post-content .qflow{grid-template-columns:1fr}}.blog-post-content .qp{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:6px;flex-direction:column;gap:9px;min-height:128px;padding:10px 11px;display:flex}.blog-post-content .qp h4{letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin:0;font-size:.6rem;font-weight:700}.blog-post-content .qbtn{background:var(--diagram-accent);color:#fff;border-radius:5px;align-self:flex-start;padding:7px 11px;font-size:.7rem;font-weight:700;animation:9s infinite qpress}.blog-post-content .qrow{border:1px solid hsl(var(--border));background:hsl(var(--secondary));border-radius:5px;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 8px;animation:9s infinite qrowin;display:flex}.blog-post-content .qchips{display:grid}.blog-post-content .qchips i{white-space:nowrap;opacity:0;border:1px solid;border-radius:20px;grid-area:1/1;padding:2px 7px;font-size:.64rem;font-style:normal;font-weight:700}.blog-post-content .qchips .c1{color:hsl(var(--muted-foreground));animation:9s infinite qc1}.blog-post-content .qchips .c2{color:#3f6fa0;animation:9s infinite qc2}.blog-post-content .qchips .c3{color:var(--diagram-accent);animation:9s infinite qc3}.blog-post-content .qchips .c4{color:#2f6f4e;animation:9s infinite qc4}.blog-post-content .qlog{color:hsl(var(--muted-foreground));flex-direction:column;gap:3px;font-size:.68rem;display:flex}.blog-post-content .qlog span{opacity:0}.blog-post-content .qlog span b{color:hsl(var(--foreground));font-weight:700}.blog-post-content .qlog span:first-child{animation:9s infinite ql1}.blog-post-content .qlog span:nth-child(2){animation:9s infinite ql2}.blog-post-content .qlog span:nth-child(3){animation:9s infinite ql3}.blog-post-content .qlog span:nth-child(4){animation:9s infinite ql4}.blog-post-content .qlog span:nth-child(5){animation:9s infinite ql5}@keyframes qpress{0%,4%{transform:none}6%{transform:scale(.93)}9%,to{transform:none}}@keyframes qrowin{0%,8%{opacity:0;transform:translateY(5px)}12%,93%{opacity:1;transform:none}to{opacity:0}}@keyframes qc1{0%,9%{opacity:0}11%,19%{opacity:1}21%,to{opacity:0}}@keyframes qc2{0%,19%{opacity:0}21%,29%{opacity:1}31%,to{opacity:0}}@keyframes qc3{0%,29%{opacity:0}31%,67%{opacity:1}69%,to{opacity:0}}@keyframes qc4{0%,67%{opacity:0}69%,93%{opacity:1}to{opacity:0}}@keyframes ql1{0%,31%{opacity:0}33%,91%{opacity:1}to{opacity:0}}@keyframes ql2{0%,38%{opacity:0}40%,91%{opacity:1}to{opacity:0}}@keyframes ql3{0%,46%{opacity:0}48%,91%{opacity:1}to{opacity:0}}@keyframes ql4{0%,54%{opacity:0}56%,91%{opacity:1}to{opacity:0}}@keyframes ql5{0%,62%{opacity:0}64%,91%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.blog-post-content .qflow *{animation:none!important}.blog-post-content .qrow{opacity:1}.blog-post-content .qchips i{opacity:0}.blog-post-content .qchips .c4,.blog-post-content .qlog span{opacity:1}}.blog-post-content .ama{border:1px solid var(--diagram-accent);background:var(--diagram-accent-soft);border-radius:8px;margin:2rem 0 0;padding:1.3rem 1.5rem}.blog-post-content .ama p{margin:0}.blog-post-content .ama-k{font-family:var(--font-typewriter), monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--diagram-accent);margin-bottom:.5rem;font-size:.66rem;font-weight:700;display:block}.ama-float{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:40;border:1px solid var(--diagram-accent);background:hsl(var(--background));opacity:0;pointer-events:none;border-radius:999px;align-items:stretch;transition:opacity .22s,transform .22s;display:flex;position:fixed;transform:translateY(8px);box-shadow:0 6px 22px #00000024}.ama-float[data-shown=true]{opacity:1;pointer-events:auto;transform:none}.ama-float a{color:hsl(var(--foreground));white-space:nowrap;border-radius:999px 0 0 999px;align-items:center;gap:.5rem;padding:.55rem .5rem .55rem .95rem;font-size:.85rem;font-weight:500;line-height:1;text-decoration:none;display:flex}.ama-float a:hover{color:var(--diagram-accent)}.ama-float a svg{fill:currentColor;flex:none;width:.95em;height:.95em;margin:0}.ama-float button{width:2rem;color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:0;border-radius:0 999px 999px 0;place-items:center;padding:0 .6rem 0 .2rem;display:grid}.ama-float button:hover{color:var(--diagram-accent)}.ama-float button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:.85rem;height:.85rem;margin:0}@media (max-width:640px){.ama-float{left:50%;right:auto;transform:translate(-50%,8px)}.ama-float[data-shown=true]{transform:translate(-50%)}.ama-float a{padding-left:.85rem;font-size:.8rem}}@media (prefers-reduced-motion:reduce){.ama-float{transition:none;transform:none}@media (max-width:640px){.ama-float,.ama-float[data-shown=true]{transform:translate(-50%)}}}@media print{.ama-float{display:none}}
