.ReadingProgress-module-scss-module__Im4EMa__progress{z-index:1000;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.ReadingProgress-module-scss-module__Im4EMa__progress__bar{transform-origin:0;background:var(--color-primary);will-change:transform;width:100%;height:100%;transition:transform 80ms linear;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.ReadingProgress-module-scss-module__Im4EMa__progress__bar{transition:none}}
.page-module-scss-module__Y0xDIG__blog-post{min-height:100vh;padding-top:clamp(6rem,8vw,8rem);padding-bottom:clamp(3rem,6vw,6rem)}.page-module-scss-module__Y0xDIG__blog-post__container{max-width:var(--content-narrow);padding-inline:var(--space-6);margin-inline:auto}.page-module-scss-module__Y0xDIG__blog-post__back{margin-bottom:var(--space-10)}.page-module-scss-module__Y0xDIG__blog-post__back-link{font-size:var(--text-sm);font-family:var(--font-mono);color:var(--color-text-muted);transition:color var(--transition);text-decoration:none}.page-module-scss-module__Y0xDIG__blog-post__back-link:hover{color:var(--color-primary)}.page-module-scss-module__Y0xDIG__blog-post__header{margin-bottom:var(--space-12);padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border)}.page-module-scss-module__Y0xDIG__blog-post__meta{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.page-module-scss-module__Y0xDIG__blog-post__category{font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:var(--radius-full);padding:.25em .75em}.page-module-scss-module__Y0xDIG__blog-post__date,.page-module-scss-module__Y0xDIG__blog-post__reading-time{font-size:var(--text-sm);font-family:var(--font-mono);color:var(--color-text-faint)}.page-module-scss-module__Y0xDIG__blog-post__sep{color:var(--color-text-faint)}.page-module-scss-module__Y0xDIG__blog-post__title{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);margin-bottom:var(--space-6);text-wrap:balance;font-weight:800;line-height:1.15}.page-module-scss-module__Y0xDIG__blog-post__excerpt{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-6);text-wrap:pretty;line-height:1.6}.page-module-scss-module__Y0xDIG__blog-post__tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.page-module-scss-module__Y0xDIG__blog-post__tag{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-faint);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.2em .7em}.page-module-scss-module__Y0xDIG__blog-post__toc{margin-bottom:var(--space-12);padding:clamp(var(--space-8),4vw,var(--space-4)) clamp(var(--space-5),4vw,var(--space-8));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.page-module-scss-module__Y0xDIG__blog-post__toc-title{font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);margin-bottom:var(--space-3)}.page-module-scss-module__Y0xDIG__blog-post__toc-list{gap:var(--space-1);counter-reset:toc;margin:0;padding:0;list-style:none;display:grid}.page-module-scss-module__Y0xDIG__blog-post__toc-item{max-width:none;margin:0}.page-module-scss-module__Y0xDIG__blog-post__toc-link{counter-increment:toc;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-muted);transition:color var(--transition),background var(--transition);line-height:1.4;text-decoration:none;display:flex}.page-module-scss-module__Y0xDIG__blog-post__toc-link:before{content:counter(toc, decimal-leading-zero);border-radius:var(--radius-sm);background:var(--color-primary-subtle);min-width:1.85rem;height:1.5rem;color:var(--color-primary);font-family:var(--font-mono);font-size:var(--text-xs);transition:background var(--transition),color var(--transition);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.page-module-scss-module__Y0xDIG__blog-post__toc-link:hover{color:var(--color-text);background:var(--color-surface-2)}.page-module-scss-module__Y0xDIG__blog-post__toc-link:hover:before{background:var(--color-primary);color:#fff}.page-module-scss-module__Y0xDIG__blog-post__toc-link--active{color:var(--color-text)}.page-module-scss-module__Y0xDIG__blog-post__toc-link--active:before{background:var(--color-primary);color:#fff}.page-module-scss-module__Y0xDIG__blog-post__toc-link--active:hover{background:var(--color-surface-2)}.page-module-scss-module__Y0xDIG__blog-post__body{color:var(--color-text-muted);max-width:68ch;font-size:clamp(1.0625rem,1rem + .4vw,1.1875rem);line-height:1.8}.page-module-scss-module__Y0xDIG__blog-post__body h2{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text);margin-top:var(--space-16);margin-bottom:var(--space-4);text-wrap:balance;scroll-margin-top:var(--space-12);font-weight:700;line-height:1.25}.page-module-scss-module__Y0xDIG__blog-post__body h3{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);margin-top:var(--space-10);margin-bottom:var(--space-3);text-wrap:balance;scroll-margin-top:var(--space-12);font-weight:600;line-height:1.3}.page-module-scss-module__Y0xDIG__blog-post__body p{margin-bottom:var(--space-6);text-wrap:pretty}.page-module-scss-module__Y0xDIG__blog-post__body p:last-child{margin-bottom:0}.page-module-scss-module__Y0xDIG__blog-post__body>p:first-of-type{color:var(--color-text);font-size:1.075em;line-height:1.7}.page-module-scss-module__Y0xDIG__blog-post__body a{color:var(--color-primary);text-underline-offset:3px;transition:opacity var(--transition);text-decoration:underline;text-decoration-thickness:1px}.page-module-scss-module__Y0xDIG__blog-post__body a:hover{opacity:.75}.page-module-scss-module__Y0xDIG__blog-post__body strong{color:var(--color-text);font-weight:600}.page-module-scss-module__Y0xDIG__blog-post__body ul,.page-module-scss-module__Y0xDIG__blog-post__body ol{margin-bottom:var(--space-6);padding-inline-start:var(--space-6)}.page-module-scss-module__Y0xDIG__blog-post__body ul li,.page-module-scss-module__Y0xDIG__blog-post__body ol li{margin-bottom:var(--space-3);padding-inline-start:var(--space-1);line-height:1.7}.page-module-scss-module__Y0xDIG__blog-post__body ul li::marker{color:var(--color-primary)}.page-module-scss-module__Y0xDIG__blog-post__body ol li::marker{color:var(--color-primary)}.page-module-scss-module__Y0xDIG__blog-post__body blockquote{margin:var(--space-8) 0;padding:var(--space-2) 0 var(--space-2) var(--space-6);border-inline-start:3px solid var(--color-primary);color:var(--color-text);font-style:italic}.page-module-scss-module__Y0xDIG__blog-post__body code{font-family:var(--font-mono);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);padding:.15em .4em;font-size:.875em}.page-module-scss-module__Y0xDIG__blog-post__body>h2:first-child,.page-module-scss-module__Y0xDIG__blog-post__body>h3:first-child{margin-top:0}.page-module-scss-module__Y0xDIG__blog-post__footer{margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--color-border)}
