/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-leading:initial;--tw-space-y-reverse:0;--tw-border-style:solid}}}.blog-content h2{margin-top:calc(var(--spacing,.25rem) * 16);margin-bottom:calc(var(--spacing,.25rem) * 8);font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:oklch(var(--heading) / 1)}.blog-content h3{margin-top:calc(var(--spacing,.25rem) * 12);margin-bottom:calc(var(--spacing,.25rem) * 6);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:oklch(var(--heading) / 1)}.blog-content p{margin-bottom:calc(var(--spacing,.25rem) * 8);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:oklch(var(--secondary) / 1)}.blog-content ul{margin-bottom:calc(var(--spacing,.25rem) * 8);list-style-type:disc;list-style-position:inside}:where(.blog-content ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.blog-content ul{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));color:oklch(var(--secondary) / 1)}.blog-content ol{margin-bottom:calc(var(--spacing,.25rem) * 8);list-style-type:decimal;list-style-position:inside}:where(.blog-content ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.blog-content ol{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));color:oklch(var(--secondary) / 1)}.blog-content li::marker{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:oklch(var(--primary) / 1)}.blog-content a{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:oklch(var(--primary) / 1);text-decoration-line:underline;-webkit-text-decoration-color:oklch(var(--primary) / 1);text-decoration-color:oklch(var(--primary) / 1)}@supports (color:color-mix(in lab,red,red)){.blog-content a{-webkit-text-decoration-color:color-mix(in oklab,oklch(var(--primary) / 1) 30%,transparent);text-decoration-color:color-mix(in oklab,oklch(var(--primary) / 1) 30%,transparent)}}.blog-content a{text-underline-offset:4px;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){.blog-content a:hover{-webkit-text-decoration-color:oklch(var(--primary) / 1);text-decoration-color:oklch(var(--primary) / 1)}}.blog-content blockquote{margin-block:calc(var(--spacing,.25rem) * 12);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:oklch(var(--primary) / 1)}@supports (color:color-mix(in lab,red,red)){.blog-content blockquote{border-color:color-mix(in oklab,oklch(var(--primary) / 1) 30%,transparent)}}.blog-content blockquote{padding-left:calc(var(--spacing,.25rem) * 8);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:oklch(var(--heading) / 1);font-style:italic}.blog-content>*{max-width:100%}.blog-content :where(p,li,blockquote,figcaption,h1,h2,h3,h4,h5,h6,td,th){overflow-wrap:anywhere;word-break:break-word}.blog-content :where(img,video,canvas,svg,iframe,embed,object){max-width:100%;height:auto}.blog-content table{border-collapse:collapse;border:1px solid oklch(var(--stroke) / .5);border-radius:.75rem;width:100%;margin:2.5rem 0;font-size:.95rem;line-height:1.6;display:block;overflow-x:auto}.blog-content thead{background:oklch(var(--inset));border-bottom:2px solid oklch(var(--stroke) / .6)}.blog-content th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:oklch(var(--heading));white-space:nowrap;padding:.85rem 1.25rem;font-size:.8rem;font-weight:700}.blog-content td{color:oklch(var(--secondary));border-top:1px solid oklch(var(--stroke) / .35);padding:.85rem 1.25rem}.blog-content tbody tr:hover td{background:oklch(var(--subtle))}.blog-content pre{border:1px solid #d0d7dee6;border-radius:.875rem;margin:2.5rem 0;padding-top:2.75rem;font-size:.875rem;line-height:1.75;position:relative;overflow:hidden;box-shadow:0 4px 24px #0000000f;background:#f6f8fa!important}.blog-content pre:before{content:"";pointer-events:none;background-color:#e8eaed;background-image:radial-gradient(5.5px at 18px,#ff5f56 100%,#0000),radial-gradient(5.5px at 38px,#febc2e 100%,#0000),radial-gradient(5.5px at 58px,#27c93f 100%,#0000);border-bottom:1px solid #d0d7dee6;height:2.75rem;position:absolute;top:0;left:0;right:0}.blog-content pre code{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#00000026 transparent;padding:1.375rem 1.5rem;display:block;overflow-x:auto;background:0 0!important}.blog-content pre code::-webkit-scrollbar{height:6px}.blog-content pre code::-webkit-scrollbar-track{background:0 0}.blog-content pre code::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.blog-content .copy-btn{z-index:10;letter-spacing:.02em;color:#0006;cursor:pointer;background:#0000000d;border:1px solid #0000001f;border-radius:.4rem;align-items:center;gap:.3rem;padding:.25rem .65rem;font-family:Geist Mono,monospace;font-size:.72rem;font-weight:500;line-height:1;transition:color .15s,background .15s,border-color .15s;display:inline-flex;position:absolute;top:.55rem;right:.75rem}.blog-content .copy-btn:hover{color:#000000b3;background:#00000014;border-color:#0003}.blog-content .copy-btn.copied{color:#4ade80;border-color:#4ade8059}.mobile-progress-bar{z-index:50;background:oklch(var(--stroke) / .3);opacity:0;pointer-events:none;height:3px;transition:opacity .4s;position:fixed;top:4rem;left:0;right:0}.mobile-progress-bar.visible{opacity:1}@media(min-width:1280px){.mobile-progress-bar{display:none}}.mobile-progress-fill{background:oklch(var(--primary));border-radius:0 999px 999px 0;width:0%;height:100%;transition:width .12s ease-out}.mobile-progress-bar .mb-dot{border:2px solid oklch(var(--stroke) / .5);background:oklch(var(--base));cursor:pointer;z-index:2;border-radius:50%;width:9px;height:9px;transition:border-color .25s,background .25s,transform .25s,box-shadow .25s;position:absolute;top:50%;transform:translate(-50%,-50%)}.mobile-progress-bar .mb-dot.reached{border-color:oklch(var(--primary));background:oklch(var(--primary))}.mobile-progress-bar .mb-dot.active{border-color:oklch(var(--primary));background:oklch(var(--primary));box-shadow:0 0 0 4px oklch(var(--primary) / .15);transform:translate(-50%,-50%)scale(1.5)}.reading-progress{z-index:40;opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:.6rem;transition:opacity .4s;display:none;position:fixed;top:50%;left:max(2rem,50vw - 31rem);transform:translateY(-50%)}.reading-progress.visible{opacity:1;pointer-events:auto}@media(min-width:1280px){.reading-progress{display:flex}}.progress-pct{color:oklch(var(--primary));letter-spacing:.08em;background:oklch(var(--primary) / .08);text-align:center;border-radius:999px;min-width:3.2rem;padding:.3rem .65rem;font-family:Geist Mono,monospace;font-size:.75rem;font-weight:700}.progress-timeline{flex-direction:column;align-items:center;display:flex;position:relative}.timeline-track{background:oklch(var(--stroke) / .3);border-radius:999px;width:2px;position:absolute;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.timeline-fill{background:oklch(var(--primary));border-radius:999px;width:100%;height:0%;transition:height .12s ease-out;position:absolute;top:0;left:0}.progress-timeline .tl-dot{cursor:pointer;z-index:2;align-items:center;text-decoration:none;display:flex;position:absolute;left:50%;transform:translate(-50%,-50%)}.progress-timeline .tl-dot .circle{border:2px solid oklch(var(--stroke) / .5);background:oklch(var(--surface));border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:border-color .25s,background .25s,transform .25s,box-shadow .25s}.progress-timeline .tl-dot.reached .circle{border-color:oklch(var(--primary));background:oklch(var(--primary))}.progress-timeline .tl-dot.active .circle{border-color:oklch(var(--primary));background:oklch(var(--primary));box-shadow:0 0 0 4px oklch(var(--primary) / .12);transform:scale(1.4)}.progress-timeline .tl-dot .tl-label{white-space:nowrap;color:oklch(var(--muted));letter-spacing:.03em;opacity:0;pointer-events:none;text-overflow:ellipsis;max-width:130px;font-size:.65rem;font-weight:600;transition:opacity .2s,transform .2s,color .2s;position:absolute;left:auto;right:calc(100% + .55rem);overflow:hidden;transform:translate(3px)}.progress-timeline .tl-dot.label-hidden .tl-label{display:none}.reading-progress:hover .tl-dot:not(.label-hidden) .tl-label{opacity:1;pointer-events:auto;transform:translate(0)}.progress-timeline .tl-dot.active .tl-label{color:oklch(var(--primary))}.blog-content :not(pre)>code{background:oklch(var(--inset));color:oklch(var(--primary));border:1px solid oklch(var(--stroke) / .6);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;border-radius:.35rem;padding:.15em .45em;font-family:Geist Mono,ui-monospace,monospace;font-size:.85em}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
