@font-face{font-family:geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:geist mono;src:url(/fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{color-scheme:dark light;--bg:#14171c;--panel:#1b1f26;--line:#2a303a;--text:#e6e8eb;--muted:#9aa3ae;--accent:#9d8cff;--sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--wrap:70rem;--measure:42rem}@media(prefers-color-scheme:light){:root{--bg:#f3f0e8;--panel:#eae6da;--line:#cfc9b8;--text:#16150f;--muted:#4a483f;--accent:#5b45d6}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}main{flex-grow:1}a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent)}a:focus-visible,.skip:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:1rem;top:-4rem;background:var(--panel);color:var(--text);padding:.5rem 1rem;border:1px solid var(--line);border-radius:6px;z-index:10}.skip:focus{top:1rem}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;padding-top:1.75rem}.brand{display:flex;align-items:center;gap:.75rem;font-size:1.375rem;font-weight:600;letter-spacing:-.02em;text-decoration:none}.brand::before{content:"";width:.75rem;height:.75rem;border-radius:50%;background:var(--accent)}.nav{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;font-family:var(--mono);font-size:.875rem}.nav a{text-decoration:none}.nav a[aria-current=page]{color:var(--accent)}.hero{display:flex;flex-wrap:wrap;align-items:center;gap:3rem;padding:4.5rem 0 3.5rem}.hero-text{flex:1 1 28rem;min-width:0}.eyebrow{margin:0 0 1.25rem;font-family:var(--mono);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.hero-title{margin:0;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.04;font-weight:600;letter-spacing:-.04em}.lead{margin:1.75rem 0 0;max-width:32rem;font-size:1.1875rem;line-height:1.6;color:var(--muted)}.hero-panel{flex:1 1 22rem;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1.5rem}.panel-label{margin:0 0 1rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.panel-note{margin:.75rem 0 0;font-size:.9375rem;color:var(--muted)}.timeline{display:block;width:100%;height:auto}.tl-axis{stroke:var(--line);stroke-width:2}.tl-dot{fill:var(--accent)}.tl-dot-open{fill:var(--bg);stroke:var(--accent);stroke-width:2}.tl-text{font-family:var(--mono);font-size:12px;fill:var(--muted)}.tl-strong{fill:var(--text)}.page-title{margin:3.5rem 0 2rem;font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;font-weight:600;letter-spacing:-.035em}.index{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:4.5rem}.index-head{display:flex;justify-content:space-between;padding:.875rem 1.5rem;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.index-title{margin:0;font-size:inherit;font-weight:inherit}.entry{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.75rem;padding:1.5rem;border-bottom:1px solid var(--line)}.entry:last-child{border-bottom:0}.entry-date{flex:0 0 7rem;font-family:var(--mono);font-size:.875rem;color:var(--muted)}.entry-cat{flex:0 0 5rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.entry-main{flex:1 1 20rem;min-width:0}.entry-heading{margin:0;font-size:1.375rem;line-height:1.25;font-weight:600;letter-spacing:-.02em}.entry-title{text-decoration:none}.entry-desc{margin:.375rem 0 0;color:var(--muted);line-height:1.5}.entry-time{font-family:var(--mono);font-size:.875rem;color:var(--muted)}.filter{display:flex;flex-wrap:wrap;gap:.5rem;margin:-.75rem 0 1.75rem;font-family:var(--mono);font-size:.8125rem}.filter a{text-decoration:none;padding:.375rem .875rem;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.filter a:hover{border-color:var(--accent);color:var(--text)}.filter a[aria-current=page]{border-color:var(--accent);color:var(--accent)}.filter-n{color:var(--muted);margin-left:.25rem}.entry-cat a{color:var(--accent);text-decoration:none}.meta-accent a{color:var(--accent)}.article{padding:4.5rem 0 5rem}.crumbs{margin:0 0 1.5rem;font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.crumbs a{color:var(--muted)}.post-title{margin:0;max-width:54rem;font-size:clamp(2rem,4.5vw,3.375rem);line-height:1.06;font-weight:600;letter-spacing:-.04em}.post-layout{display:flex;flex-wrap:wrap;gap:2.5rem 3.5rem;align-items:flex-start;margin-top:3.5rem}.post-meta{flex:0 0 12.5rem;font-family:var(--mono);font-size:.8125rem;line-height:1.5;color:var(--muted)}.post-meta dl{margin:0}.post-meta dt{font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;margin:1.25rem 0 .25rem}.post-meta dt:first-child{margin-top:0}.post-meta dd{margin:0;color:var(--text)}.post-meta .meta-accent{color:var(--accent)}.meta-tags{display:flex;flex-wrap:wrap;gap:.25rem .75rem}.meta-tags a{color:var(--text)}.post-body{flex:1 1 32rem;min-width:0;max-width:var(--measure);font-size:1.1875rem;line-height:1.7}.page-body{margin-top:2.5rem}.post-body>*:first-child{margin-top:0}.post-body p,.post-body ul,.post-body ol,.post-body pre,.post-body blockquote,.post-body table{margin:0 0 1.5rem}.post-body h2{margin:3rem 0 1rem;font-size:1.75rem;line-height:1.2;font-weight:600;letter-spacing:-.025em}.post-body h3{margin:2.25rem 0 .75rem;font-size:1.375rem;line-height:1.25;font-weight:600;letter-spacing:-.02em}.post-body ul,.post-body ol{padding-left:1.75rem}.post-body li{margin-bottom:.5rem}.post-body img{display:block;max-width:100%;height:auto;margin:0 0 1.5rem;border:1px solid var(--line);border-radius:6px}.post-body blockquote{padding:.25rem 1.25rem;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted)}.post-body blockquote p:last-child{margin-bottom:0}.post-body hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}.post-body code{font-family:var(--mono);font-size:.875em;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:.1em .35em}.post-body pre{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1.25rem 1.5rem;overflow-x:auto;font-family:var(--mono);font-size:.875rem;line-height:1.75}.post-body pre code{background:0 0;border:0;padding:0;font-size:inherit}.post-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:1rem}.post-body th,.post-body td{text-align:left;padding:.5rem .875rem;border:1px solid var(--line);vertical-align:top}.post-body th{background:var(--panel)}.notice{background:var(--panel);border:1px solid var(--accent);border-radius:8px;padding:1rem 1.25rem;font-size:1rem;line-height:1.55}.site-footer{border-top:1px solid var(--line)}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-top:1.25rem;padding-bottom:1.75rem;font-family:var(--mono);font-size:.75rem;color:var(--muted)}.footer-inner a{color:var(--muted)}.post-body .anchor{margin-left:.4em;font-family:var(--mono);font-weight:400;text-decoration:none;color:var(--muted);opacity:0}.post-body :is(h2,h3):hover .anchor,.post-body .anchor:focus-visible{opacity:1}@media(hover:none){.post-body .anchor{opacity:.4}}.post-body :is(h2,h3){scroll-margin-top:1.5rem}.post-meta{position:sticky;top:1.5rem;max-height:calc(100vh - 3rem);overflow-y:auto}.toc{margin-top:2rem}.toc-label{margin:0 0 .5rem;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase}.toc ul{list-style:none;margin:0;padding:0}.toc ul ul{padding-left:.875rem}.toc li{margin:.375rem 0}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--accent)}@media(max-width:56rem){.toc{display:none}.post-meta{position:static;max-height:none;overflow:visible}}.pager{display:flex;flex-wrap:wrap;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line);font-size:1rem;line-height:1.4}.pager-link{flex:1 1 14rem;display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);text-decoration:none}.pager-link:hover{border-color:var(--accent);color:var(--text)}.pager-next{text-align:right}.pager-label{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.pager-title{font-weight:600}@media print{:root{--bg:#fff;--panel:#fff;--line:#bbb;--text:#000;--muted:#333;--accent:#000}body{font-size:11pt;display:block}.skip,.site-header,.site-footer,.filter,.toc,.pager,.anchor{display:none!important}.wrap{max-width:none;padding:0}.article{padding:0}.post-layout{display:block;margin-top:1.5rem}.post-meta{position:static;max-height:none;overflow:visible;margin-bottom:1.5rem}.post-body{max-width:none;font-size:11pt;line-height:1.5}.post-body pre{white-space:pre-wrap;break-inside:avoid}.post-body img{max-width:100%;break-inside:avoid}.post-body a[href^=http]::after{content:" (" attr(href)")";font-size:.85em;word-break:break-all}h2,h3{break-after:avoid}}.more{margin-top:1.5rem;font-family:var(--mono);font-size:.9rem}