:root{--nb-bg:#090d16;--nb-surface:#0f172a;--nb-text:#f8fafc;--nb-text-dim:#cbd5e1;--nb-rule:#94a3b826;--nb-accent:#14b8a6;--nb-font-body:inherit;--nb-font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--nb-measure:68ch;--nb-gap:1.75rem;--nb-radius:14px}.nb-page{max-width:var(--nb-measure);color:var(--nb-text);font-family:var(--nb-font-body);margin-inline:auto;padding:clamp(2.5rem,6vw,5rem) 1.25rem 6rem;line-height:1.7}.nb-page-head{margin-bottom:3rem}.nb-page-title{margin:0 0 .5rem;font-size:clamp(2rem,5vw,2.75rem);line-height:1.15}.nb-page-sub{color:var(--nb-text-dim);max-width:52ch;margin:0}.nb-empty{color:var(--nb-text-dim)}.nb-post-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.nb-post-card{border-top:1px solid var(--nb-rule)}.nb-post-card:last-child{border-bottom:1px solid var(--nb-rule)}.nb-post-link{color:inherit;grid-template-columns:1fr;gap:1rem;padding:1.75rem 0;text-decoration:none;transition:opacity .18s;display:grid}.nb-post-link:hover{opacity:.72}.nb-post-link:focus-visible{outline:2px solid var(--nb-accent);outline-offset:4px}@media (min-width:720px){.nb-post-link{grid-template-columns:200px 1fr;align-items:start;gap:1.75rem}}.nb-post-cover{border-radius:var(--nb-radius);object-fit:cover;width:100%;height:auto}.nb-post-title{margin:0 0 .4rem;font-size:1.3rem;line-height:1.3}.nb-post-excerpt{color:var(--nb-text-dim);margin:0 0 .6rem}.nb-post-meta{color:var(--nb-text-dim);margin:0;font-size:.85rem}.nb-back{letter-spacing:.06em;text-transform:uppercase;color:var(--nb-text-dim);margin-bottom:2rem;font-size:.85rem;text-decoration:none;display:inline-block}.nb-back:hover{color:var(--nb-text)}.nb-article-title{margin:0 0 .75rem;font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.15}.nb-article-meta{color:var(--nb-text-dim);margin:0 0 3rem;font-size:.9rem}.nb-article-body>*+*{margin-top:var(--nb-gap)}.nb-p{max-width:var(--nb-measure);color:var(--nb-text-dim);margin:0;font-size:1.125rem;line-height:1.85}.nb-h1,.nb-h2,.nb-h3{color:var(--nb-text);letter-spacing:-.02em;margin:3.5rem 0 1.25rem;scroll-margin-top:6rem;font-weight:700;line-height:1.25}.nb-h1{font-size:2rem}.nb-h2{font-size:1.6rem}.nb-h3{font-size:1.25rem}.nb-anchor{color:inherit;text-decoration:none}.nb-anchor:hover{text-underline-offset:4px;text-decoration:underline}.nb-link{color:var(--nb-accent);text-underline-offset:3px;font-weight:500}.nb-ul{color:var(--nb-text-dim);margin:0;font-size:1.05rem;line-height:1.8;padding-left:1.5rem!important;list-style-type:disc!important}.nb-ol{color:var(--nb-text-dim);margin:0;font-size:1.05rem;line-height:1.8;padding-left:1.5rem!important;list-style-type:decimal!important}.nb-li{margin-bottom:.5rem;display:list-item!important}.prose ol,article ol{padding-left:1.5rem!important;list-style-type:decimal!important}.prose ul,article ul{padding-left:1.5rem!important;list-style-type:disc!important}.prose li,article li{display:list-item!important}.nb-nested{margin-top:.5rem}.nb-todo{color:var(--nb-text-dim);align-items:baseline;gap:.75rem;font-size:1.05rem;display:flex}.nb-todo-done{color:#64748b;text-decoration:line-through}.nb-toggle{border:1px solid var(--nb-rule);border-radius:var(--nb-radius);background:#0f172a80;padding:1rem 1.25rem}.nb-toggle>summary{cursor:pointer;color:var(--nb-text);font-weight:600}.nb-toggle>summary>*{margin:0;display:inline}.nb-toggle-body{margin-top:1rem}.nb-toggle-body>*+*{margin-top:var(--nb-gap)}.nb-quote{border-left:4px solid var(--nb-accent);border-radius:0 var(--nb-radius) var(--nb-radius) 0;color:var(--nb-text);background:#0f172a80;margin:2rem 0;padding:1.25rem 1.75rem;font-size:1.15rem;font-style:italic;line-height:1.75}.nb-callout{border:1px solid var(--nb-rule);border-radius:var(--nb-radius);background:#0f172abf;gap:1rem;padding:1.25rem 1.5rem;display:flex;box-shadow:0 10px 25px -5px #0000004d}.nb-callout-icon{flex:none;font-size:1.25rem;line-height:1.6}.nb-callout-body>*+*{margin-top:.75rem}.nb-code{margin:0}.nb-code pre{background:var(--nb-surface);border-radius:var(--nb-radius);font-family:var(--nb-font-mono);margin:0;padding:1rem 1.1rem;font-size:.86rem;line-height:1.6;overflow-x:auto}.nb-inline-code{background:var(--nb-surface);font-family:var(--nb-font-mono);border-radius:3px;padding:.12em .38em;font-size:.88em}.nb-figure{margin:0}.nb-image,.nb-video{border-radius:var(--nb-radius);width:100%;height:auto}.nb-embed{aspect-ratio:16/9;border-radius:var(--nb-radius);border:0;width:100%}.nb-caption{color:var(--nb-text-dim);text-align:center;margin-top:.6rem;font-size:.85rem}.nb-divider{border:0;border-top:1px solid var(--nb-rule);margin:2.5rem 0}.nb-columns{gap:1.5rem;display:grid}@media (min-width:720px){.nb-columns{grid-template-columns:repeat(var(--nb-cols,2), minmax(0, 1fr))}}.nb-column>*+*{margin-top:var(--nb-gap)}.nb-table-wrap{overflow-x:auto}.nb-table{border-collapse:collapse;width:100%;font-size:.92rem}.nb-table th,.nb-table td{border:1px solid var(--nb-rule);text-align:left;vertical-align:top;padding:.6rem .8rem}.nb-table th{background:var(--nb-surface);font-weight:600}.nb-equation,.nb-equation-block{font-family:var(--nb-font-mono)}.nb-equation-block{text-align:center;color:var(--nb-text-dim)}.nb-file a,.nb-bookmark a{color:var(--nb-accent)}.nb-color-gray{color:#8b98a5}.nb-color-brown{color:#b08968}.nb-color-orange{color:#d98d3f}.nb-color-yellow{color:#d9c23f}.nb-color-green{color:#4caf7d}.nb-color-blue{color:#4a90d9}.nb-color-purple{color:#9b7fd4}.nb-color-pink{color:#d97fa8}.nb-color-red{color:#d95f5f}.nb-callout-gray{background:#33415566;border:1px solid #47556980}.nb-callout-blue{background:#1e3a8a4d;border:1px solid #3b82f666}.nb-callout-green{background:#064e3b4d;border:1px solid #10b98166}.nb-callout-yellow{background:#78350f4d;border:1px solid #f59e0b66}.nb-callout-red{background:#7f1d1d4d;border:1px solid #ef444466}.nb-callout-purple{background:#581c874d;border:1px solid #a855f766}.nb-h1,.nb-h2,.nb-h3{scroll-margin-top:6rem}@media (prefers-reduced-motion:reduce){.nb-post-link{transition:none}}
