.SiteHeader_header__tl0ks{display:flex;flex-direction:row;justify-content:space-between;align-items:center;max-width:var(--content-wide);margin:0 auto}.SiteHeader_logoLink__FQ6dV{display:block;text-decoration:none}.SiteHeader_logoLink__FQ6dV:hover{text-decoration:none}.SiteHeader_logoContainer__TprDg{position:relative;width:80px;height:80px}.SiteHeader_logoBw___ekKy{transition:opacity .5s ease}.SiteHeader_logoColor__Ih9ta{position:absolute;top:0;left:0;opacity:0;transition:opacity .5s ease}.SiteHeader_logoContainer__TprDg:hover .SiteHeader_logoBw___ekKy{opacity:0}.SiteHeader_logoContainer__TprDg:hover .SiteHeader_logoColor__Ih9ta{opacity:1}.SiteHeader_nav__rh4jQ{display:flex;flex-direction:row;align-items:center;gap:2rem}.SiteHeader_navLink__NVBNi{font-family:var(--font-ui);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);text-decoration:none;transition:color .2s ease}.SiteHeader_navLink__NVBNi:hover{color:var(--color-accent);text-decoration:none}:root{--color-bg:#faf8f4;--color-surface:#f3f0ea;--color-text:#2c2c2c;--color-text-secondary:#6b6b6b;--color-accent:#c05d3e;--color-accent-hover:#a84e33;--color-border:#ddd8d0;--color-link:#c05d3e;--color-link-hover:#a84e33;--color-code-bg:#f0ece6;--color-code-text:#c05d3e;--color-card-bg:#fff;--color-card-border:#e8e4de;--color-card-shadow:rgba(0,0,0,.06);--font-body:"Merriweather",Georgia,serif;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-mono:"JetBrains Mono",Menlo,Monaco,"Courier New",monospace;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--content-width:38rem;--content-wide:52rem}@media (prefers-color-scheme:dark){:root{--color-bg:#1a1a1e;--color-surface:#242428;--color-text:#e8e4df;--color-text-secondary:#a09a92;--color-accent:#e07a5a;--color-accent-hover:#eb9070;--color-border:#3a3a3e;--color-link:#e07a5a;--color-link-hover:#eb9070;--color-code-bg:#2a2a2e;--color-code-text:#e07a5a;--color-card-bg:#242428;--color-card-border:#3a3a3e;--color-card-shadow:rgba(0,0,0,.2)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:100%}body{font-family:var(--font-body);background-color:var(--color-bg);line-height:1.8;transition:background-color .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,h5,h6{color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}h1{font-size:2.25rem}h1,h2{margin-bottom:var(--space-md)}h2{font-size:1.875rem;margin-top:var(--space-2xl)}h3{font-size:1.5rem;margin-top:var(--space-xl)}h3,h4{margin-bottom:var(--space-sm)}h4{font-size:1.25rem;margin-top:var(--space-lg)}h5{font-size:1.1rem}h6{font-size:.95rem}p{font-size:1rem;margin-bottom:var(--space-lg);line-height:1.8;color:var(--color-text)}small{font-size:.875rem}blockquote{max-width:var(--content-width);margin:var(--space-lg) auto;padding-left:var(--space-lg);border-left:3px solid var(--color-accent);color:var(--color-text-secondary);font-style:italic}blockquote p{font-size:1.15rem}a{color:var(--color-link);text-decoration:none;transition:color .2s ease}a:focus,a:hover{color:var(--color-link-hover);text-decoration:underline}.site-wrapper,canvas,iframe,img,select,svg,textarea,video{max-width:100%}.site-wrapper{min-height:100vh;padding:var(--space-lg) var(--space-xl)}.site-main{padding:var(--space-lg) 0}.article-content,.site-main{max-width:var(--content-wide);margin:0 auto}.article-content>blockquote,.article-content>h1,.article-content>h2,.article-content>h3,.article-content>h4,.article-content>h5,.article-content>h6,.article-content>hr,.article-content>ol,.article-content>p,.article-content>table,.article-content>ul{max-width:var(--content-width);margin-left:auto;margin-right:auto}.article-content>ol,.article-content>ul{padding-left:var(--space-xl)}.article-content li{margin-bottom:var(--space-sm)}.article-content img{display:block;margin:var(--space-xl) auto;border-radius:.5rem}.article-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) auto}.articleHeader{max-width:var(--content-width);margin:0 auto var(--space-xl)}.articleHeader h1{margin-bottom:var(--space-sm)}.articleMeta{display:flex;flex-direction:column;gap:var(--space-sm);color:var(--color-text-secondary);font-family:var(--font-ui);font-size:.875rem}@media screen and (min-width:36rem){.articleMeta{flex-direction:row;justify-content:space-between;align-items:center}}.datePublished{font-family:var(--font-ui);font-size:.875rem}.datePublished,.subtitle{color:var(--color-text-secondary)}.subtitle{font-size:1.1rem}.postCard{display:block;max-width:var(--content-wide);margin:var(--space-md) auto;padding:var(--space-lg) var(--space-xl);background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:.5rem;cursor:pointer;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.postCard,.postCard:hover{text-decoration:none;color:inherit}.postCard:hover{box-shadow:0 4px 12px var(--color-card-shadow);border-color:var(--color-accent);transform:translateY(-1px)}.postCard h2{margin-top:0;margin-bottom:var(--space-sm);font-size:1.5rem}.postCard .subtitle{margin-bottom:var(--space-md)}.postCard .metaContainer{display:flex;flex-direction:column;gap:var(--space-sm);font-size:.875rem;font-family:var(--font-ui);margin:0}@media screen and (min-width:36rem){.postCard .metaContainer{flex-direction:row;justify-content:space-between;align-items:center}}.tags{font-size:.875rem;margin:0}.tagElement,.tags{color:var(--color-text-secondary);font-family:var(--font-ui)}.tagElement{display:inline-block;background:var(--color-surface);padding:.15rem .6rem;border-radius:1rem;font-size:.8rem;margin:.15rem .25rem;transition:background-color .2s ease,color .2s ease;text-decoration:none}.tagElement:hover{background:var(--color-accent);color:#fff}.tagElement a{color:inherit}.tagElement a,.tagElement a:hover{text-decoration:none}.filterBar{max-width:var(--content-wide);margin:0 auto var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--color-surface);border-radius:.5rem;border:1px solid var(--color-border)}.filterHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm);font-family:var(--font-ui);font-size:.9rem}.filterClose{color:var(--color-text-secondary);font-size:1.1rem;transition:color .2s ease}.filterClose:hover{color:var(--color-accent);text-decoration:none}:not(pre)>code{font-size:.85em;background:var(--color-code-bg);color:var(--color-code-text);padding:.15em .4em;border-radius:.25rem}:not(pre)>code,pre{font-family:var(--font-mono)}pre{background:#1d1f21!important;color:#c5c8c6;font-size:.85rem;padding:var(--space-lg);border-radius:.5rem;overflow-x:auto;line-height:1.5;margin-bottom:var(--space-lg)}pre code{background:none!important;color:inherit;padding:0;font-size:inherit;border-radius:0}.remark-highlight{max-width:var(--content-wide);margin:var(--space-lg) auto;border-radius:.5rem;box-shadow:0 2px 8px rgba(0,0,0,.15)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#969896}.token.punctuation{color:#c5c8c6}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#c66}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#b5bd68}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#8abeb7}.token.atrule,.token.attr-value,.token.keyword{color:#b294bb}.token.class-name,.token.function{color:#81a2be}.token.important,.token.regex,.token.variable{color:#e6c07b}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}@media screen and (max-width:40rem){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.postCard,.site-wrapper{padding:var(--space-md)}}