/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.relative{position:relative}.container{width:100%}.mx-auto{margin-inline:auto}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.min-h-screen{min-height:100vh}.text-center{text-align:center}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root,:root[data-theme=light]{--background:#fff;--foreground:#171717;--foreground-muted:#4b5563;--foreground-soft:#6b7280;--border-subtle:#0000001a;--link:#1d4ed8;--link-hover:#1e40af}:root[data-theme=dark]{--background:#0a0a0a;--foreground:#ededed;--foreground-muted:#d1d5db;--foreground-soft:#9ca3af;--border-subtle:#ffffff1f;--link:#93c5fd;--link-hover:#bfdbfe}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed;--foreground-muted:#d1d5db;--foreground-soft:#9ca3af;--border-subtle:#ffffff1f;--link:#93c5fd;--link-hover:#bfdbfe}}*{box-sizing:border-box;margin:0;padding:0}body,html{max-width:100vw;overflow-x:hidden}body{color:var(--foreground);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}body,nav{background:var(--background)}nav{border-bottom:1px solid var(--border-subtle)}.container{max-width:800px;margin:0 auto;padding:0 1rem}.nav-links{align-items:center;gap:2rem;display:flex}.theme-toggle{border:1px solid var(--border-subtle);width:2rem;height:2rem;color:var(--foreground);cursor:pointer;background:0 0;border-radius:9999px;flex:none;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.theme-toggle:hover{background:#7f7f7f14}.theme-toggle:focus-visible{outline:2px solid var(--link);outline-offset:3px}.theme-toggle-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1rem;height:1rem}.theme-toggle-icon-moon,:root[data-theme=dark] .theme-toggle-icon-sun{display:none}:root[data-theme=dark] .theme-toggle-icon-moon{display:block}.home-page{background:var(--background);min-height:calc(100vh - 8rem)}.home-shell{width:100%;max-width:760px;margin:0 auto;padding:clamp(4rem,10vw,7rem) 1.5rem 5rem}.about-grid{grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:start;gap:clamp(3rem,7vw,5rem);display:grid}.profile-panel{flex-direction:column;align-items:flex-start;display:flex}.home-avatar{border-radius:9999px;width:112px;height:112px;margin:0 0 1.5rem;display:block}.profile-panel h1{color:var(--foreground);margin:0;font-size:1.45rem;font-weight:650;line-height:1.2}.profile-panel p{color:var(--foreground-soft);margin:.45rem 0 0;font-size:.98rem;line-height:1.55}.profile-socials{align-items:center;gap:.3rem;margin-top:1.5rem;display:flex}.profile-social-link{width:2rem;height:2rem;color:var(--foreground);opacity:.78;justify-content:center;align-items:center;text-decoration:none;transition:opacity .2s,color .2s,background .2s;display:inline-flex;overflow:hidden}.profile-social-link:hover{color:var(--foreground);opacity:1}.profile-social-link:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:9999px}.profile-social-link svg{fill:currentColor;width:1rem;height:1rem;display:block;overflow:hidden}.profile-social-link .profile-social-icon-github{width:.82rem;height:.82rem}.profile-email{color:var(--foreground-soft);text-underline-offset:.18em;margin-top:1.2rem;font-size:.94rem;line-height:1.6;text-decoration:underline}.home-copy h2{color:var(--foreground);margin:0 0 1.4rem;font-size:clamp(1.65rem,2.2vw,2rem);font-weight:650;line-height:1.2}.home-copy p{color:var(--foreground-muted);margin:0;font-size:clamp(1.0625rem,.35vw + 1rem,1.15rem);line-height:1.76}.home-copy p+p{margin-top:1.35rem}.home-page a{color:var(--link);text-underline-offset:.18em;font-weight:550;text-decoration:underline;text-decoration-thickness:1px}.home-page a:hover{color:var(--link-hover)}article h1{color:var(--foreground);margin-bottom:1.5rem;font-weight:700;line-height:1.2}article h2{margin-top:2rem;line-height:1.3}article h2,article h3{color:var(--foreground);font-weight:600}article h3{margin-top:1.5rem;line-height:1.4}article p{color:var(--foreground);margin-bottom:1.5rem;font-size:1.1rem;line-height:1.7}article ol ol,article ol ul,article ul ol,article ul ul{margin-top:.5rem;margin-bottom:.5rem}article strong{color:var(--foreground);font-weight:600}article em{font-style:italic}a{color:var(--link);text-underline-offset:2px;text-decoration:underline}a:hover{color:var(--link-hover)}hr{border:none;border-top:1px solid #0000001a;margin:2rem 0}@media (prefers-color-scheme:dark){hr{border-top:1px solid #ffffff1a}}code{background:#0000000d;border-radius:.25rem;padding:.125rem .25rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.9em}pre{background:#00000008;border:1px solid #0000001a;border-radius:.5rem;margin:1.5rem 0;padding:1rem;overflow-x:auto}pre code{background:0 0;padding:0;font-size:.9rem}@media (prefers-color-scheme:dark){code{background:#ffffff1a}pre{background:#ffffff0d;border-color:#ffffff1a}}article{max-width:none}article h1{margin-bottom:1rem;font-size:2.5rem}article h2{border-bottom:2px solid #0000001a;margin-top:2.5rem;margin-bottom:1rem;padding-bottom:.5rem;font-size:2rem}article h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.5rem}article blockquote{border-left:4px solid var(--link);color:rgba(var(--foreground),.8);margin:1.5rem 0;padding-left:1rem;font-style:italic}article ol,article ul{margin-bottom:1.5rem;padding-left:1.5rem}article ul{list-style-type:disc}article ol{list-style-type:decimal}article li{color:var(--foreground);margin-bottom:.5rem;font-size:1.1rem;line-height:1.6;display:list-item}@media (prefers-color-scheme:dark){article h2{border-bottom-color:#ffffff1a}article blockquote{border-left-color:var(--link)}}.blog-list-link{color:var(--link);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}.blog-list-link:hover{color:var(--link-hover)}.blog-archive{flex-direction:column;gap:1.15rem;margin-top:2rem;display:flex}.blog-archive-row{grid-template-columns:8rem minmax(0,1fr);align-items:baseline;column-gap:1.5rem;display:grid}.blog-archive-date{color:var(--foreground-soft);white-space:nowrap;font-size:.9rem;line-height:1.4}.blog-archive-title{overflow-wrap:break-word;min-width:0;font-size:1.08rem;line-height:1.45;display:block}.token.cdata,.token.comment,.token.doctype,.token.prolog,.token.punctuation{color:#6b7280}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#dc2626}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#059669}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#d97706}.token.atrule,.token.attr-value,.token.keyword{color:#2563eb}.token.class-name,.token.function{color:#7c3aed}.token.important,.token.regex,.token.variable{color:#dc2626}@media (prefers-color-scheme:dark){.token.cdata,.token.comment,.token.doctype,.token.prolog,.token.punctuation{color:#9ca3af}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#f87171}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#34d399}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#fbbf24}.token.atrule,.token.attr-value,.token.keyword{color:#60a5fa}.token.class-name,.token.function{color:#a78bfa}}@media (max-width:768px){.nav-links{gap:1rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.profile-panel{text-align:center;align-items:center}.home-avatar{margin-left:auto;margin-right:auto}article h1{font-size:2rem}article h2{font-size:1.5rem}.container{padding:0 .75rem}article div[style*="display: flex"]{flex-direction:column!important}article div[style*="width: 200px"]{width:100%!important;height:200px!important}}@media (max-width:520px){.blog-archive{gap:1.35rem}.blog-archive-row{grid-template-columns:1fr;row-gap:.25rem}.blog-archive-date{font-size:.82rem}.blog-archive-title{font-size:1.04rem}}