.PageHeader_PageHeader__6B_bq{margin-bottom:var(--space-lg,2.4rem);padding-bottom:var(--space-md,1.6rem);border-bottom:1px solid var(--color-border,#e5e5e5)}.PageHeader_title__FhYFU{font-size:3.6rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--color-text,#1a1a1a)}.PostFooter_PostFooter__KiSch{margin-top:var(--space-2xl,4.8rem);padding-top:var(--space-lg,2.4rem);border-top:1px solid var(--color-border,#e5e5e5)}.PostFooter_tags__c8_Qt{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-sm,.8rem);align-items:center}.PostFooter_tagsLabel__sL0fM{font-size:1.4rem;color:var(--color-text-muted,#777);margin-right:var(--space-sm,.8rem)}.Tags_Tags__lrhsS{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-sm,.8rem)}.Tags_tag__CW0_K{display:inline-block;font-size:1.3rem;color:var(--color-text-secondary,#555);background-color:var(--color-background-subtle,#f8f9fa);padding:var(--space-xs,.4rem) var(--space-sm,.8rem);border-radius:4px;text-decoration:none;transition:background-color .15s ease,color .15s ease;&:hover{background-color:var(--color-accent,#0066cc);color:white;text-decoration:none}}.PostHeader_PostHeader__UUYZt{margin-bottom:var(--space-md,1.6rem);padding-bottom:var(--space-md,1.6rem);border-bottom:1px solid var(--color-border,#e5e5e5)}.PostHeader_title__ek5xp{font-size:3.6rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--color-text,#1a1a1a);margin-bottom:var(--space-sm,.8rem)}.PostHeader_subTitle__D0rbz{font-size:1.6rem;margin:0;padding:0;color:var(--color-text-muted,#777)}.PostSummaries_PostSummaries__at_Y3{list-style:none;display:flex;flex-direction:column;padding-left:0;margin:0;gap:var(--space-lg,2.4rem)}.PostSummaries_postTitle__Iq79Q{font-size:2.2rem;font-weight:600;line-height:1.3;margin-bottom:var(--space-sm,.8rem)}.PostSummaries_postTitle__Iq79Q a{color:var(--color-text,#1a1a1a);text-decoration:none;&:hover{color:var(--color-accent,#0066cc);text-decoration:none}}.PostSummaries_postMeta__hrRJt{font-size:1.4rem;color:var(--color-text-muted,#777);margin-bottom:var(--space-sm,.8rem)}.PostSummaries_postExcerpt__ZNvmI{color:var(--color-text-secondary,#555);margin:0;line-height:1.6}.ProjectCard_ProjectCards__jP9aV{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(28rem,1fr));grid-gap:var(--space-lg,2.4rem);gap:var(--space-lg,2.4rem);padding-left:0;margin:0}.ProjectCard_card__Xw_lB{border:1px solid var(--color-border,#e5e5e5);border-radius:8px;background-color:var(--color-background,#fff);transition:box-shadow .2s ease,border-color .2s ease}.ProjectCard_card__Xw_lB:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);border-color:var(--color-accent,#0066cc)}.ProjectCard_link__XXJQO{display:flex;flex-direction:column;padding:var(--space-lg,2.4rem);text-decoration:none;color:inherit;height:100%}.ProjectCard_link__XXJQO:hover{text-decoration:none}.ProjectCard_title__VnyZv{margin:0 0 var(--space-sm,.8rem) 0;font-size:1.8rem;font-weight:600;color:var(--color-text,#1a1a1a)}.ProjectCard_excerpt__SzSYH{margin:0;color:var(--color-text-secondary,#555);font-size:1.5rem;line-height:1.6;flex:1 1}.SiteFooter_SiteFooter__86zgA{width:min(var(--content-width,68rem),100% - var(--space-lg,2.4rem) * 2);margin:0 auto;padding:var(--space-md,1.2rem) 0}.SiteFooter_links__DXkKZ{display:flex;flex-direction:row;justify-content:flex-end;column-gap:var(--space-lg,2.4rem);font-size:1.4rem;& a{color:var(--color-text-muted,#777);transition:color .15s ease}& a,& a:hover{text-decoration:none}& a:hover{color:var(--color-text,#1a1a1a)}}.SiteHeader_SiteHeader__QbcMX{display:flex;flex-direction:row;align-items:center;justify-content:space-between;column-gap:var(--space-xl,3.2rem)}.SiteHeader_home__XUiFO{font-size:2rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text,#1a1a1a);text-decoration:none;&:hover{text-decoration:none}}.SiteNav_SiteNav__4FjyN{display:flex;flex-direction:row;column-gap:var(--space-lg,2.4rem);font-size:1.6rem}.SiteNav_SiteNav__4FjyN a{color:var(--color-text-secondary,#555);text-decoration:none;padding:var(--space-xs,.4rem) 0;position:relative;transition:color .15s ease;&:hover{color:var(--color-text,#1a1a1a);text-decoration:none}}:root{--color-text:#1a1a1a;--color-text-secondary:#555;--color-text-muted:#777;--color-accent:#0066cc;--color-accent-hover:#0052a3;--color-background:#fff;--color-background-subtle:#f8f9fa;--color-border:#e5e5e5;--color-code-bg:#1e1e1e;--color-code-text:#d4d4d4;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",SFMono-Regular,Menlo,Monaco,Consolas,monospace;--space-xs:0.4rem;--space-sm:0.8rem;--space-md:1.6rem;--space-lg:2.4rem;--space-xl:3.2rem;--space-2xl:4.8rem;--content-width:68rem;--line-height:1.7}*,:after,:before{box-sizing:border-box;border:0 solid}html{font-size:62.5%;-webkit-text-size-adjust:100%;font-family:var(--font-sans);line-height:var(--line-height);-moz-tab-size:4;tab-size:4;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:inherit;font-size:1.8rem;line-height:var(--line-height);background-color:var(--color-background)}body,h1,h2,h3,h4,h5,h6{color:var(--color-text);margin:0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}h1{font-size:3.6rem;letter-spacing:-.02em}h2{font-size:2.4rem;letter-spacing:-.01em}h3{font-size:2.2rem}h4{font-size:1.8rem}.prose h2,article h2{margin-top:var(--space-xl);margin-bottom:var(--space-sm)}.prose h3,article h3{margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.prose h4,article h4{margin-top:var(--space-md);margin-bottom:var(--space-xs)}p{margin:0 0 var(--space-lg)}.prose p,article p{max-width:65ch}a{color:var(--color-accent);text-decoration:none;font-weight:500;transition:color .15s ease;&:hover{color:var(--color-accent-hover);text-decoration:underline;text-underline-offset:.2em}}.prose a,article a{text-decoration:underline;text-underline-offset:.2em;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border);&:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}}ol,ul{margin:0;padding:0}ul{list-style:disc}ol{list-style:decimal}li{margin-bottom:var(--space-sm);line-height:var(--line-height);list-style:none}li>ol,li>ul{margin-top:var(--space-sm);margin-bottom:0}nav ul{list-style:none;padding-left:0;margin:0}nav li{margin-bottom:0}code{font-size:.9em;background-color:var(--color-background-subtle);padding:.2em .4em;border-radius:4px;color:var(--color-text)}code,pre{font-family:var(--font-mono)}pre{margin:0 0 var(--space-lg);background-color:var(--color-code-bg);border-radius:8px;color:var(--color-code-text);font-size:1.4rem;line-height:1.6;overflow-x:auto;padding:var(--space-md) var(--space-lg)}pre code{background:none;padding:0;font-size:inherit;color:inherit}blockquote{margin:0 0 var(--space-lg);padding:var(--space-md) var(--space-lg);border-left:4px solid var(--color-accent);background-color:var(--color-background-subtle);color:var(--color-text-secondary);font-style:italic}blockquote p:last-child{margin-bottom:0}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) 0}img{max-width:100%;height:auto;display:block;border-radius:8px}table{width:100%;margin-bottom:var(--space-lg);border-collapse:collapse}td,th{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}th{background-color:var(--color-background-subtle)}strong,th{font-weight:600}em{font-style:italic}svg{display:block;vertical-align:middle;shape-rendering:auto;text-rendering:optimizeLegibility}::selection{background-color:var(--color-accent);color:white}.layout_Layout__jK3DZ{display:flex;flex-direction:column;min-height:100vh}.layout_siteHeader__wdi20{width:min(var(--content-width,68rem),100% - var(--space-lg,2.4rem) * 2);margin:0 auto;padding:var(--space-lg,2.4rem) 0}.layout_siteContent__Mv8Tv{flex:1 1}.layout_siteFooter__9R2k8{background-color:var(--color-background-subtle,#f8f9fa);margin-top:var(--space-2xl,4.8rem);border-top:1px solid var(--color-border,#e5e5e5)}