@font-face{font-family:Söhne Buch;src:url(/fonts/soehne-buch.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Söhne Mono Buch;src:url(/fonts/soehne-mono-buch.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:light dark;--color-bg:#fafaf7;--color-fg:#1a1a1a;--color-muted:#6a6a68;--color-rule:#e4e4de;--color-code-bg:#f4f4f0;--font-sans:"Söhne Buch", -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", Arial, sans-serif;--font-mono:"Söhne Mono Buch", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--fs-body:1rem;--fs-sm:.875rem;--fs-xs:.75rem;--lh-body:1.75;--lh-tight:1.4;--page-max:60rem;--prose-col:40rem;--col-gap:clamp(2rem, 4vw, 3rem);--space-para:1.75rem;--space-head:3.5rem;--space-head-b:2rem;--space-section:clamp(4.5rem, 8vw, 8rem);--space-post-to-about:clamp(9rem, 16vw, 16rem);--track-label:.04em}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#0f0f0e;--color-fg:#e8e8e4;--color-muted:#8a8a86;--color-rule:#262623;--color-code-bg:#181816}}:root[data-theme=dark]{--color-bg:#0f0f0e;--color-fg:#e8e8e4;--color-muted:#8a8a86;--color-rule:#262623;--color-code-bg:#181816}*,:before,:after{box-sizing:border-box}html,body,p,h1,h2,h3,h4,h5,h6,ol,ul,figure{margin:0;padding:0}ol,ul{list-style:none}img,svg,video{max-width:100%;display:block}a{color:inherit;text-underline-offset:.2em;text-decoration:underline .05em;text-decoration-color:var(--color-muted)}a:hover{text-decoration-color:var(--color-fg)}html,body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;text-rendering:optimizelegibility;font-synthesis:weight}html{scroll-behavior:smooth}.page{max-width:var(--page-max);margin:0 auto;padding:clamp(3rem,6vw,8rem) clamp(1.5rem,3vw,2rem) clamp(6rem,10vw,10rem);position:relative}.site-logo,.theme-toggle{z-index:10;background:0 0;border:0;justify-content:center;align-items:center;width:2rem;height:2rem;margin:0;padding:0;display:inline-flex;position:fixed;top:clamp(1.25rem,3vw,2rem)}.site-logo{font-family:var(--font-mono);color:var(--color-fg);font-size:.9375rem;font-weight:700;line-height:1;text-decoration:none;left:clamp(1.25rem,3vw,2rem)}.theme-toggle{color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .15s;right:clamp(1.25rem,3vw,2rem)}.theme-toggle:hover{color:var(--color-fg)}.theme-toggle svg{width:1.125rem;height:1.125rem}.nav-scrim{z-index:9;pointer-events:none;height:calc(clamp(1.25rem,3vw,2rem) + 4.5rem);display:none;position:fixed;top:0;left:0;right:0}@media (width<=56rem){.nav-scrim{background:color-mix(in srgb, var(--color-bg) 72%, transparent);backdrop-filter:blur(10px);transition:transform .3s,opacity .3s;display:block;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}html.nav-hidden .nav-scrim{opacity:0;transform:translateY(-100%)}.site-logo,.theme-toggle{transition:transform .3s,opacity .3s}html.nav-hidden .site-logo{opacity:0;transform:translate(calc(-100% - clamp(1.25rem,3vw,2rem)))}html.nav-hidden .theme-toggle{opacity:0;transform:translate(calc(100% + clamp(1.25rem,3vw,2rem)))}}.section{margin-top:var(--space-section)}.section:first-child,.section.is-first{margin-top:0}.post+.section{margin-top:var(--space-post-to-about)}.grid{column-gap:var(--col-gap);grid-template-columns:1fr 2fr;display:grid}.grid>.label{font-family:var(--font-mono);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-muted);letter-spacing:var(--track-label);align-self:start;position:sticky;top:2rem}.grid>.content{min-width:0}.post{max-width:var(--prose-col);margin:0 auto;position:relative}.post-header{text-align:center;margin-bottom:var(--space-head-b)}.post-title{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);margin:0 0 .25em;font-weight:600}.post-subtitle{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-muted);margin:0 0 1.25em}.post-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);margin:0}.post-body{font-size:var(--fs-body);line-height:var(--lh-body)}.post-body p,.post-body ul,.post-body ol{margin:0 0 var(--space-para)}.post-body p:last-child,.post-body ul:last-child,.post-body ol:last-child{margin-bottom:0}.post-body ul{padding-left:1.25em;list-style:outside}.post-body ol{padding-left:1.25em;list-style:decimal}.post-body li{margin-bottom:.35em}.post-body h2{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);margin:var(--space-head) 0 var(--space-head-b);font-weight:600}.post-body h2:first-child{margin-top:0}.post-body em{font-style:italic}.post-body strong{font-weight:600}.post-body a{color:inherit}.post-body code{font-family:var(--font-mono);background:var(--color-code-bg);border-radius:2px;padding:.1em .35em;font-size:.92em}.post-body pre{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--color-code-bg);border-radius:2px;margin:1.75em 0;padding:1.1em 1.25em;line-height:1.55;overflow-x:auto}.post-body pre code{font-size:inherit;background:0 0;padding:0}.post-body :not(pre)>code{background:var(--color-code-bg)}.post-body pre.astro-code{background-color:var(--color-code-bg)!important}@media (prefers-color-scheme:dark){:root:not([data-theme]) .post-body pre.astro-code,:root:not([data-theme]) .post-body pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--color-code-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}:root[data-theme=dark] .post-body pre.astro-code,:root[data-theme=dark] .post-body pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--color-code-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.post-body sup{font-family:var(--font-mono);vertical-align:super;color:var(--color-muted);margin-left:.15em;font-size:.7em;line-height:0}.post-body sup a{color:inherit;text-decoration:none}.post-body sup a:hover{color:var(--color-fg)}.post-body .footnotes{margin-top:var(--space-section);border-top:1px solid var(--color-rule);font-size:var(--fs-sm);color:var(--color-muted);padding-top:1.5rem;line-height:1.65}.post-body .footnotes h2{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--track-label);margin:0 0 1rem;font-weight:400}.post-body .footnotes ol{padding-left:1.25em;list-style:decimal}.post-body .footnotes li{margin-bottom:.75em}.post-body .footnotes li p{margin:0 0 .25em;display:inline}.post-body .footnotes a[data-footnote-backref]{color:inherit;margin-left:.4em;text-decoration:none}.post-body .footnotes a[data-footnote-backref]:hover{color:var(--color-fg)}.post-body .ascii{font-family:var(--font-mono);white-space:pre;color:var(--color-fg);margin:var(--space-head) 0 1rem;width:max-content;max-width:min(var(--page-max), calc(100vw - 3rem));background:0 0;border-radius:0;padding:0;font-size:.75rem;line-height:1.45;display:block;position:relative;left:50%;overflow-x:auto;transform:translate(-50%)}.post-body .ascii-caption{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--color-muted);margin:0 0 var(--space-head);text-align:center;width:var(--page-max);max-width:calc(100vw - 3rem);font-style:italic;position:relative;left:50%;transform:translate(-50%)}.about{column-gap:var(--col-gap);grid-template-columns:1fr 1fr;align-items:start;display:grid}.about-text{max-width:30em}.about-name{font-family:var(--font-sans);margin:0;font-size:1.125rem;font-weight:600;line-height:1.55}.about-subtitle{font-family:var(--font-mono);font-size:var(--fs-body);color:var(--color-muted);letter-spacing:var(--track-label);margin:0 0 1.5rem}.about-bio{font-size:var(--fs-body);margin:0 0 1.5rem;line-height:1.55}.about-links{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-muted)}.about-links a{color:inherit;text-decoration:none}.about-links a:hover{color:var(--color-fg)}.about-photo{object-fit:cover;background:var(--color-rule);width:100%;height:250px}.about-prose{font-size:var(--fs-body);line-height:1.55}.about-prose p{margin:0 0 1.25em}.about-prose p:last-child{margin-bottom:0}.exp-subheading{font-family:var(--font-sans);font-size:var(--fs-xs);text-transform:uppercase;color:var(--color-fg);margin:3rem 0 1.25rem;font-weight:600}.exp-list{font-size:var(--fs-sm);flex-direction:column;line-height:1.55;display:flex}.exp-row{border-top:1px solid var(--color-rule);grid-template-columns:1fr auto;align-items:baseline;column-gap:1.5em;padding:1.25rem 0;display:grid}.exp-row:first-child{border-top:none;padding-top:0}.exp-row:last-child{padding-bottom:0}.exp-role{font-weight:600}.exp-company{color:var(--color-muted)}.exp-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);white-space:nowrap;text-align:right}.frag-list{font-size:var(--fs-body);flex-direction:column;line-height:1.55;display:flex}.frag-row{border-top:1px solid var(--color-rule);grid-template-columns:1fr auto;align-items:baseline;column-gap:1.5em;padding:1.25rem 0;display:grid}.frag-row:first-child{border-top:none;padding-top:0}.frag-row:last-child{padding-bottom:0}.frag-row a{color:inherit;text-decoration:none}.frag-row a:hover{color:var(--color-muted)}.frag-row--current .frag-title{color:var(--color-fg)}.frag-reading{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);margin-left:.75em;font-style:italic}.frag-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);white-space:nowrap;text-align:right}.prose-body{font-size:var(--fs-body);line-height:1.55}.prose-body p{margin:0 0 1.25em}.prose-body p:last-child{margin-bottom:0}.prose-body a{color:inherit}.titleblock{border:1px dashed var(--color-rule);grid-template-columns:repeat(3,1fr);margin:0;display:grid}.tb-cell{border-top:1px dashed var(--color-rule);border-left:1px dashed var(--color-rule);min-width:0;padding:.875rem 1rem 1rem}.tb-cell:nth-child(-n+3){border-top:0}.tb-cell:nth-child(3n+1){border-left:0}.tb-cell dt{font-family:var(--font-sans);letter-spacing:.08em;color:var(--color-muted);text-transform:uppercase;margin:0 0 .35rem;font-size:.6875rem;line-height:1.4}.tb-cell dd{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-fg);overflow-wrap:anywhere;margin:0;line-height:1.5}.tb-cell dd a{color:inherit}.titleblock-note{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);text-align:center;margin:1rem 0 0;line-height:1.55}@media (width<=40rem){.titleblock{grid-template-columns:1fr}.tb-cell{border-left:0;border-top:1px dashed var(--color-rule)}.tb-cell:first-child{border-top:0}}.post-body table{table-layout:fixed;border-collapse:collapse;width:100%;margin:var(--space-para) 0;font-size:var(--fs-sm);line-height:1.6}.post-body th,.post-body td{border-bottom:1px solid var(--color-rule);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.875rem .75rem}.post-body th{font-weight:400}.post-body thead th{background:var(--color-code-bg);font-family:var(--font-mono);font-size:var(--fs-xs)}.post-body th:first-child{width:32%}.post-body figure{margin:var(--space-head) auto;margin-left:calc(-1 * ((var(--page-max) - var(--prose-col)) / 2));margin-right:calc(-1 * ((var(--page-max) - var(--prose-col)) / 2));width:var(--page-max);max-width:none}.post-body figure img{width:100%;height:auto;display:block}.post-body figure figcaption{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);text-align:center;margin-top:.75rem;font-style:italic}.back-home{max-width:var(--prose-col);margin:var(--space-section) auto 0;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);text-align:left}.back-home a{color:inherit;text-decoration:none}.back-home a:hover{color:var(--color-fg)}.not-found{max-width:var(--prose-col);text-align:center;margin:0 auto}.not-found h1{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);margin:0 0 .25em;font-weight:600}.not-found p{margin:0 0 var(--space-para);color:var(--color-muted)}.not-found a{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-muted);text-decoration:none}.not-found a:hover{color:var(--color-fg)}@media (width<=56rem){.grid{grid-template-columns:1fr;row-gap:.75rem}.grid>.label{position:static}.about{grid-template-columns:1fr;row-gap:2rem}.about-text{max-width:none}.about-photo{aspect-ratio:4/3;width:100%;max-width:none;height:auto}.post-body .ascii{font-size:.5625rem}}@media (width<=32rem){.post-body .ascii{font-size:.4375rem}}
