:root{--pal-ink: #010a17;--pal-paper: #ffffff;--pal-gray: color-mix(in srgb, #e4ebf5, #fff 50%);--pal-canvas: #e4ebf5;--pal-accent: #1d39f5;--pal-btn-fill: #2b00d4;--pal-btn-edge: #1e3ced;--pal-btn-glow: #1587fc;--pal-light: #1d39f5;--pal-deep: #010a17;--pal-night: #070317;--pal-btn: var(--pal-ink);--pal-slate: #b9bdc8;--pal-slate-text: color-mix(in srgb, #64748b 85%, #010a17);--pal-brand: var(--pal-accent);--pal-brand-dark: var(--pal-deep);--pal-brand-light: color-mix(in srgb, var(--pal-light), #fff 40%);--pal-brand-tint: color-mix(in srgb, var(--pal-accent) 8%, #fff);--pal-signal: #4ade80;--pal-decor-1: var(--pal-accent);--pal-decor-2: var(--pal-accent);--pal-decor-3: var(--pal-accent);--pal-decor-4: var(--pal-accent);--pal-glow: var(--pal-ink);--pal-glow-accent: color-mix(in srgb, var(--pal-accent) 70%, var(--pal-deep));--c-bg: var(--pal-paper);--c-bg-soft: var(--pal-gray);--c-bg-hover: color-mix(in srgb, var(--pal-gray), var(--pal-ink) 3%);--c-ink: var(--pal-ink);--c-text: color-mix(in srgb, var(--pal-ink) 90%, var(--pal-paper));--c-text-muted: var(--pal-slate-text);--c-icon: var(--pal-slate);--c-line: rgba(11, 11, 15, 0.08);--c-line-strong: rgba(11, 11, 15, 0.16);--c-canvas: var(--c-bg);--c-card: var(--pal-gray);--c-card-hover: color-mix(in srgb, var(--pal-gray), var(--pal-deep) 4%);--c-card-line: color-mix(in srgb, var(--pal-ink) 9%, transparent);--c-skeleton: color-mix(in srgb, var(--pal-gray), var(--pal-ink) 7%);--c-skeleton-strong: color-mix(in srgb, var(--pal-gray), var(--pal-ink) 22%);--c-placeholder: color-mix(in srgb, var(--pal-ink) 45%, var(--pal-paper));--c-field: var(--pal-gray);--c-field-line: color-mix(in srgb, var(--pal-deep) 35%, var(--pal-paper));--c-field-line-hover: color-mix(in srgb, var(--pal-deep) 55%, var(--pal-paper));--c-accent: var(--pal-brand);--c-btn-fill: var(--pal-btn-fill);--c-btn-edge: var(--pal-btn-edge);--c-btn-glow: var(--pal-btn-glow);--c-accent-on-canvas: color-mix(in srgb, var(--pal-brand), var(--pal-deep) 20%);--c-btn: var(--pal-btn);--c-btn-hover: color-mix(in srgb, var(--pal-btn), #fff 16%);--c-accent-soft: var(--pal-brand-tint);--c-accent-on-dark: var(--pal-brand-light);--c-highlight: var(--pal-brand-light);--c-decor-1: var(--pal-decor-1);--c-decor-2: var(--pal-decor-2);--c-decor-3: var(--pal-decor-3);--c-decor-4: var(--pal-decor-4);--c-glow: var(--pal-glow);--c-glow-accent: var(--pal-glow-accent);--g-brand: linear-gradient(90deg, var(--c-decor-1) 0%, var(--c-decor-2) 28%, var(--c-decor-3) 68%, var(--c-decor-4) 100%);--g-brand-text: linear-gradient(135deg, var(--c-decor-3), var(--c-accent));--c-dark: var(--pal-ink);--c-on-dark: #f5f5f7;--c-on-dark-muted: rgba(245, 245, 247, 0.68);--c-panel-dark: var(--pal-brand-dark);--c-panel-raised: color-mix(in srgb, var(--pal-brand-dark), #fff 7%);--c-night: var(--pal-night);--c-success: #16a34a;--c-success-text: #15803d;--c-success-soft: #dcfce7;--c-success-on-dark: var(--pal-signal);--c-live: var(--pal-signal);--c-danger: #d93a2f;--c-danger-text: #b3261e;--c-warning: #f5a524;--c-warning-soft: #fef3c7;--c-warning-text: #92400e;--f-sans: "Averta", "Averta Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xs: 0.8125rem;--fs-sm: 0.875rem;--fs-md: 1rem;--fs-base: 1rem;--fs-lg: 1.25rem;--fs-xl: clamp(1.5rem, 1.15rem + 1.4vw, 1.875rem);--fs-display: clamp(2.125rem, 1.3rem + 3vw, 3.25rem);--fs-h1: clamp(2.5rem, 1.4rem + 4.2vw, 5.125rem);--fs-h2: clamp(2rem, 1.35rem + 2.2vw, 3rem);--fs-h3: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);--fs-h4: clamp(1.375rem, 1.1rem + 0.9vw, 1.75rem);--fs-h5: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);--fs-h1-col: clamp(2.5rem, 1.35rem + 4.3vw, 4.5rem);--fs-lead: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);--fs-lead-sm: 1.125rem;--lh-tight: 1.1;--lh-snug: 1.28;--lh-base: 1.5;--ls-body: -0.011em;--ls-tight: -0.02em;--ls-display: -0.025em;--ls-h2: -0.02em;--ls-h3: -0.016em;--wrap: 1280px;--gutter: clamp(1rem, 0.5rem + 2.5vw, 2rem);--header-h: 72px;--r-sm: 10px;--r-md: 16px;--r-lg: 20px;--r-pill: 999px;--r-sheet: clamp(1.25rem, 0.75rem + 2vw, 2.5rem);--sh-pop: 0 30px 60px -20px rgba(15, 15, 40, 0.22), 0 2px 10px rgba(15, 15, 40, 0.06);--sh-soft: 0 1px 2px rgba(15, 15, 40, 0.06);--sh-edge: 0 0 0 1px color-mix(in srgb, var(--pal-deep) 8%, transparent), 0 1px 2px color-mix(in srgb, var(--pal-deep) 6%, transparent);--sh-card: 0 0 #0000;--ease: cubic-bezier(0.2, 0.7, 0.2, 1);--ease-soft: cubic-bezier(0.45, 0, 0.15, 1);--dur-fast: 0.15s;--dur: 0.25s;--z-header: 100}@media(max-width: 1023.98px){:root{--header-h: 56px}}.blog-listing{padding-top:clamp(2rem,1.5rem + 2vw,3.5rem)}.blog-grid{row-gap:clamp(2rem,1.5rem + 2vw,3rem)}.post-card--featured+.blog-grid{margin-top:clamp(2.5rem,1.5rem + 3vw,4.5rem)}.pagination-nav{margin-top:clamp(2.5rem,1.5rem + 3vw,4.5rem)}.pagination{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.375rem}.pagination a,.pagination span{display:grid;place-items:center;min-width:2.5rem;height:2.5rem;padding:0 .875rem;border-radius:var(--r-pill);font-size:var(--fs-md);font-weight:500;color:var(--c-text)}.pagination a:hover{background:var(--c-bg-soft)}.pagination .active span{background:var(--c-ink);color:#fff}.pagination .previous a,.pagination .next a,.pagination .previous span,.pagination .next span{border:1px solid var(--c-line-strong)}.pagination .disabled span{opacity:.4}.pagination .ellipsis span{min-width:1.5rem;padding:0}.section--post{padding-top:clamp(2rem,1.5rem + 2vw,3.5rem)}.post-layout{display:grid;gap:2.5rem;grid-template-areas:"toc" "article" "aside"}@media(min-width: 1024px){.post-layout{grid-template-columns:13rem minmax(0, 1fr);grid-template-areas:"toc article" ". aside";column-gap:3rem}.post-layout:not(.post-layout--toc){grid-template-columns:minmax(0, 1fr);grid-template-areas:"article" "aside"}}@media(min-width: 1280px){.post-layout{grid-template-columns:13rem minmax(0, 42rem) 17rem;grid-template-areas:"toc article aside";justify-content:center;column-gap:3.5rem}.post-layout:not(.post-layout--toc){grid-template-columns:minmax(0, 42rem) 17rem;grid-template-areas:"article aside"}}.post-layout>.prose{grid-area:article}.post-toc{grid-area:toc;padding:1.25rem;border:1px solid var(--c-card-line);border-radius:var(--r-md);background:var(--c-bg)}@media(min-width: 1024px){.post-toc{position:sticky;top:calc(var(--header-h) + 2rem);align-self:start;padding:0;border:0;background:none}}.post-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.125rem}@media(min-width: 1024px){.post-toc ol{border-left:1px solid var(--c-line)}}.post-toc a{display:block;padding:.375rem 0;font-size:var(--fs-sm);line-height:1.35;color:var(--c-text-muted);transition:color var(--dur-fast)}.post-toc a:hover,.post-toc a.is-active{color:var(--c-ink)}@media(min-width: 1024px){.post-toc a{margin-left:-1px;padding-left:1rem;border-left:2px solid rgba(0,0,0,0)}.post-toc a:hover,.post-toc a.is-active{border-color:var(--c-ink)}}.post-toc__title{margin:0 0 .375rem;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-muted)}@media(min-width: 1024px){.post-toc__title{padding-left:calc(1rem + 1px)}}.post-toc__item--3 a{padding-left:1rem}@media(min-width: 1024px){.post-toc__item--3 a{padding-left:1.75rem}}.post-aside{grid-area:aside}@media(min-width: 1280px){.post-aside>.post-aside__cards{position:sticky;top:calc(var(--header-h) + 2rem)}}.post-aside__cards{display:grid;gap:.75rem}@media(min-width: 768px){.post-aside__cards{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1280px){.post-aside__cards{grid-template-columns:1fr}}.aside-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem 1.5rem 1.25rem;border:1px solid var(--c-card-line);border-radius:var(--r-lg);background:var(--c-bg);transition:border-color var(--dur-fast)}.aside-card:hover,.aside-card:focus-visible{border-color:var(--c-line-strong)}.aside-card__icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:.75rem;border:1px solid var(--c-card-line);border-radius:50%;background:var(--c-bg);color:var(--c-accent)}.aside-card__icon .svg-icon{width:1.25rem;height:1.25rem}.aside-card:hover .aside-card__icon{background:var(--c-bg)}.aside-card__title{padding-right:2rem;font-size:var(--fs-md);font-weight:600;line-height:var(--lh-snug);letter-spacing:var(--ls-tight);color:var(--c-ink)}.aside-card__text{display:-webkit-box;overflow:hidden;font-size:var(--fs-sm);line-height:1.5;color:var(--c-text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical}.aside-card__go{position:absolute;top:1.5rem;right:1.5rem;display:inline-flex;color:var(--c-icon);transition:color .2s ease,transform .2s ease}.aside-card__go .svg-icon{width:1.25rem;height:1.25rem}.aside-card:hover .aside-card__go,.aside-card:focus-visible .aside-card__go{color:var(--c-accent);transform:translate(2px, -2px)}.prose{font-size:1.125rem;line-height:1.6;letter-spacing:-0.011em;color:var(--c-text);overflow-wrap:break-word}.prose :where(p,ul,ol,blockquote,figure,table,pre){margin-block:0}.prose>:where(*+*){margin-block:1.25em 0}.prose :where(h2,h3,h4){color:var(--c-ink);font-weight:600;scroll-margin-top:calc(var(--header-h) + 1.5rem)}.prose :where(h2){margin-top:2.2em;font-size:var(--fs-h3);line-height:1.2;letter-spacing:var(--ls-display)}.prose :where(h3){margin-top:1.8em;font-size:1.375rem;line-height:1.25;letter-spacing:var(--ls-tight)}.prose :where(h4){margin-top:1.6em;font-size:1.125rem;line-height:1.3}.prose :where(a){color:var(--c-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.prose :where(a):hover{color:var(--c-ink)}.prose :where(ul,ol){padding-left:1.5em}.prose :where(li+li){margin-top:.5em}.prose :where(li>ul,li>ol){margin-top:.5em}.prose :where(ul){list-style:none}.prose :where(ul)>li{position:relative}.prose :where(ul)>li::before{content:"";position:absolute;top:.6125em;left:-1.125em;width:.375em;height:.375em;border-radius:50%;background:var(--c-accent)}.prose :where(li ul)>li::before{background:none;box-shadow:inset 0 0 0 1.5px var(--c-accent)}.prose :where(ol)>li::marker{font-weight:600;font-variant-numeric:tabular-nums;color:var(--c-ink)}.prose :where(img,video,iframe){max-width:100%;height:auto;border-radius:var(--r-md)}.prose :where(figure){margin-block:2em}.prose :where(figcaption){margin-top:.5rem;font-size:var(--fs-sm);color:var(--c-text-muted)}.prose :where(blockquote){padding-left:1.25rem;border-left:3px solid var(--c-accent);font-size:1.1875em;color:var(--c-text-muted)}.prose :where(pre,code){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--c-bg-soft)}.prose :where(code){padding:.15em .35em;border-radius:6px}.prose :where(pre){padding:1rem 1.25rem;overflow-x:auto;border-radius:var(--r-sm)}.prose :where(table){display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--fs-md)}.prose :where(table) th,.prose :where(table) td{padding:.625rem .875rem;border:1px solid var(--c-line-strong);text-align:left}.prose :where(hr){margin-block:2.5em;border:0;border-top:1px solid var(--c-line-strong)}