@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-sans-400.f3279b77be7b3c5a5174219e2073c89f22721655ed73c218c690bc2013ade6fd.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-sans-600.e526c7a337b2fba6d573fab2f77b7ad3da80bf001bf841728362e4b02296f1fb.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-serif-400.72b4998461fe6f24a236bb63c84d01b9db0c261c37dcabad9043d029f322ffdb.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-serif-400-italic.fee8fadb722fb410aabd491d84aa7d9a869cecdb0d8605f368d4fa2a3155d20c.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-serif-600.b6239d59bf74f34d42031e8c12315efe61a12496cd2f43fde4aa0c803678772a.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-400.93fc9367294c2003122ffc34454b705f89c4268a41ec2eae625f1bbd1eb0f7c5.woff2") format("woff2");unicode-range:U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20A0-20BF, U+2113, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}:root{--c-bg:      #fbfaf7;--c-surface: #f2f0ea;--c-text:    #17181a;--c-muted:   #5a5d63;--c-border:  #dedad1;--c-accent:  #14624a;--c-accent-bg: rgba(20,98,74,0.08);--c-selection: rgba(20,98,74,0.16);--f-sans:  "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--f-serif: "IBM Plex Serif", ui-serif, Georgia, serif;--f-mono:  "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--fs-body:  1.125rem;--fs-small: 0.9375rem;--fs-meta:  0.8125rem;--lh-body:  1.65;--lh-tight: 1.25;--measure: 68ch;--wide:    64rem;--gutter:  1.5rem;--step:    1.5rem;--border: 1px solid var(--c-border);--radius: 2px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--c-bg:      #101113;--c-surface: #17191c;--c-text:    #e8e6e1;--c-muted:   #9a9da3;--c-border:  #2a2d31;--c-accent:  #4fbf92;--c-accent-bg: rgba(79,191,146,0.1);--c-selection: rgba(79,191,146,0.22);color-scheme:dark}}:root[data-theme="dark"]{--c-bg:      #101113;--c-surface: #17191c;--c-text:    #e8e6e1;--c-muted:   #9a9da3;--c-border:  #2a2d31;--c-accent:  #4fbf92;--c-accent-bg: rgba(79,191,146,0.1);--c-selection: rgba(79,191,146,0.22);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--f-serif);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"kern" 1, "liga" 1;text-rendering:optimizeLegibility;min-height:100vh;display:flex;flex-direction:column}::selection{background:var(--c-selection)}h1,h2,h3,h4,h5,h6{font-family:var(--f-sans);font-weight:600;line-height:var(--lh-tight);letter-spacing:-0.011em;text-wrap:balance;margin:0}h1{font-size:1.875rem;letter-spacing:-0.018em}h2{font-size:1.375rem}h3{font-size:1.125rem}h4{font-size:1rem}p,ul,ol,dl,blockquote,pre,table,figure{margin:0}a{color:var(--c-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:1px}img,svg,video{max-width:100%;height:auto;display:block}code,kbd,samp,pre{font-family:var(--f-mono)}hr{border:0;border-top:var(--border);margin:calc(var(--step) * 2) 0}.meta{font-family:var(--f-mono);font-size:var(--fs-meta);color:var(--c-muted);font-variant-numeric:tabular-nums;letter-spacing:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:var(--gutter);top:-4rem;z-index:10;background:var(--c-bg);color:var(--c-text);border:2px solid var(--c-accent);padding:0.5rem 0.875rem;font-family:var(--f-sans);font-size:var(--fs-small);text-decoration:none;transition:top 120ms ease}.skip-link:focus{top:0.75rem}.wrap{width:100%;max-width:var(--wide);margin-inline:auto;padding-inline:var(--gutter)}.prose-wrap{width:100%;max-width:calc(var(--measure) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}.site-main{flex:1 0 auto;padding-block:calc(var(--step) * 2) calc(var(--step) * 3)}.site-header{border-bottom:var(--border);background:var(--c-bg)}.site-header__inner{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.75rem 1.5rem;padding-block:1rem}.site-brand{font-family:var(--f-sans);font-weight:600;font-size:1rem;letter-spacing:-0.01em;color:var(--c-text);text-decoration:none;white-space:nowrap}.site-brand:hover{color:var(--c-accent)}.site-nav{margin-inline-start:auto}.site-nav__list{list-style:none;display:flex;flex-wrap:wrap;gap:0.25rem 1.25rem;margin:0;padding:0}.site-nav__link{font-family:var(--f-sans);font-size:var(--fs-small);color:var(--c-muted);text-decoration:none;padding-block:0.25rem;border-bottom:2px solid transparent}.site-nav__link:hover{color:var(--c-text)}.site-nav__link[aria-current="page"]{color:var(--c-text);border-bottom-color:var(--c-accent)}.header-tools{display:flex;align-items:center;align-self:center;gap:0.75rem}.lang-switch{display:flex;align-items:center;min-height:1.9rem;font-family:var(--f-mono);font-size:var(--fs-meta);line-height:1;text-transform:uppercase;color:var(--c-muted);text-decoration:none;border:var(--border);padding:0 0.45rem}.lang-switch:hover{color:var(--c-text);border-color:var(--c-accent)}.theme-toggle{display:flex;align-items:center;justify-content:center;min-height:1.9rem;min-width:1.9rem;font:inherit;line-height:1;color:var(--c-muted);background:transparent;border:var(--border);padding:0 0.45rem;cursor:pointer}.theme-toggle:hover{color:var(--c-text);border-color:var(--c-accent)}.theme-toggle svg{width:0.95rem;height:0.95rem;display:block;fill:currentColor}.theme-toggle[hidden]{display:none}.site-footer{border-top:var(--border);background:var(--c-surface);padding-block:calc(var(--step) * 1.5);font-family:var(--f-sans);font-size:var(--fs-small);color:var(--c-muted)}.site-footer__grid{display:grid;gap:var(--step);grid-template-columns:repeat(auto-fit, minmax(14rem, 1fr))}.site-footer h2{font-size:var(--fs-meta);font-family:var(--f-mono);font-weight:400;text-transform:uppercase;letter-spacing:0.08em;color:var(--c-muted);margin-bottom:0.5rem}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li+li{margin-top:0.25rem}.site-footer a{color:var(--c-text);text-decoration:none}.site-footer a:hover{color:var(--c-accent);text-decoration:underline}.build-stamp{margin-top:var(--step);padding-top:0.875rem;border-top:var(--border);font-family:var(--f-mono);font-size:var(--fs-meta);color:var(--c-muted)}.build-stamp dl{display:flex;flex-wrap:wrap;gap:0.35rem 1.25rem;margin:0}.build-stamp dl>div{display:flex;gap:0.4rem}.build-stamp dt{color:var(--c-muted)}.build-stamp dt::after{content:":"}.build-stamp dd{margin:0;color:var(--c-text)}.build-stamp dd a{color:var(--c-text);text-decoration:underline}.prose>*+*{margin-top:var(--step)}.prose>h2{margin-top:calc(var(--step) * 2.25)}.prose>h3{margin-top:calc(var(--step) * 1.75)}.prose>h2+*,.prose>h3+*{margin-top:0.75rem}.prose h2{padding-top:0.6rem;border-top:var(--border)}.prose ul,.prose ol{padding-inline-start:1.35rem}.prose li+li{margin-top:0.4rem}.prose li>ul,.prose li>ol{margin-top:0.4rem}.prose strong{font-weight:600}.prose blockquote{border-inline-start:2px solid var(--c-accent);padding-inline-start:1.1rem;color:var(--c-text);font-style:italic}.prose blockquote>*+*{margin-top:0.75rem}.prose :not(pre)>code{font-size:0.875em;background:var(--c-surface);border:var(--border);border-radius:var(--radius);padding:0.1em 0.32em;word-break:break-word}.prose pre,.prose .table-scroll,.prose figure{max-width:none}@media (min-width: 64rem){.prose>.highlight,.prose>.table-scroll,.prose>pre,.prose>figure{margin-inline:-3rem}}.prose a{overflow-wrap:break-word}pre.chroma,pre{background:var(--c-surface);border:var(--border);border-radius:var(--radius);padding:0.875rem 1rem;overflow-x:auto;font-size:0.875rem;line-height:1.55;tab-size:2}pre code{background:none;border:0;padding:0;font-size:inherit}.highlight{margin:0}.table-scroll{overflow-x:auto;border:var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-family:var(--f-sans);font-size:var(--fs-small);font-variant-numeric:tabular-nums}thead th{text-align:start;font-family:var(--f-mono);font-size:var(--fs-meta);font-weight:400;text-transform:uppercase;letter-spacing:0.07em;color:var(--c-muted);white-space:nowrap}th,td{padding:0.55rem 0.9rem;border-bottom:var(--border);vertical-align:top}thead th{border-bottom:1px solid var(--c-text)}tbody tr:last-child td{border-bottom:0}.prose .table-scroll table{margin:0}.prose>table{display:block;overflow-x:auto}.page-header{margin-bottom:calc(var(--step) * 1.75)}.page-header p.lede{margin-top:0.75rem;color:var(--c-muted);font-size:1.0625rem}.page-header .meta{margin-top:0.6rem}.article-header{padding-bottom:var(--step);border-bottom:var(--border);margin-bottom:calc(var(--step) * 1.5)}.article-header h1{font-size:2rem}.article-header .meta{margin-top:0.75rem}.article-header .meta>*+*::before{content:"/";margin-inline:0.5rem;color:var(--c-border)}.draft-badge{display:inline-block;font-family:var(--f-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.07em;color:var(--c-accent);border:1px solid var(--c-accent);padding:0.05rem 0.4rem;margin-bottom:0.75rem}.prose--capped{max-width:var(--measure)}.toc{border:var(--border);border-radius:var(--radius);background:var(--c-surface);padding:0.9rem 1.1rem;margin-bottom:calc(var(--step) * 1.5);font-family:var(--f-sans);font-size:var(--fs-small)}.toc h2{font-family:var(--f-mono);font-size:var(--fs-meta);font-weight:400;text-transform:uppercase;letter-spacing:0.08em;color:var(--c-muted);margin-bottom:0.5rem}.toc ul{list-style:none;margin:0;padding:0}.toc ul ul{padding-inline-start:1rem}.toc li{margin-top:0.25rem}.toc a{color:var(--c-text);text-decoration:none}.toc a:hover{color:var(--c-accent);text-decoration:underline}.article-footer{margin-top:calc(var(--step) * 2.5);padding-top:var(--step);border-top:var(--border)}.definition-grid{margin-bottom:calc(var(--step) * 1.75)}figure{margin:0}figure img{border:var(--border);border-radius:var(--radius)}figcaption{margin-top:0.5rem;font-family:var(--f-sans);font-size:var(--fs-small);color:var(--c-muted)}.hero{padding-bottom:calc(var(--step) * 1.5);border-bottom:var(--border)}.hero h1{font-size:clamp(1.75rem, calc(1.2rem + 2.2vw), 2.5rem);max-width:22ch}.hero__role{font-family:var(--f-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.09em;color:var(--c-muted);margin-bottom:0.9rem}.hero__lead{margin-top:0.9rem;max-width:var(--measure);font-size:1.1875rem}.hero__thesis{margin-top:1.25rem;max-width:var(--measure);border-inline-start:2px solid var(--c-accent);padding-inline-start:1.1rem;font-size:1.0625rem}.hero__intro{margin-top:1.25rem;max-width:var(--measure);color:var(--c-muted)}.hero__intro>*+*{margin-top:0.75rem}.home-section{margin-top:calc(var(--step) * 2.25)}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0.5rem 1rem;padding-bottom:0.5rem;border-bottom:var(--border);margin-bottom:var(--step)}.section-head h2{font-family:var(--f-mono);font-size:var(--fs-meta);font-weight:400;text-transform:uppercase;letter-spacing:0.09em;color:var(--c-muted)}.section-head a{font-family:var(--f-sans);font-size:var(--fs-small)}.entry-list{list-style:none;margin:0;padding:0}.entry{padding-block:1.1rem;border-bottom:var(--border)}.entry:first-child{padding-top:0}.entry__title{font-size:1.125rem;margin-bottom:0.35rem}.entry__title a{color:var(--c-text);text-decoration:none}.entry__title a:hover{color:var(--c-accent);text-decoration:underline;text-underline-offset:0.2em}.entry__summary{color:var(--c-muted);font-size:var(--fs-small);max-width:var(--measure)}.entry .meta+.entry__summary{margin-top:0.4rem}.project-card{border:var(--border);border-radius:var(--radius);padding:1.25rem;background:var(--c-surface)}.project-card h3{margin-bottom:0.4rem}.project-card h3 a{color:var(--c-text);text-decoration:none}.project-card h3 a:hover{color:var(--c-accent)}.project-card p{color:var(--c-muted);font-size:var(--fs-small)}.project-card>*+*{margin-top:0.6rem}.link-row{display:flex;flex-wrap:wrap;gap:0.35rem 1.25rem;font-family:var(--f-sans);font-size:var(--fs-small);list-style:none;margin:0;padding:0}.registry{margin-top:calc(var(--step) * 1.5)}.registry+.registry{margin-top:calc(var(--step) * 2)}.registry>h2{font-family:var(--f-mono);font-size:var(--fs-meta);font-weight:400;text-transform:uppercase;letter-spacing:0.09em;color:var(--c-muted);margin-bottom:0.75rem}.registry td.col-change,.registry td.col-project,.registry td.col-date{font-family:var(--f-mono);font-size:var(--fs-meta)}.registry td.col-project{color:var(--c-muted);white-space:nowrap}.registry td.col-date{color:var(--c-muted);white-space:nowrap}.registry td.col-subject{min-width:20rem}.registry td.col-subject a{color:var(--c-text)}.state{font-family:var(--f-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.06em;white-space:nowrap;border:var(--border);padding:0.05rem 0.4rem;color:var(--c-muted)}.state--merged{color:var(--c-accent);border-color:var(--c-accent);background:var(--c-accent-bg)}.state--new{color:var(--c-text);border-color:var(--c-text)}.state--abandoned{color:var(--c-muted)}.registry__note{margin-top:0.9rem;font-size:var(--fs-small);color:var(--c-muted);max-width:var(--measure)}.definition-grid{display:grid;gap:0 1.25rem;grid-template-columns:max-content 1fr;font-size:var(--fs-small);margin:0}.definition-grid dt{font-family:var(--f-mono);font-size:var(--fs-meta);color:var(--c-muted);padding-block:0.4rem;border-bottom:var(--border)}.definition-grid dd{margin:0;padding-block:0.4rem;border-bottom:var(--border);font-family:var(--f-sans)}@media (max-width: 34rem){.definition-grid{grid-template-columns:1fr;gap:0}.definition-grid dt{border-bottom:0;padding-bottom:0}}.translation-note{border:var(--border);border-inline-start:2px solid var(--c-accent);background:var(--c-surface);padding:0.7rem 1rem;font-family:var(--f-sans);font-size:var(--fs-small);margin-bottom:var(--step)}.chroma{color:var(--c-text);background:transparent}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--c-muted);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .ow{color:var(--c-accent);font-weight:600}.chroma .o,.chroma .p{color:var(--c-muted)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--c-accent)}.chroma .na,.chroma .nt{color:var(--c-text);font-weight:600}.chroma .nb,.chroma .bp,.chroma .nc,.chroma .nd,.chroma .ni,.chroma .ne,.chroma .nf,.chroma .fm,.chroma .nl,.chroma .nn,.chroma .nx,.chroma .py,.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--c-text)}.chroma .err{color:var(--c-text);text-decoration:underline wavy}.chroma .gd{color:var(--c-muted)}.chroma .gi{color:var(--c-accent)}.chroma .ge{font-style:italic}.chroma .gs{font-weight:600}.chroma .ln,.chroma .lnt{color:var(--c-border);margin-inline-end:0.8rem;user-select:none}.chroma .hl{background:var(--c-accent-bg);display:block}
