.site-main{min-height:60vh;padding:clamp(2.75rem,7vw,4.5rem) 0 clamp(4.5rem,10vw,7rem)}body.page-blog{--font-prose:"Avenir Next", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--blog-glow:#c964421a}body.page-blog:before{background:radial-gradient(1100px 620px at 12% -8%, var(--blog-glow), transparent 58%), radial-gradient(800px 480px at 92% 4%, #d97a5212, transparent 55%), radial-gradient(640px 420px at 50% 100%, #c964420a, transparent 60%)}.blog-post.wrap,.blog-index.wrap{max-width:60rem;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2rem)}.blog-kicker{font-family:var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin:0 0 .9rem;font-size:.72rem;font-weight:600}.blog-kicker:before{content:"// ";color:var(--faint)}.blog-kicker a{color:inherit;text-decoration:none}.blog-kicker a:hover{color:var(--primary-2)}.blog-index-header h1,.blog-post-header h1{font-family:var(--font);letter-spacing:-.035em;color:var(--text);text-wrap:balance;margin:0;font-size:clamp(2rem,4.6vw,2.75rem);font-weight:700;line-height:1.15}.blog-meta{font-family:var(--font);letter-spacing:.02em;color:var(--muted);margin:1rem 0 0;font-size:.78rem}.blog-dek{font-family:var(--font-prose);color:var(--muted);text-wrap:pretty;max-width:40rem;margin:1.25rem 0 0;font-size:clamp(1.1rem,2.2vw,1.2rem);line-height:1.55}.blog-post-header{border-bottom:0;margin-bottom:2.75rem;padding-bottom:0}.blog-hero{border-radius:calc(var(--radius) + 4px);border:1px solid color-mix(in srgb, var(--border) 80%, var(--primary) 20%);background:linear-gradient(160deg, color-mix(in srgb, var(--panel) 88%, var(--primary) 12%), var(--panel-2));aspect-ratio:16/9;min-height:clamp(16rem,42vw,28rem);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 8%, transparent), 0 28px 56px -30px #000000b3;margin:2.25rem 0 0;padding:0;position:relative;overflow:hidden}.blog-hero:after{content:"";pointer-events:none;background:linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--bg) 55%, transparent));opacity:.55;position:absolute;inset:0}.blog-hero img{object-fit:cover;width:100%;height:100%;display:block}.blog-index-header{border-bottom:1px solid var(--border);margin-bottom:2.25rem;padding-bottom:1.75rem}.blog-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:2.25rem 0 0;padding:0;list-style:none;display:grid}.blog-card{border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, var(--panel) 75%, transparent);height:100%;color:inherit;flex-direction:column;padding:0;text-decoration:none;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:flex;overflow:hidden}.blog-card:hover{border-color:color-mix(in srgb, var(--primary) 50%, var(--border));background:var(--panel);transform:translateY(-3px);box-shadow:0 18px 40px -28px #000000d9}.blog-card-image{aspect-ratio:16/9;object-fit:cover;background:var(--panel-2);border-bottom:1px solid var(--border);width:100%;height:auto;min-height:0;display:block}.blog-card-body{flex-direction:column;flex:1;min-width:0;padding:1.2rem 1.3rem 1.35rem;display:flex}.blog-card time{font-family:var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.blog-card h2{font-family:var(--font);letter-spacing:-.02em;color:var(--text);text-wrap:balance;margin:.55rem 0 .5rem;font-size:1.12rem;font-weight:650;line-height:1.3}.blog-card p{font-family:var(--font-prose);color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.5;display:-webkit-box;overflow:hidden}.blog-empty{font-family:var(--font-prose);color:var(--muted);margin-top:2rem}.blog-prose{font-family:var(--font-prose);color:color-mix(in srgb, var(--text) 92%, transparent);font-size:1.085rem;line-height:1.78}.blog-prose>:first-child{margin-top:0}.blog-prose :where(h2,h3){font-family:var(--font);letter-spacing:-.025em;color:var(--text);text-wrap:balance;font-weight:700;line-height:1.25}.blog-prose h2{border-top:1px solid var(--border);margin:3rem 0 1rem;padding-top:1.75rem;font-size:clamp(1.2rem,2.4vw,1.4rem)}.blog-prose h2:first-child{border-top:0;margin-top:0;padding-top:0}.blog-prose h3{margin:2rem 0 .75rem;font-size:1.05rem}.blog-prose :where(p,ul,ol,pre,blockquote,table){margin:0 0 1.2rem}.blog-prose :where(ul,ol){padding-left:1.35rem}.blog-prose li{margin:.4rem 0;padding-left:.2rem}.blog-prose li::marker{color:color-mix(in srgb, var(--primary) 55%, var(--muted))}.blog-prose a{color:var(--primary);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--primary) 40%, transparent);text-underline-offset:.2em;transition:color .15s,text-decoration-color .15s}.blog-prose a:hover{color:var(--primary-2);text-decoration-color:color-mix(in srgb, var(--primary-2) 55%, transparent)}.blog-prose strong{color:var(--text);font-weight:650}.blog-prose code{font-family:var(--font);background:color-mix(in srgb, var(--panel-2) 92%, transparent);border:1px solid var(--border-soft);color:color-mix(in srgb, var(--text) 92%, var(--primary) 8%);border-radius:5px;padding:.14em .42em;font-size:.86em}.blog-prose pre{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, var(--primary) 8%), var(--panel));border:1px solid var(--border);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--primary) 12%, transparent);border-radius:12px;padding:1.15rem 1.25rem;line-height:1.55;overflow-x:auto}.blog-prose .blog-code{margin:0 0 1.2rem;position:relative}.blog-prose .blog-code pre{margin:0;padding-right:4.75rem}.blog-prose .blog-code-copy{z-index:1;font-family:var(--font);cursor:pointer;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;min-width:3.25rem;min-height:2rem;padding:6px 12px;font-size:.72rem;font-weight:600;transition:border-color .15s,color .15s;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)}.blog-prose .blog-code-copy:hover{border-color:var(--primary);color:var(--primary)}.blog-prose .blog-code-copy.done{border-color:var(--green);color:var(--green)}.blog-prose .blog-code-copy:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.blog-prose pre code{color:var(--text);background:0 0;border:0;padding:0;font-size:.84rem}.blog-prose blockquote{border-left:2px solid var(--primary);background:color-mix(in srgb, var(--primary-soft) 70%, transparent);color:var(--muted);border-radius:0 10px 10px 0;margin-left:0;padding:.85rem 1rem}.blog-prose table{border-collapse:collapse;width:100%;font-family:var(--font);border:1px solid var(--border);border-radius:12px;font-size:.9rem;display:block;overflow:hidden}.blog-prose thead,.blog-prose tbody,.blog-prose tr{table-layout:fixed;width:100%;display:table}.blog-prose th,.blog-prose td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.75rem 1rem}.blog-prose th{background:color-mix(in srgb, var(--panel) 85%, transparent);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:600}.blog-prose tr:last-child td{border-bottom:0}.blog-prose td:first-child{color:var(--text);white-space:nowrap}.blog-prose td:first-child code{white-space:nowrap}.blog-prose hr{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--primary) 35%, var(--border)), transparent);border:0;height:1px;margin:2.75rem 0}.blog-get{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.75rem}.blog-get h2{font-family:var(--font);letter-spacing:-.025em;color:var(--text);margin:0 0 1rem;font-size:clamp(1.2rem,2.4vw,1.4rem);font-weight:700}.blog-get-install{border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, var(--primary) 8%), var(--panel));width:100%;min-width:0;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--primary) 12%, transparent);border-radius:12px;align-items:center;gap:.75rem;padding:.85rem .85rem .85rem 1.15rem;display:flex}.blog-get-install code{min-width:0;font-family:var(--font);color:var(--text);white-space:nowrap;scrollbar-width:thin;-webkit-overflow-scrolling:touch;flex:auto;font-size:.88rem;overflow-x:auto}.blog-get-install .copy{font-family:var(--font);cursor:pointer;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;flex:none;min-height:2rem;padding:6px 12px;font-size:.72rem;font-weight:600;transition:border-color .15s,color .15s}.blog-get-install .copy:hover{border-color:var(--primary);color:var(--primary)}.blog-get-install .copy.done{border-color:var(--green);color:var(--green)}.blog-get-note{font-family:var(--font-prose);color:var(--muted);margin:1.15rem 0 0;font-size:.95rem;line-height:1.55}.blog-get-note a{color:var(--primary);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--primary) 40%, transparent);text-underline-offset:.2em}.blog-get-note a:hover{color:var(--primary-2)}@media (width<=960px){.blog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.site-main{padding:clamp(2rem,8vw,3rem) 0 clamp(3.5rem,12vw,5rem)}.blog-post.wrap,.blog-index.wrap{padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right))}.blog-index-header h1,.blog-post-header h1{font-size:clamp(1.65rem,7.5vw,2.1rem)}.blog-dek{max-width:none;font-size:1.05rem}.blog-prose{overflow-wrap:anywhere;font-size:1.04rem;line-height:1.72}.blog-list{grid-template-columns:1fr;gap:1rem}.blog-card:hover{transform:none}.blog-card-body{padding:1.1rem 1.15rem 1.25rem}.blog-hero{border-radius:var(--radius);margin-top:1.5rem}.blog-prose .blog-code pre{-webkit-overflow-scrolling:touch;padding:1rem 4.5rem 1rem .9rem;font-size:.8rem}.blog-prose .blog-code-copy{min-height:2.25rem;padding:7px 12px;right:.5rem}.blog-prose table{-webkit-overflow-scrolling:touch;font-size:.84rem;display:block;overflow-x:auto}.blog-prose th,.blog-prose td{padding:.65rem .75rem}.blog-prose td:first-child{white-space:nowrap}.blog-get-install{gap:.55rem;padding:.75rem}.blog-get-install code{font-size:.78rem}.blog-hero{min-height:14rem}}
