:root{--bg:#f8fafc;--surface:#ffffff;--text:#0f172a;--text-soft:#475569;--link:#2563eb;--border:#e2e8f0}:root[data-theme=dark]{--bg:#0b1220;--surface:#0f172a;--text:#e2e8f0;--text-soft:#94a3b8;--link:#60a5fa;--border:#1e293b}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Helvetica,Arial,sans-serif;line-height:1.6;color:var(--text);background:var(--bg)}.container{width:min(980px,92vw);margin:0 auto}.site-header{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--border)}.site-footer{background:var(--surface);border-top:1px solid var(--border);border-bottom:0;margin-top:3rem;padding:1rem 0;text-align:center}.header-inner{min-height:4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text)}.brand-logo{width:1.9rem;height:1.9rem;object-fit:contain;border-radius:6px}.brand-name{font-weight:700;letter-spacing:.02em}.site-nav{display:flex;align-items:center;gap:.75rem}.menu-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.5rem}.text-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.35rem .7rem;color:var(--text);background:0 0;text-decoration:none;font:inherit;cursor:pointer}.text-button{border:0;border-radius:0}.icon-button{border:1px solid var(--border);border-radius:999px}.text-button:hover,.icon-button:hover{background:var(--surface)}main.container{min-height:calc(100vh - 10rem);padding:2.5rem 0 1.25rem}h1,h2,h3{line-height:1.2}a{color:var(--link)}.meta{color:var(--text-soft);margin-top:-.4rem}.site-footer small{color:var(--text-soft)}.site-footer a{color:var(--text)}.resume{display:grid;gap:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem 1.1rem}.resume-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.resume-name{margin:0}.resume-tagline{margin:.4rem 0 0;color:var(--text-soft)}.resume-contact{list-style:none;margin:0;padding:0;text-align:right}.resume-contact li+li{margin-top:.25rem}.resume-contact-link{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}.resume-icon{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;font-size:.82rem;line-height:1}.resume-icon-img{object-fit:contain}:root[data-theme=dark] img.resume-icon-img{filter:brightness(0)invert(1);opacity:.92}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) img.resume-icon-img{filter:brightness(0)invert(1);opacity:.92}}.resume-icon-text{font-size:.72rem;border:1px solid var(--border);border-radius:4px;padding:.02rem .2rem;width:auto;min-width:1.1rem;height:1.1rem}.resume-section h2{margin-top:0}.timeline{display:grid;gap:1rem}.timeline-item h3{margin:0}.blog-timeline-group{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;align-items:start}.blog-timeline{position:relative}.blog-timeline::before{content:"";position:absolute;top:.4rem;bottom:.4rem;left:calc(7.5rem + .75rem - 1px);width:2px;background:#e5e7eb}:root[data-theme=dark] .blog-timeline::before{background:#374151}.blog-timeline-group-title{display:flex;align-items:center;min-height:1.75rem;margin:0;padding-top:0;text-align:right;justify-self:end}:root:not([data-theme=dark]) .blog-tag-chip{background:#fff!important;color:#374151!important;border-color:#e5e7eb!important;border-radius:.45rem!important}:root:not([data-theme=dark]) .blog-tag-chip:hover{background:#f9fafb!important}:root[data-theme=dark] .blog-tag-chip{background:#1f2937!important;color:#f3f4f6!important;border-color:#4b5563!important;border-radius:.45rem!important}:root[data-theme=dark] .blog-tag-chip:hover{background:#374151!important}:root:not([data-theme=dark]) .blog-card-meta{font-size:.78rem!important;color:#1f2937!important}:root[data-theme=dark] .blog-card-meta{font-size:.78rem!important;color:#e5e7eb!important}:root:not([data-theme=dark]) .blog-card-summary{color:#111827!important}:root[data-theme=dark] .blog-card-summary{color:#f3f4f6!important}.timeline-company{margin:.15rem 0;font-weight:600}.timeline-meta{margin:0;color:var(--text-soft);font-size:.92rem}.resume-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.resume-grid-item h3{margin-top:0}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:0}.chips span{padding:.1rem .55rem;border:1px solid var(--border);border-radius:999px;font-size:.84rem}.resume-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.plain-list{margin:0;padding-left:1.1rem}.network-icon{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem 1rem;list-style:none;margin:0;padding:0}.skills-content{display:flex;align-items:center;gap:.45rem;margin-bottom:.55rem}.skills-icon{display:inline-flex;align-items:center;justify-content:center;width:.85rem;height:.85rem;margin-bottom:0;flex-shrink:0}.skills-icon .resume-icon,.skills-icon .resume-icon-img{width:.85rem;height:.85rem;font-size:.65rem}.skills-name{line-height:1.35}.w-100{width:100%}.avatar-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;width:150px;height:150px;margin-left:auto;margin-right:auto;overflow:visible}.avatar-frame{width:100%;height:100%;border-radius:9999px;overflow:hidden;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center}.avatar{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.avatar-emoji{position:absolute;right:0;bottom:0;z-index:2;width:40px;height:40px;line-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 6px rgba(15,23,42,.18);line-height:1;font-size:1.05rem}#section-resume-biography #profile{margin-left:auto!important;margin-right:auto!important}#section-resume-biography .bio-text{margin-left:auto;margin-right:auto}:root:not([data-theme=dark]) #section-resume-biography #profile,:root:not([data-theme=dark]) #section-resume-biography #profile h1,:root:not([data-theme=dark]) #section-resume-biography #profile h2,:root:not([data-theme=dark]) #section-resume-biography #profile h3,:root:not([data-theme=dark]) #section-resume-biography #profile p,:root:not([data-theme=dark]) #section-resume-biography #profile li,:root:not([data-theme=dark]) #section-resume-biography #profile span,:root:not([data-theme=dark]) #section-resume-biography #profile div{color:var(--text)!important}.resume-timeline-marker{position:absolute;left:-2.05rem;top:.25rem;z-index:1;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;background:#dbeafe;box-shadow:0 0 0 8px var(--bg)}:root[data-theme=dark] .resume-timeline-marker{background:#1e3a5f;box-shadow:0 0 0 8px var(--bg)}.resume-timeline-marker .resume-icon-img{background:0 0;border-radius:9999px;width:.95rem;height:.95rem}:root[data-theme=dark] .resume-timeline-marker .resume-icon-img{filter:brightness(0)invert(1);opacity:1}.blox-resume-experience .resume-timeline-item{position:relative}.resume-timeline-meta,.resume-timeline-meta a,.profile-org-footnotes,.profile-org-footnote,.profile-org-footnote a{color:#475569}.resume-timeline-body{color:#64748b}.skills-name-themed{color:#334155}:root[data-theme=dark] .resume-timeline-meta,:root[data-theme=dark] .resume-timeline-meta a,:root[data-theme=dark] .profile-org-footnotes,:root[data-theme=dark] .profile-org-footnote,:root[data-theme=dark] .profile-org-footnote a,:root[data-theme=dark] .resume-timeline-body,:root[data-theme=dark] .skills-name-themed{color:#cbd5e1}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .resume-timeline-meta,:root:not([data-theme=light]) .resume-timeline-meta a,:root:not([data-theme=light]) .profile-org-footnotes,:root:not([data-theme=light]) .profile-org-footnote,:root:not([data-theme=light]) .profile-org-footnote a,:root:not([data-theme=light]) .resume-timeline-body,:root:not([data-theme=light]) .skills-name-themed{color:#cbd5e1}}.resume-timeline-body.prose-themed ul{list-style:disc;padding-left:1.25rem;margin:.5rem 0}.resume-timeline-body.prose-themed ol{list-style:decimal;padding-left:1.25rem;margin:.5rem 0}.resume-timeline-body.prose-themed li{display:list-item;margin:.25rem 0}:root[data-theme=dark] .resume-timeline-body.prose-themed,:root[data-theme=dark] .article-body.prose-themed{color:#cbd5e1}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .resume-timeline-body.prose-themed,:root:not([data-theme=light]) .article-body.prose-themed{color:#cbd5e1}}.resume-section-heading{margin:0 0 1.5rem;font-size:1.875rem;font-weight:700;color:var(--text)}.resume-timeline-list{list-style:none;margin:0;padding:0;position:relative;border-inline-start:1px solid var(--border)}.resume-timeline-item{margin-bottom:2.5rem;margin-inline-start:1.5rem}.resume-timeline-item:last-child{margin-bottom:0}.resume-timeline-title{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:var(--text)}.resume-timeline-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.875rem;font-weight:400;line-height:1.25;margin-bottom:.75rem}.resume-timeline-time{flex-shrink:0}.resume-section-inner{max-width:800px;margin-left:auto;margin-right:auto;width:100%}.section-pad-y{padding:2rem 0}.section-pad-y-sm{padding:2rem 0}.resume-page-px{padding-left:1.5rem;padding-right:1.5rem}@media(min-width:640px){.resume-page-px{padding-left:0;padding-right:0}}.resume-section-stack{display:flex;flex-direction:column;align-items:left;width:100%}.profile-inner{display:flex;flex-direction:column;align-items:center;max-width:800px;margin-left:auto;margin-right:auto;width:100%}#profile{margin:0 1.5rem}.profile-name-stack{display:flex;flex-direction:column;align-items:stretch;align-self:stretch;width:100%;margin:1.5rem 0 0}.profile-name-block{display:grid;grid-template-columns:minmax(0,1fr)auto minmax(0,1fr);align-items:end;column-gap:.35rem;width:100%}.profile-name-leading{grid-column:1;min-width:0}.profile-name-trailing{grid-column:3;justify-self:start;align-self:end;min-width:0}.profile-name{font-size:1.875rem;font-weight:700;margin:1.5rem 0 .5rem;color:var(--text)}.profile-name-block .profile-name{grid-column:2;justify-self:center;margin:0;text-align:center;max-width:100%}.profile-org-footnotes{display:inline-flex;flex-direction:row;align-items:flex-end;justify-content:flex-start;gap:.35rem;flex-wrap:wrap;margin:0;line-height:1}.profile-org-footnotes:not(:has(.profile-org-footnote)){display:none}.profile-org-footnote{display:inline-flex;align-items:flex-end;line-height:0}.profile-org-footnote-link,.profile-org-footnote-icon{display:inline-flex;align-items:flex-end;justify-content:center;text-decoration:none;color:inherit}.profile-org-footnote-name{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;font-size:.4875rem;font-weight:500;letter-spacing:-.02em;line-height:1.25;padding-bottom:.75rem;max-width:14rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-org-footnote-link.profile-org-footnote-name{display:inline-block}.profile-org-footnote-link:hover{opacity:.82}.profile-org-footnote-link.profile-org-footnote-name:hover{opacity:1;text-decoration:underline}.profile-org-footnote-link .resume-icon-img,.profile-org-footnote-icon .resume-icon-img{width:1.15rem;height:1.15rem;flex-shrink:0}.profile-role{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text)}.network-icon-themed a{color:var(--text)}.network-icon-link{display:inline-flex;height:1.5rem;align-items:center}.bio-wrap{width:100%;padding-top:.5rem;display:flex;justify-content:center}.bio-text{text-align:justify;font-size:.8em;width:100%}.avatar-wrapper-spaced{margin-top:2.5rem}.skills-columns{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:768px){.skills-columns{grid-template-columns:repeat(4,minmax(0,1fr))}}.skills-group-title{margin-bottom:1.25rem;font-size:1.25rem;font-weight:700;color:var(--text)}.resume-skills-head{padding-top:0}.resume-section-heading-spacer{display:none}.recent-posts-heading{margin:0 0 1rem;font-size:1.5rem;font-weight:700;color:var(--text)}.recent-posts-list{margin:0;padding-left:1.25rem}.blog-list-page,.blog-article{max-width:800px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}.blog-page-header{margin-bottom:2rem}.blog-page-title{margin:0;font-size:1.875rem;font-weight:700;color:var(--text)}.blog-list-empty-hint{margin:0;max-width:36rem;font-size:1rem;line-height:1.65;color:var(--text-soft);font-style:italic}.blog-timeline-list{position:relative;list-style:none;margin:0;padding:0;border:0}.blog-timeline-item{position:relative;padding-inline-start:1.5rem}.blog-timeline-dot{position:absolute;inset-inline-start:-.35rem;top:.5rem;width:.75rem;height:.75rem;border-radius:9999px;border:2px solid var(--bg);background:#9ca3af;box-sizing:border-box}:root[data-theme=dark] .blog-timeline-dot{background:#6b7280}.blog-timeline-year{font-size:1.125rem;font-weight:600;color:var(--text)}.blog-card{margin-bottom:1.5rem}.blog-card-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.blog-card-link{color:var(--link);text-decoration:none}.blog-card-link:hover{text-decoration:underline}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 .75rem;padding:0}.blog-load-more-wrap{margin-top:.5rem;text-align:center}.blog-load-more-button{display:inline-flex;align-items:center;border-radius:.375rem;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit}.blog-load-more-button:hover{filter:brightness(.97)}.blog-post-header{margin-bottom:2rem}.blog-post-title{margin:0 0 .75rem;font-size:1.875rem;font-weight:700;line-height:1.25;color:var(--text)}.blog-post-meta{margin-bottom:.75rem;font-size:.875rem;color:var(--text-soft)}.blog-layout{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:1024px){.blog-layout--with-toc{grid-template-columns:repeat(12,minmax(0,1fr))}.blog-layout--with-toc .blog-toc-col{order:2;grid-column:span 4/span 4}.blog-layout--with-toc .blog-content-col{order:1;grid-column:span 8/span 8;min-width:0}.blog-layout--with-toc .toc-aside{position:sticky;top:6rem}}.toc-title{margin:0 0 .75rem;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.toc-nav{font-size:.875rem}.article-body{min-width:0}.prose-themed{font-size:1rem;line-height:1.65;max-width:100%}.prose-themed :where(p){margin:.75rem 0}.prose-themed :where(h2){font-size:1.35em;margin:1.75rem 0 .5rem;line-height:1.25;color:var(--text)}.prose-themed :where(h3){font-size:1.15em;margin:1.5rem 0 .5rem;color:var(--text)}.prose-themed :where(h4){font-size:1.2em;margin:1.25rem 0 .5rem}.prose-themed :where(h5){font-size:1em;font-weight:600;margin:1rem 0 .35rem}.prose-themed :where(ul,ol){margin:.5rem 0;padding-left:1.25rem}.prose-themed :where(li){margin:.25rem 0}.prose-themed :where(code):not(:where(pre code)){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-weight:400;background:light-dark(#edeef3,#353841);padding:.125rem .375rem;border-radius:.25rem;font-size:.9em}.prose-themed :where(pre){overflow-x:auto;padding:.75rem 1rem;border-radius:.5rem;background:var(--surface);border:1px solid var(--border)}.prose-themed :where(blockquote){margin:1rem 0;padding-left:1rem;border-left:3px solid var(--border);color:var(--text-soft)}.prose-sm{font-size:.875rem;line-height:1.6}.about-values{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:1.25rem 0;text-align:center}@media(max-width:640px){.about-values{grid-template-columns:1fr}}.about-value-item{text-align:center}.about-value-title{font-size:1.2em;margin-top:1.25rem;margin-bottom:.75rem;font-weight:700;color:var(--text)}.about-value-item:first-child .about-value-title{margin-top:0}.about-value-body{font-size:.95em;color:var(--text-soft)}.about-value-body p{margin:0 0 .75rem}.about-value-body p:last-child{margin-bottom:0}.callout{margin:1rem 0;padding:1rem 1.15rem;border-radius:.65rem;border:1px solid var(--border);background:var(--surface)}.callout-title{font-weight:600;margin-bottom:.4rem;color:var(--text)}.callout-content{color:var(--text-soft)}.callout-note{border-inline-start:4px solid var(--link)}.spoiler{margin:1rem 0;border:1px solid var(--border);border-radius:.5rem;padding:.35rem .75rem;background:var(--surface)}.spoiler summary{cursor:pointer;font-weight:600;color:var(--text)}.spoiler-content{margin-top:.5rem;color:var(--text-soft)}.hb-sidebar-container{display:none}#search{background-color:var(--surface)}.skills-icon{margin-bottom:-.15em}@media(max-width:768px){.blog-timeline-group{grid-template-columns:1fr;gap:.75rem}.blog-timeline::before{left:0}.blog-timeline-group-title{margin-bottom:.15rem;text-align:left;justify-self:start}.resume-hero{flex-direction:column}.resume-contact{text-align:left}.resume-columns{grid-template-columns:1fr}}