.project-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;display:grid}@media (width<=400px){.project-grid{grid-template-columns:1fr}}.project-card__img{object-fit:cover;border-bottom:1px solid var(--c-border);background:var(--c-surface);width:100%;height:220px}.project-card__body{flex-direction:column;flex-grow:1;gap:14px;padding:24px;display:flex}.project-card__title{font-size:20px;font-weight:600}.project-card__links{flex-wrap:wrap;gap:20px;margin-top:auto;padding-top:4px;display:flex}.project-card__links a{align-items:center;gap:6px;padding:10px 0;font-size:14px;font-weight:600;display:inline-flex}.project-card__links a.secondary{color:var(--c-text-2)}.project-card__placeholder{border-bottom:1px solid var(--c-border);background:var(--c-primary-tint);justify-content:center;align-items:center;height:220px;padding:24px;display:flex}.featured{flex-wrap:wrap;display:flex}.featured__visual{background:var(--c-primary-tint);border-right:1px solid var(--c-border);flex:480px;justify-content:center;align-items:center;min-width:0;min-height:340px;padding:32px;display:flex}.featured__body{flex-direction:column;flex:420px;gap:20px;min-width:0;padding:40px;display:flex}@media (width<=640px){.featured__visual{border-right:0;border-bottom:1px solid var(--c-border);flex-basis:100%;min-height:220px;padding:20px}.featured__body{flex-basis:100%;padding:20px 16px}}.stack-diagram{flex-direction:column;gap:12px;width:100%;max-width:440px;display:flex}.stack-diagram__row{gap:12px;display:flex}.stack-diagram__box{border:1px solid var(--c-border);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--c-text-2);text-align:center;background:#fff;flex:1;padding:12px;font-size:12px}.stack-diagram__box--core{background:var(--c-primary);border-color:var(--c-primary);color:#fff;padding:16px}.page-hero{background:var(--c-surface);border-bottom:1px solid var(--c-border)}.page-hero__inner{flex-direction:column;gap:20px;padding-top:80px;padding-bottom:64px;display:flex}.page-hero__title{letter-spacing:-.025em;max-width:880px;font-size:52px;font-weight:600;line-height:1.1}.page-hero__lede{color:var(--c-text-2);max-width:760px;font-size:19px;line-height:1.6}@media (width<=640px){.page-hero__inner{padding-top:40px;padding-bottom:40px}.page-hero__title{font-size:34px}.page-hero__lede{font-size:16px}}.crumbs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crumbs a{color:var(--c-text-2);align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.facts{border-bottom:1px solid var(--c-border)}.facts__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.facts__cell{border-left:1px solid var(--c-border);flex-direction:column;gap:6px;padding:24px;display:flex}.facts__cell:last-child{border-right:1px solid var(--c-border)}@media (width<=640px){.facts__cell{border-left:0;border-bottom:1px solid var(--c-border);padding:16px 0;border-right:0!important}}.cs-section{flex-wrap:wrap;gap:48px;display:flex}.cs-section__head{flex-direction:column;flex:260px;gap:12px;display:flex}.cs-section__body{min-width:0;color:var(--c-text-2);flex-direction:column;flex:999 560px;gap:16px;font-size:17px;line-height:1.7;display:flex}.cs-h2{color:var(--c-text);font-size:28px;font-weight:600;line-height:1.25}.arch{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);flex-direction:column;align-items:center;gap:16px;padding:40px 24px;display:flex}.arch__tier{border-radius:var(--r-md);border:1px solid var(--c-border);background:#fff;flex-direction:column;gap:10px;width:100%;max-width:760px;padding:16px 20px;display:flex}.arch__tier--core{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.arch__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-2);font-size:11px}.arch__tier--core .arch__label{color:#fff}.arch__items{flex-wrap:wrap;gap:8px;display:flex}.arch__item{border:1px solid var(--c-border);border-radius:var(--r-sm);padding:6px 12px;font-size:14px;font-weight:500}.arch__tier--core .arch__item{border-color:var(--c-accent-border)}.arch__arrow{color:var(--c-text-4)}.features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.feature{border-radius:var(--r-md);flex-direction:column;gap:12px;padding:28px;display:flex}.next-card{background:var(--c-primary-tint);color:var(--c-text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:40px;display:flex}.next-card:hover{color:var(--c-text)}.round-arrow{background:var(--c-primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.hero{background:var(--c-surface);border-bottom:1px solid var(--c-border)}.hero__inner{flex-wrap:wrap;align-items:center;gap:56px;padding-top:96px;padding-bottom:88px;display:flex}.hero__copy{flex-direction:column;flex:520px;gap:24px;min-width:0;display:flex}.hero__meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero__kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-2);font-size:12px;font-weight:500}.hero__title{letter-spacing:-.025em;font-size:60px;font-weight:600;line-height:1.08}.hero__summary{color:var(--c-text-2);max-width:580px;font-size:18px;line-height:1.6}.hero__actions{flex-wrap:wrap;gap:12px;padding-top:8px;display:flex}.hero__socials{gap:8px;display:flex}.hero__side{flex-direction:column;flex:420px;gap:16px;min-width:0;display:flex}.id-card{border:1px solid var(--c-border);border-radius:var(--r-lg);background:#fff;align-items:center;gap:16px;padding:16px;display:flex}.id-card img{object-fit:cover;background:var(--c-primary-light);border-radius:999px;width:72px;height:72px}.code-card{border:1px solid var(--c-border);border-radius:var(--r-lg);background:#fff;overflow:hidden}.code-card__bar{background:var(--c-surface);border-bottom:1px solid var(--c-border);font-family:var(--font-mono);color:var(--c-text-2);justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;display:flex}.code-card pre{font-family:var(--font-mono);color:var(--c-text-2);white-space:pre-wrap;margin:0;padding:20px;font-size:13px;line-height:1.75;overflow-x:auto}.code-card .k{color:var(--c-primary)}.code-card .s{color:var(--c-success)}@media (width<=640px){.hero__inner{gap:32px;padding-top:48px;padding-bottom:48px}.hero__title{font-size:38px}.hero__summary{font-size:16px}.hero__actions .btn{flex:100%}}.metrics{border-bottom:1px solid var(--c-border)}.metrics__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.metric{border-left:1px solid var(--c-border);flex-direction:column;gap:6px;padding:32px 24px;display:flex}.metric:last-child{border-right:1px solid var(--c-border)}.metric__value{letter-spacing:-.02em;font-size:40px;font-weight:600;line-height:1.1}.metric__label{color:var(--c-text-2);font-size:14px}@media (width<=640px){.metrics__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{border-left:0;border-bottom:1px solid var(--c-border);padding:20px 16px}.metric:nth-child(odd){border-right:1px solid var(--c-border)}.metric:last-child{border-right:0}.metric__value{font-size:28px}.metric__label{font-size:13px}}.jobs{border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden}.job{flex-wrap:wrap;display:flex}.job+.job{border-top:1px solid var(--c-border)}.job__meta{background:var(--c-surface);flex-direction:column;flex:260px;align-items:flex-start;gap:8px;padding:32px;display:flex}.job__period{font-family:var(--font-mono);color:var(--c-text-2);font-size:13px}.job__company{font-size:20px;font-weight:600}.job__body{flex-direction:column;flex:999 560px;gap:20px;min-width:0;padding:32px;display:flex}.job__role{font-size:20px;font-weight:600}.job__list{color:var(--c-text-2);flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}@media (width<=640px){.job__meta,.job__body{padding:20px 16px}}.awards{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}@media (width<=400px){.awards{grid-template-columns:1fr}}.award{flex-direction:column;gap:14px;padding:32px;display:flex}.award__top{justify-content:space-between;align-items:center;display:flex}.icon-tile{border-radius:var(--r-md);background:var(--c-primary-tint);width:44px;height:44px;color:var(--c-primary);justify-content:center;align-items:center;display:flex}.skills{border-top:1px solid var(--c-border);border-left:1px solid var(--c-border);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}@media (width<=400px){.skills{grid-template-columns:1fr}}.skills__cell{border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);flex-direction:column;gap:16px;padding:28px;display:flex}.skills__cell--edu{background:var(--c-primary-tint)}.posts-row{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}@media (width<=400px){.posts-row{grid-template-columns:1fr}}.contact{background:var(--c-primary-deep);border-radius:var(--r-lg);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;padding:72px 56px;display:flex}.contact__copy{flex-direction:column;flex:480px;gap:16px;min-width:0;display:flex}.contact__title{letter-spacing:-.02em;color:#fff;font-size:44px;font-weight:600;line-height:1.15}.contact__actions{flex-direction:column;flex:0 340px;gap:12px;display:flex}.contact__email{height:52px;color:var(--c-primary-deep);background:#fff}.contact__email:hover{background:var(--c-primary-light);color:var(--c-primary-deep)}.contact__alt{border:1px solid var(--c-primary);color:#fff;flex:1}.contact__alt:hover{color:#fff;background:#ffffff14}@media (width<=640px){.contact{padding:32px 20px}.contact__title{font-size:28px}.contact__actions{flex:100%}.contact__email{font-size:14px}}.home-projects{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:24px;display:grid}.award__link{align-items:center;gap:6px;margin-top:auto;padding:8px 0 0;font-size:14px;font-weight:600;display:inline-flex}.award{height:100%}.code-lines{font-family:var(--font-mono);color:var(--c-text-2);padding:20px;font-size:13px;line-height:1.75}.code-line{white-space:pre-wrap;overflow-wrap:anywhere}@media (width<=640px){.code-lines{padding:16px;font-size:12px}}.blog-hero{background:var(--c-surface);border-bottom:1px solid var(--c-border)}.blog-hero__inner{flex-direction:column;gap:20px;padding-top:72px;display:flex}.blog-hero__title{letter-spacing:-.025em;max-width:820px;font-size:52px;font-weight:600;line-height:1.1}.blog-hero__bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-top:24px;display:flex}@media (width<=640px){.blog-hero__inner{padding-top:40px}.blog-hero__title{font-size:32px}}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{height:44px;color:var(--c-text-2);cursor:pointer;background:0 0;border:0;padding:0 14px;font-size:14px;font-weight:500}.tab[aria-selected=true]{color:var(--c-primary);box-shadow:inset 0 -2px 0 var(--c-primary);font-weight:600}.tab__count{color:var(--c-text-3);margin-left:4px;font-weight:500}.search{border:1px solid var(--c-border);border-radius:var(--r-sm);height:40px;color:var(--c-text-3);background:#fff;align-items:center;gap:8px;width:280px;max-width:100%;margin-bottom:4px;padding:0 12px;display:flex}.search:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 1px var(--c-primary)}.search input{font:inherit;color:var(--c-text);background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14px}.blog-layout{flex-wrap:wrap;gap:56px;padding-top:56px;display:flex}.blog-main{flex-direction:column;flex:999 620px;gap:40px;min-width:0;display:flex}.blog-aside{flex-direction:column;flex:280px;gap:32px;min-width:0;display:flex}.feature-post{color:var(--c-text);flex-wrap:wrap;display:flex}.feature-post:hover{color:var(--c-text);border-color:var(--c-accent-border)}.feature-post__cover{background:var(--c-primary-deep);min-height:260px;color:var(--c-accent-border);font-family:var(--font-mono);flex:360px;justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.feature-post__cover img{object-fit:cover;width:100%;height:100%}.feature-post__body{flex-direction:column;flex:340px;gap:14px;min-width:0;padding:32px;display:flex}@media (width<=640px){.feature-post__body{padding:20px 16px}.feature-post__cover{min-height:180px}}.post-row{border-bottom:1px solid var(--c-border);gap:24px;padding:28px 0;display:flex}.post-row:last-child{border-bottom:0}.post-row__body{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.post-row__title{font-size:22px;font-weight:600;line-height:1.3}.post-row__title a{color:var(--c-text)}.post-row__title a:hover{color:var(--c-primary)}.post-row__thumb{border-radius:var(--r-md);object-fit:cover;border:1px solid var(--c-border);background:var(--c-surface);flex-shrink:0;width:160px;height:108px}@media (width<=640px){.post-row__thumb{width:88px;height:88px}.post-row__title{font-size:18px}}.post-meta{color:var(--c-text-2);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.article{flex-direction:column;gap:28px;max-width:720px;margin:0 auto;padding:64px 24px 0;display:flex}@media (width<=640px){.article{gap:20px;padding:32px 16px 0}}.article__title{letter-spacing:-.02em;font-size:44px;font-weight:600;line-height:1.15}.article__sub{color:var(--c-text-2);font-size:20px;line-height:1.55}@media (width<=640px){.article__title{font-size:30px}.article__sub{font-size:17px}}.byline{border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.byline img{object-fit:cover;border-radius:999px;width:44px;height:44px}.share-row{gap:8px;display:flex}.article__cover{object-fit:cover;border-radius:var(--r-lg);width:100%;max-height:440px}.prose{color:var(--c-text);overflow-wrap:break-word;font-size:19px;line-height:1.75}.prose>*+*{margin-top:22px}.prose p{margin:0}.prose h2{letter-spacing:-.01em;margin-top:40px;font-size:28px;font-weight:600;line-height:1.3}.prose h3{margin-top:32px;font-size:22px;font-weight:600;line-height:1.35}.prose a{text-underline-offset:3px;text-decoration:underline}.prose ul,.prose ol{margin-bottom:0;padding-left:24px}.prose li+li{margin-top:6px}.prose li p{margin:0}.prose blockquote{box-shadow:inset 3px 0 0 var(--c-primary);color:var(--c-text-2);margin:0;padding:4px 0 4px 20px;font-size:21px}.prose code{font-family:var(--font-mono);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:2px 6px;font-size:.85em}.prose pre{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:0;padding:20px;font-size:14px;line-height:1.7;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose img{border-radius:var(--r-md);margin-left:auto;margin-right:auto}.prose hr{border:0;border-top:1px solid var(--c-border);margin:40px 0}@media (width<=640px){.prose{font-size:17px}.prose h2{font-size:23px}}.share-card{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-primary-tint);flex-direction:column;gap:16px;padding:28px;display:flex}.share-link{gap:8px;display:flex}.share-link input{min-width:0;height:44px;font-family:var(--font-mono);flex:1;font-size:13px}.share-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.share-grid a{border:1px solid var(--c-border);border-radius:var(--r-md);height:72px;color:var(--c-text);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.share-grid a:hover{border-color:var(--c-primary);color:var(--c-text)}@media (width<=420px){.share-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.subscribe{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-primary-tint);flex-direction:column;gap:12px;padding:24px;display:flex}.prose pre{white-space:pre;tab-size:2}.prose pre code{white-space:inherit}.code-block{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);overflow:hidden}.prose>.code-block{margin-top:22px}.code-block pre{border:0!important;border-radius:0!important;margin:0!important}.code-block__bar{border-bottom:1px solid var(--c-border);font-family:var(--font-mono);color:var(--c-text-2);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px 6px 16px;font-size:12px;font-weight:500;display:flex}.code-block__copy{border:1px solid var(--c-border);border-radius:var(--r-sm);height:30px;color:var(--c-text-2);cursor:pointer;background:#fff;padding:0 10px;font-size:12px;font-weight:600}.code-block__copy:hover{color:var(--c-text);background:var(--c-surface)}.hljs-keyword,.hljs-selector-tag,.hljs-doctag{color:#5d50be;font-weight:500}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-template-tag{color:#007a52}.hljs-number,.hljs-literal,.hljs-symbol,.hljs-bullet{color:#a31b00}.hljs-title,.hljs-title.function_,.hljs-section{color:#0469e3}.hljs-title.class_,.hljs-type,.hljs-built_in,.hljs-class .hljs-title{color:#3e3871;font-weight:500}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-params,.hljs-property{color:#8a5a00}.hljs-comment,.hljs-quote{color:#647696;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword{color:#9b2fd8}.hljs-tag,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:#0469e3}.hljs-deletion{color:#a31b00}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.folder-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:16px;display:grid}.folder-card{gap:8px;padding:20px}.folder-card__title{font-size:17px;font-weight:600}.folder-card__desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.folder-card__count{color:var(--c-primary);align-items:center;gap:6px;margin-top:auto;padding-top:4px;font-size:13px;font-weight:600;display:inline-flex}.folder-chip{color:var(--c-primary);border-color:var(--c-accent-border);background:var(--c-primary-tint);gap:4px}.folder-chip:hover{border-color:var(--c-primary)}.post-row__index{font-family:var(--font-mono);color:var(--c-text-3);min-width:24px;padding-top:4px;font-size:14px}.folder-nav{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;display:grid}.folder-nav a{color:var(--c-text);flex-direction:column;gap:4px;padding:16px 20px;display:flex}.folder-nav a:hover{color:var(--c-text)}.folder-nav__label{color:var(--c-text-2);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.folder-nav__title{font-weight:600;line-height:1.4}
