.bl-main{padding-bottom:var(--step-7)}.bl-bar{gap:var(--step-3);align-items:center;justify-content:space-between;margin-bottom:var(--step-5)}.bl-bar,.bl-chips{display:flex;flex-wrap:wrap}.bl-chips{row-gap:14px;column-gap:var(--step-2)}.bl-chips button{position:relative;height:40px;padding:0 var(--step-4);border-radius:999px;border:1px solid var(--line-hi);background:var(--surface);color:var(--fg-2);font:500 14px var(--font-display);cursor:pointer}.bl-chips button:after{content:"";position:absolute;top:-6px;bottom:-6px;left:0;right:0}.bl-chips button:hover{background:var(--raised);color:var(--fg)}.bl-chips button[aria-pressed=true]{background:var(--putty);border-color:var(--putty);color:var(--on-putty)}.bl-chips button:focus-visible,.bl-search input:focus-visible{outline:2px solid var(--putty);outline-offset:2px}.bl-tools{display:flex;gap:var(--step-2);align-items:center}.bl-search{position:relative}.bl-search svg{position:absolute;left:12px;top:50%;width:16px;height:16px;margin-top:-8px;color:var(--muted);pointer-events:none}.bl-search input{width:260px;height:var(--control-h);padding:0 var(--step-3) 0 38px;border-radius:10px;border:1px solid var(--line-hi);background:var(--surface);color:var(--fg);font:500 14px var(--font-display)}.bl-search input::placeholder{color:var(--muted)}.bl-tools .cv-btn svg{width:15px;height:15px}@media (max-width:640px){.bl-tools{width:100%}.bl-search{flex:1 1}.bl-search input{width:100%}}.bl-more{display:flex;justify-content:center;margin-top:var(--step-5)}.bl-none{padding:var(--step-6) 0;text-align:center;color:var(--muted)}.bl-card,.bl-feat{color:inherit;text-decoration:none;border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .2s,transform .2s}.bl-card{display:flex;flex-direction:column;border-radius:18px;min-width:0}.bl-card:hover,.bl-feat:hover{border-color:var(--line-hi)}.bl-card:hover{transform:translateY(-3px)}.bl-card:focus-visible,.bl-feat:focus-visible{outline:2px solid var(--putty);outline-offset:3px}.bl-body{display:flex;flex-direction:column;gap:var(--step-3);padding:var(--step-4);flex:1 1;min-width:0}.bl-card h3{margin:0;font-size:var(--fs-card-sm);line-height:1.3;font-weight:650;letter-spacing:var(--track-h);color:var(--fg);text-wrap:pretty}.bl-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--step-2)}.bl-cat{font:600 13px/1 var(--font-display);padding:6px 10px;border-radius:999px;color:var(--fg);background:var(--raised);border:1px solid var(--line-hi)}.bl-min{display:flex;align-items:center;gap:6px;font:500 13px var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}.bl-min svg{width:15px;height:15px}.bl-by{display:flex;align-items:center;gap:var(--step-3);margin-top:auto;padding-top:var(--step-2)}.bl-by .cv-av{width:36px;height:36px}.bl-by span{display:flex;flex-direction:column;font-size:14px;line-height:1.3}.bl-by b{font-weight:500;color:var(--fg)}.bl-by time{font-size:13px;color:var(--muted)}.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--step-4);gap:var(--step-4)}@media (max-width:980px){.bl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.bl-grid{grid-template-columns:1fr}}.bl-feat{display:grid;grid-template-columns:1.3fr 1fr;border-radius:22px;margin-bottom:var(--step-4)}.bl-feat .bl-cv{aspect-ratio:auto;min-height:380px;border-bottom:0;border-right:1px solid var(--line)}.bl-feat .bl-body{padding:var(--step-5);justify-content:center;gap:var(--step-4)}.bl-feat h2{margin:0;color:var(--fg);font-size:clamp(26px,2.6vw,34px);font-weight:650;line-height:1.15;letter-spacing:var(--track-h);text-wrap:balance}.bl-feat p{margin:0;font-size:var(--fs-body-lg);line-height:1.55;color:var(--fg-2)}.bl-feat .bl-by{margin-top:0;padding-top:0}.bl-read{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--putty);text-decoration-color:var(--putty);text-underline-offset:5px}.bl-read svg{width:16px;height:16px}@media (max-width:860px){.bl-feat{grid-template-columns:1fr}.bl-feat .bl-cv{min-height:0;aspect-ratio:16/9;border-right:0;border-bottom:1px solid var(--line)}.bl-feat .bl-body{padding:var(--step-4)}}.bl-cv{position:relative;aspect-ratio:16/9;overflow:hidden;display:grid;place-items:center;background:color-mix(in oklch,var(--bg) 70%,var(--surface));border-bottom:1px solid var(--line);--cv-glow:var(--oxblood)}.bl-cv[data-cat=Engineering]{--cv-glow:#1b3e69;--cf-a:#3d73b6;--cf-b:#5894e0}.bl-cv[data-cat=Outreach]{--cv-glow:#0b4834;--cf-a:#288463;--cf-b:#44a781}.bl-cv[data-cat=Research]{--cv-glow:#413265;--cf-a:#7761b0;--cf-b:#9881d9}.bl-cv>.cv-glow{position:absolute;inset:0;background:radial-gradient(75% 85% at 50% 100%,color-mix(in oklch,var(--cv-glow) 80%,transparent),transparent 72%);pointer-events:none}.bl-cv>.cv-cf{opacity:.85}.bl-logos{position:relative;display:flex;align-items:center;gap:var(--step-3)}.bl-pair{display:contents}.bl-logos .cv-ilogo{--s:60px;box-shadow:0 18px 40px -14px rgba(0,0,0,.7)}.bl-logos .cv-ilogo b{font:700 calc(var(--s) * .42) var(--font-display);color:var(--on-putty)}.bl-logos .cv-ilogo.cv{background:var(--raised);border-color:var(--line-hi)}.bl-logos .cv-ilogo.cv img{width:62%;height:62%}.bl-logos.n3 .cv-ilogo,.bl-logos.n4 .cv-ilogo{--s:50px}.bl-cv.lg .bl-logos .cv-ilogo{--s:92px}.bl-cv.lg .bl-logos.n3 .cv-ilogo,.bl-cv.lg .bl-logos.n4 .cv-ilogo{--s:72px}.bl-cv.xl .bl-logos .cv-ilogo{--s:104px}.bl-vs{font:600 13px var(--font-display);color:var(--fg-2);padding:4px 10px;border-radius:999px;background:color-mix(in oklab,var(--bg) 55%,transparent);border:1px solid var(--line-hi);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bl-ico,.bl-vs{position:relative}.bl-ico{--hue:var(--cf-b);width:68px;height:68px;border-radius:18px;box-shadow:0 18px 40px -14px rgba(0,0,0,.7)}.bl-ico svg{width:30px;height:30px}.bl-cv.lg .bl-ico,.bl-cv.xl .bl-ico{width:96px;height:96px;border-radius:24px}.bl-cv.lg .bl-ico svg,.bl-cv.xl .bl-ico svg{width:42px;height:42px}.bp-head{position:relative;max-width:860px;padding:88px 0 var(--step-5)}.bp-crumb{font-size:14px;color:var(--fg-2);margin-bottom:var(--step-5)}.bp-crumb li,.bp-crumb ol{display:flex;align-items:center;gap:6px;min-width:0;margin:0;padding:0;list-style:none}.bp-crumb a{color:var(--fg-2);text-decoration:none}.bp-crumb a:hover{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--putty);text-decoration-color:var(--putty)}.bp-crumb svg{width:14px;height:14px;flex:none}.bp-crumb span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-head .bl-meta{justify-content:flex-start;gap:var(--step-3);margin-bottom:var(--step-4)}.bp-head h1{margin:0;max-width:none;color:var(--fg);font-size:var(--fs-page);font-weight:650;line-height:1.08;letter-spacing:var(--track-h);text-wrap:balance}.bp-dek{margin:var(--step-4) 0 0;font-size:var(--fs-lead);line-height:1.55;color:var(--fg-2);max-width:40em}.bp-byrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--step-4);margin-top:var(--step-5)}.bp-byrow .bl-by{margin:0;padding:0}.bp-byrow .bl-by .cv-av{width:44px;height:44px}.bp-byrow .bl-by a{color:var(--fg);text-decoration:none;font-weight:500}.bp-byrow .bl-by a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--putty);text-decoration-color:var(--putty)}.bp-ask{display:flex;flex-wrap:wrap;align-items:center;gap:var(--step-2);font-size:13px;color:var(--fg-2)}.bp-ask .cv-btn svg{width:15px;height:15px}.bp-cover .bl-cv{aspect-ratio:21/8;border:1px solid var(--line);border-radius:22px}.bp-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:var(--step-6);gap:var(--step-6);align-items:start;padding:var(--step-6) 0 var(--step-7)}.bp-side{position:-webkit-sticky;position:sticky;top:96px;display:grid;grid-gap:var(--step-4);gap:var(--step-4)}.bp-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:var(--step-4)}.bp-author{display:flex;align-items:center;gap:var(--step-3)}.bp-author .cv-av{width:48px;height:48px}.bp-author b{display:block;color:var(--fg);font-weight:600}.bp-author a,.bp-author span{font-size:13px;color:var(--fg-2)}.bp-author a{margin-left:auto;text-decoration:underline;-webkit-text-decoration-color:var(--putty);text-decoration-color:var(--putty);text-underline-offset:3px}.bp-toc>b{display:block;font-size:14px;color:var(--fg);margin-bottom:var(--step-3)}.bp-toc ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.bp-toc a{display:block;padding:6px 10px;border-radius:6px;font-size:13.5px;line-height:1.4;color:var(--fg-2);text-decoration:none;box-shadow:inset 2px 0 0 var(--line)}.bp-toc a:hover{color:var(--fg)}.bp-toc a[aria-current]{color:var(--fg);background:color-mix(in oklab,var(--line) 45%,transparent);box-shadow:inset 2px 0 0 var(--putty)}.bp-toc a:focus-visible{outline:2px solid var(--putty);outline-offset:2px}.bp-more{padding-bottom:var(--step-7)}.bp-more h2{margin:0 0 var(--step-5);color:var(--fg);font-size:clamp(28px,3vw,36px);line-height:1.1;font-weight:650;letter-spacing:var(--track-h)}@media (max-width:1040px){.bp-grid{grid-template-columns:minmax(0,1fr)}.bp-side{position:static;order:-1}.bp-toc{display:none}}@media (max-width:640px){.bp-cover .bl-cv{aspect-ratio:16/9}.bp-cover .bl-cv .cv-ilogo{--s:72px}}.bp-prose{max-width:720px;min-width:0;font-size:17px;line-height:1.7;color:var(--fg-2)}.bp-prose>*{margin:0}.bp-prose>*+*{margin-top:var(--step-4)}.blog-h1,.blog-h2,.blog-h3{color:var(--fg);text-wrap:balance;letter-spacing:var(--track-h)}.bp-prose>.blog-h2{margin-top:var(--step-6);font-size:clamp(24px,2.4vw,30px);line-height:1.2;font-weight:650}.bp-prose>.blog-h3{margin-top:var(--step-5);font-size:var(--fs-card-sm);line-height:1.3;font-weight:650}.blog-h1{font-size:30px;line-height:1.15}.bp-prose strong{color:var(--fg);font-weight:600}.blog-a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--putty);text-decoration-color:var(--putty);text-underline-offset:3px}.blog-a:hover{text-decoration-thickness:2px}.blog-a:focus-visible{outline:2px solid var(--putty);outline-offset:2px;border-radius:2px}.blog-lede{font-size:var(--fs-lead);line-height:1.6;color:var(--fg)}.blog-ol,.blog-ul{padding-left:1.2em;display:grid;grid-gap:var(--step-2);gap:var(--step-2)}.blog-li::marker{color:var(--putty)}.blog-code-inline{font:500 .88em var(--font-code);padding:.1em .35em;border-radius:5px;background:var(--raised);border:1px solid var(--line);color:var(--fg)}.blog-pre{overflow-x:auto}.blog-hr{border:0;border-top:1px solid var(--line)}.blog-img{max-width:100%;height:auto;border-radius:var(--radius-lg)}.blog-quote{padding:var(--step-4) var(--step-5);border:1px solid var(--line-hi);background:var(--surface);border-radius:var(--radius-lg);color:var(--fg)}.blog-quote p{margin:0}.blog-quote-src{display:block;margin-top:var(--step-2);font-size:14px;color:var(--muted)}.blog-quote-src a{color:var(--fg-2)}.bp-prose>.blog-tldr{padding:var(--step-4) var(--step-5) 0;border:1px solid var(--line-hi);border-bottom:0;border-radius:16px 16px 0 0;background:var(--raised);font-size:15px}.bp-prose>.blog-tldr+.blog-ul{margin-top:0;padding:var(--step-3) var(--step-5) var(--step-4) calc(var(--step-5) + 1.2em);border:1px solid var(--line-hi);border-top:0;border-radius:0 0 16px 16px;background:linear-gradient(180deg,var(--raised),var(--surface));font-size:16px;line-height:1.6}.bp-prose .badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;border:1px solid var(--line-hi);font:600 13px/1.5 var(--font-display);letter-spacing:0;text-transform:none;vertical-align:1px;white-space:nowrap}.bp-prose .b-doc{color:var(--sage-lift);background:color-mix(in oklab,var(--sage) 14%,transparent);border-color:color-mix(in oklab,var(--sage) 40%,transparent)}.bp-prose .b-obs{color:var(--fg-2);background:var(--raised)}.blog-tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.blog-tscroll:focus-visible{outline:2px solid var(--putty);outline-offset:2px}.blog-table{width:100%;min-width:560px;border-collapse:collapse;font-size:14.5px;line-height:1.5}.blog-table td,.blog-table th{padding:12px var(--step-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--line);font-family:var(--font-display);text-transform:none;letter-spacing:0;white-space:normal}.blog-table tr:last-child td,.blog-table tr:last-child th{border-bottom:0}.blog-table thead th{font-size:14.5px;font-weight:600;color:var(--fg);background:var(--raised)}.blog-table tbody th{font-weight:500;color:var(--fg)}.blog-vs{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--step-3);gap:var(--step-3)}.blog-vs-col{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.blog-vs-col.is-win{border-color:var(--putty)}.blog-vs-h{padding:12px 18px;border-bottom:1px solid var(--line);font:600 14px var(--font-display);color:var(--fg-2)}.blog-vs-col.is-win .blog-vs-h{color:var(--fg)}.blog-vs-col ul{list-style:none;margin:0;padding:4px 0}.blog-vs-col li{padding:9px 18px;font-size:14px;line-height:1.5;color:var(--fg-2);border-bottom:1px solid var(--line)}.blog-vs-col li:last-child{border-bottom:0}@media (max-width:640px){.blog-vs{grid-template-columns:1fr}.blog-vs-col.is-win{order:2}}.blog-code-card{border:1px solid var(--line-hi);border-radius:var(--radius-xl);background:var(--code-surface)}.blog-code-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--step-2);padding:8px var(--step-3);border-bottom:1px solid var(--line);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.blog-code-bar .lbl{font:500 13px var(--font-code);color:var(--muted)}.blog-code-card pre{margin:0;padding:var(--step-4);overflow-x:auto;font:500 14px/1.7 var(--font-code);color:var(--fg);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl)}.blog-code-card code{font:inherit;background:none;border:0;padding:0;color:inherit;white-space:pre}.bp-prose .c-com{color:var(--muted);font-style:normal}.bp-prose .c-cmd{color:var(--putty);font-weight:500}.bp-prose .c-flag{color:var(--sand)}.bp-prose .c-str{color:var(--sage)}.blog-code-bar .copy-btn{position:relative;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--step-2);border-radius:var(--radius-xs);border:1px solid var(--line-hi);background:var(--surface);color:var(--fg-2);font:500 13px var(--font-display);cursor:pointer;flex-shrink:0}.blog-code-bar .copy-btn:after{content:"";position:absolute;top:-12px;bottom:-12px;left:-2px;right:-2px}.blog-code-bar .copy-btn:hover{background:var(--raised);color:var(--fg)}.blog-code-bar .copy-btn:focus-visible{outline:2px solid var(--putty);outline-offset:2px}.blog-code-bar .copy-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}@media (prefers-reduced-motion:reduce){.bl-card,.bl-feat{transition:none}.bl-card:hover{transform:none}}