.blog-prose{--tw-prose-body:#d9e0f2;--tw-prose-headings:#f5f7fb;--tw-prose-lead:#cdd7f5;--tw-prose-links:#86caff;--tw-prose-bold:#f8fbff;--tw-prose-counters:#9eb0d8;--tw-prose-bullets:#5b6b8f;--tw-prose-hr:#2b3959;--tw-prose-quotes:#cbd5ff;--tw-prose-quote-borders:#30416a;--tw-prose-code:#e7ecfb;--tw-prose-pre-code:#f6f8ff;--tw-prose-th-borders:#2b3654;--tw-prose-td-borders:#202c47}.blog-prose :where(h2){color:#f8fbff;letter-spacing:-.02em;margin-top:2.2rem;margin-bottom:.65rem;scroll-margin-top:6rem;font-size:clamp(1.7rem,4vw,2.45rem);line-height:1.15}.blog-prose :where(h3){color:#f4f8ff;letter-spacing:-.02em;margin-top:1.8rem;margin-bottom:.5rem;font-size:clamp(1.35rem,2.7vw,1.95rem);line-height:1.2}.blog-prose :where(h4){color:#f4f8ff;letter-spacing:-.01em;margin-top:1.5rem;margin-bottom:.45rem;font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.3}.blog-prose :where(p){color:#dbe4f7;margin-bottom:1.35rem;line-height:1.78}.blog-prose :where(ul,ol){color:#dce6fa;margin-top:.35rem;margin-bottom:1.35rem;padding-left:1.25rem}.blog-prose :where(ul>li+li,ol>li+li){margin-top:.45rem}.blog-prose :where(a){color:#8fc9ff;text-underline-offset:3px}.blog-prose :where(a:hover){color:#bfdcff}.blog-prose :where(blockquote){color:#cfd8ef;background:linear-gradient(90deg,#ffffff0a,#0000);border-left:3px solid #49658e;border-radius:0 10px 10px 0;margin:2rem 0;padding:1rem 1rem 1rem 1.15rem}.blog-prose :where(blockquote p:last-child){margin-bottom:0}.blog-prose :where(table){border-collapse:separate;border-spacing:0;background:#ffffff05;border:1px solid #ffffff29;border-radius:12px;width:100%;margin:2rem 0;display:block;overflow-x:auto}.blog-prose :where(thead){background:#ffffff0f}.blog-prose :where(th,td){color:#e2ebff;border-bottom:1px solid #ffffff1f;border-right:1px solid #ffffff1a;padding:.75rem .9rem}.blog-prose :where(th:last-child,td:last-child){border-right:0}.blog-prose :where(tbody tr:last-child td){border-bottom:0}.blog-prose :where(strong){color:#f7faff}.blog-prose pre{color:#e5e7eb;background:linear-gradient(#111827e6,#111827cc);border:1px solid #ffffff1f;border-radius:14px;padding:1rem 2.5rem 1rem 1rem;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000040,inset 0 1px #ffffff14}.blog-prose :where(pre code){white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.95rem;line-height:1.65;display:block}.blog-prose :where(:not(pre)>code){color:#e5e7eb;background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;padding:.15rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em}.blog-prose .blog-mdx-media{background:radial-gradient(circle at 20% 10%,#94c3ff1f,#0000 45%),radial-gradient(circle at 88% 95%,#ad8cff24,#0000 47%),#ffffff0d;border-radius:14px;width:100%;margin:2rem 0;display:block;position:relative;overflow:hidden}.blog-prose .blog-mdx-media:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0810262e);position:absolute;inset:0}.blog-prose .blog-mdx-media img{object-fit:cover;object-position:center;width:100%;height:100%;min-height:220px;position:relative}.blog-prose .blog-mdx-content{min-width:0;max-width:100%}.blog-prose .blog-mdx-content :where(figure,img){max-width:100%}.blog-prose .blog-mdx-content :where(figure){width:100%;margin-left:0;margin-right:0}.blog-prose .blog-mdx-content :where(figure>img){width:100%;height:auto;display:block}.blog-prose .blog-mdx-table-wrap{background:#ffffff0a;border:1px solid #ffffff1f;border-radius:14px;width:100%;margin:2rem 0;overflow-x:auto}.blog-prose .blog-mdx-table-wrap table{border-collapse:collapse;width:100%;font-size:.95rem;line-height:1.5}.blog-prose .blog-mdx-table-wrap th,.blog-prose .blog-mdx-table-wrap td{text-align:left;color:#e5e7eb;border-bottom:1px solid #ffffff1a;padding:.75rem 1rem}.blog-prose .blog-mdx-table-wrap thead th{color:#fff;background:#ffffff0f;font-weight:600}.blog-prose .blog-mdx-table-wrap tbody tr:last-child td{border-bottom:none}.blog-prose .blog-mdx-table-wrap tbody tr:hover{background:#ffffff08}.blog-summary-sheet{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));width:auto;max-height:calc(100dvh - max(.75rem, env(safe-area-inset-top)) - max(.75rem, env(safe-area-inset-bottom)));position:fixed}.blog-summary-sheet>div{max-height:inherit}@media (min-width:640px) and (pointer:fine){.blog-summary-sheet{top:var(--blog-summary-top,.75rem);bottom:auto;right:auto;left:var(--blog-summary-left,.75rem);width:24rem;max-height:min(32rem,100dvh - 1.5rem)}}.code-copy-btn{color:#e5e7eb;cursor:pointer;z-index:1;background:#ffffff1f;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;line-height:1;transition:background .2s,transform 80ms;display:inline-flex;position:absolute;top:8px;right:8px}.code-copy-btn svg{opacity:.95;width:18px;height:18px;display:block}.code-copy-btn:hover{background:#fff3}.code-copy-btn:active{transform:translateY(1px)}.code-copy-btn.copied{background:#60a5fa40;border-color:#60a5fa80}.hljs{color:#e1e4e8;display:block;overflow-x:auto}article .prose pre code.hljs{color:#e1e4e8!important;background:0 0!important}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#8bdcff}.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#b8f7d4}.hljs-comment,.hljs-quote,.hljs-deletion,.hljs-meta{color:#8a98ad}.hljs-number,.hljs-regexp,.hljs-variable,.hljs-selector-attr,.hljs-selector-pseudo{color:#ffd38a}.blog-reading-progress-bar{z-index:80;pointer-events:none;background:#faf8f514;background:lab(97.7061% -.0120103 1.9075/.08);width:100%;height:3px;position:fixed;top:0;left:0}.blog-reading-progress-bar:after{content:"";width:100%;height:100%;transform:scaleX(var(--blog-reading-progress,0));transform-origin:0;background:linear-gradient(90deg,#00d2d3 0%,#3dd8ff 45%,#bea4ff 100%);background:linear-gradient(90deg,lab(76.1651% -52.3874 -15.6252) 0%,lab(79.8179% -32.0214 -33.009) 45%,lab(72.3407% 29.648 -52.2549) 100%);transition:transform 80ms linear;display:block;box-shadow:0 0 12px #00d2d38c;box-shadow:0 0 12px lab(76.1651% -52.3874 -15.6252/.55)}html.blog-reading-progress-active .liquid-root .liq-site-dock--inner{isolation:isolate;overflow:hidden}html.blog-reading-progress-active .liquid-root .liq-site-dock--inner>*{z-index:2;position:relative}html.blog-reading-progress-active .liquid-root .liq-site-dock--inner:before{content:"";z-index:0;border-radius:inherit;pointer-events:none;transform:scaleX(var(--blog-reading-progress,0));transform-origin:0;background:linear-gradient(90deg,#00d2d22e 0%,#00d2d26b 42%,#faf8f547 63%,#ab91f25c 100%),radial-gradient(120% 110% at 100%,#faf8f538,#0000 58%);background:linear-gradient(90deg,lab(75.9584% -45.8139 -13.731/.18) 0%,lab(75.9584% -45.8139 -13.731/.42) 42%,lab(97.7061% -.0120103 1.9075/.28) 63%,lab(65.6746% 25.6513 -45.7917/.36) 100%),radial-gradient(120% 110% at 100%,lab(97.7061% -.0120103 1.9075/.22),#0000 58%);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #00d2d252,0 0 28px #00d2d238;box-shadow:inset 0 0 0 1px lab(75.9584% -45.8139 -13.731/.32),0 0 28px lab(75.9584% -45.8139 -13.731/.22)}html.blog-reading-progress-active .liquid-root .liq-site-dock--inner:after{content:"";z-index:1;border-radius:inherit;pointer-events:none;opacity:max(.35, var(--blog-reading-progress,0));border:1px solid #00d2d261;border:1px solid lab(75.9584% -45.8139 -13.731/.38);position:absolute;inset:0}@media (max-width:820px){html.blog-reading-progress-active .liquid-root .liq-site-dock--inner{isolation:auto;overflow:visible}html.blog-reading-progress-active .liquid-root .liq-site-dock--inner:before,html.blog-reading-progress-active .liquid-root .liq-site-dock--inner:after{content:none}}.liquid-root .blog-hero-wrap{max-width:820px;margin:0 auto 1.25rem;position:relative}.liquid-root .blog-hero-frame{aspect-ratio:21/9;background:linear-gradient(120deg,#cdf7ff2e,#7bd3e91f);background:linear-gradient(120deg,lab(94.614% -16.0664 -12.9996/.18),lab(79.7171% -23.5618 -19.2661/.12));border-radius:18px;width:100%;max-height:min(280px,38vw);position:relative;overflow:hidden}.liquid-root .blog-hero-frame:after{content:"";pointer-events:none;background:linear-gradient(#00000005 0%,#0000005c 58%,#000000a6 100%);position:absolute;inset:0}.liquid-root .blog-hero-image{object-fit:cover;object-position:center;width:100%;height:100%}.liquid-root .blog-hero-fallback{aspect-ratio:21/9;isolation:isolate;background:radial-gradient(circle at 20% 12%,#71aab03d,#0000 46%),radial-gradient(circle at 83% 80%,#9286bb47,#0000 48%),linear-gradient(155deg,#050e1a,#02040d 72%);background:radial-gradient(circle at 20% 12%,lab(65.7333% -18.0455 -9.61204/.24),#0000 46%),radial-gradient(circle at 83% 80%,lab(58.4418% 13.5605 -26.4994/.28),#0000 48%),linear-gradient(155deg,lab(3.60868% -.400983 -8.37708),lab(1.14302% .337139 -3.58197) 72%);border-radius:18px;justify-content:space-between;align-items:flex-end;width:100%;max-height:min(280px,38vw);padding:clamp(1.1rem,2vw,1.6rem);display:flex;position:relative;overflow:hidden}.liquid-root .blog-hero-fallback:before{content:"";pointer-events:none;border:1px solid #faf8f526;border:1px solid lab(97.7061% -.0120103 1.9075/.15);border-radius:14px;position:absolute;inset:14px}.liquid-root .blog-hero-fallback-kicker{z-index:1;color:#f1eee7e0;color:lab(94.2512% -.00840426 3.82525/.88);font-family:var(--liq-mono);letter-spacing:.16em;text-transform:uppercase;font-size:11px;position:relative}.liquid-root .blog-hero-fallback-title{z-index:1;font-family:var(--liq-serif);letter-spacing:-.03em;color:#f9f8f833;color:lab(97.6853% -.00357628 .380754/.2);font-size:clamp(3.8rem,12vw,5.6rem);line-height:.82;position:relative;transform:translateY(7px)}.liquid-root .blog-article-header{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:820px;margin:0 auto 1.35rem;display:flex}.liquid-root .blog-article-title{width:100%;max-width:min(31ch,100%);color:var(--liq-ink);font-family:var(--liq-serif);letter-spacing:0;overflow-wrap:break-word;text-wrap:balance;margin:.15rem auto 1rem;font-size:clamp(2.55rem,4.1vw,3.05rem);line-height:1.03}.liquid-root .blog-article-dek{width:100%;color:var(--liq-ink-dim);text-wrap:pretty;max-width:66ch;margin:0 auto;line-height:1.72}.liquid-root .blog-meta-row{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 1rem;display:flex}.liquid-root .blog-tag-chip{max-width:100%;color:var(--liq-ink-dim);font-size:11px;font-family:var(--liq-mono);letter-spacing:.09em;text-transform:uppercase;overflow-wrap:anywhere;background:#faf8f514;background:lab(97.7061% -.0120103 1.9075/.08);border:1px solid #faf8f524;border:1px solid lab(97.7061% -.0120103 1.9075/.14);border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .72rem;display:inline-flex}.liquid-root .blog-meta-list{color:var(--liq-ink-dim);text-align:center;flex-wrap:wrap;justify-content:center;gap:1rem;margin:.95rem auto 0;font-size:.92rem;display:flex}.liquid-root .blog-meta-item{justify-content:center;align-items:center;gap:.4rem;min-width:0;max-width:100%;display:inline-flex}.liquid-root .blog-meta-item span{overflow-wrap:anywhere}.liquid-root .blog-meta-item-updated{color:#e0ded7c2;color:lab(88.4511% -.00676513 3.82638/.76);margin-left:.35rem}.liquid-root .blog-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;margin:.85rem auto 1.5rem;display:flex}.liquid-root .blog-listen-panel{background:radial-gradient(120% 140% at 0 0,#00d2d21f,#0000 55%),radial-gradient(120% 140% at 100% 100%,#ab91f21f,#0000 52%),#faf8f50a;background:radial-gradient(120% 140% at 0 0,lab(75.9584% -45.8139 -13.731/.12),#0000 55%),radial-gradient(120% 140% at 100% 100%,lab(65.6746% 25.6513 -45.7917/.12),#0000 52%),lab(97.7061% -.0120103 1.9075/.04);border:1px solid #00d2d238;border:1px solid lab(75.9584% -45.8139 -13.731/.22);border-radius:18px;width:100%;max-width:820px;margin:0 auto .75rem;padding:1rem 1.1rem 1.15rem;box-shadow:inset 0 1px #ffffff14;box-shadow:inset 0 1px lab(100% 0 0/.08)}.liquid-root .blog-listen-label{text-align:center;font-family:var(--liq-mono);letter-spacing:.14em;text-transform:uppercase;color:#c8e5e4e6;color:lab(88.7217% -9.78571 -3.02664/.9);margin:0 0 .75rem;font-size:11px}.liquid-root .blog-post-layout{display:block}.liquid-root .blog-toc{display:none}.liquid-root .blog-toc-inner{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#03060db8;background:lab(1.51253% .181951 -3.16651/.72);border:1px solid #faf8f51f;border:1px solid lab(97.7061% -.0120103 1.9075/.12);border-radius:14px;padding:.85rem .9rem;box-shadow:0 12px 40px -20px #000002b3;box-shadow:0 12px 40px -20px lab(.0987778% .129648 -.7231/.7)}.liquid-root .blog-toc-label{font-family:var(--liq-mono);letter-spacing:.12em;text-transform:uppercase;color:#d0e2e2db;color:lab(88.6147% -6.52224 -2.02272/.86);align-items:center;gap:.4rem;margin:0 0 .65rem;font-size:11px;display:inline-flex}.liquid-root .blog-toc-list{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.liquid-root .blog-toc-link{color:#e0ded7b8;color:lab(88.4511% -.00676513 3.82638/.72);border-left:2px solid #0000;border-radius:8px;padding:.4rem .55rem;font-size:.86rem;line-height:1.35;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:block}.liquid-root .blog-toc-link:hover{color:#faf8f5f2;color:lab(97.7061% -.0120103 1.9075/.95);background:#faf8f50f;background:lab(97.7061% -.0120103 1.9075/.06)}.liquid-root .blog-toc-link-active{color:#9defee;color:lab(89.2529% -26.1275 -7.97828);background:#00d2d21a;background:lab(75.9584% -45.8139 -13.731/.1);border-left-color:#00d2d2;border-left-color:lab(75.9584% -45.8139 -13.731)}@media (min-width:1280px){.liquid-root .blog-post-layout:has(.blog-toc){grid-template-columns:minmax(12.5rem,14.5rem) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.liquid-root .blog-toc{top:max(96px, calc(env(safe-area-inset-top) + 72px));z-index:20;scrollbar-width:thin;max-height:calc(100vh - 120px);margin-top:8.5rem;display:block;position:sticky;overflow-y:auto}}@media (max-width:900px){.liquid-root .blog-article-header{max-width:720px;margin-top:0;margin-bottom:1.25rem}.liquid-root .blog-article-title{max-width:min(28ch,100%);font-size:clamp(2.35rem,5.6vw,2.75rem);line-height:1.08}.liquid-root .blog-toolbar{gap:.5rem;margin-top:.85rem}}@media (max-width:640px){.liquid-root .blog-hero-frame,.liquid-root .blog-hero-fallback{aspect-ratio:16/9;border-radius:16px;max-height:min(200px,42vw)}.liquid-root .blog-article-title{max-width:100%;font-size:clamp(2rem,8.6vw,2.25rem);line-height:1.12}.liquid-root .blog-article-header{margin-top:0;margin-bottom:1rem}.liquid-root .blog-listen-panel{padding:.85rem .9rem 1rem}.liquid-root .blog-article-dek{line-height:1.62}.liquid-root .blog-meta-row,.liquid-root .blog-meta-list,.liquid-root .blog-toolbar{margin-inline:auto}.liquid-root .blog-meta-list{gap:.65rem .9rem}.liquid-root .blog-toolbar{gap:.5rem}}
