.section-shell_page__o5MSv{width:100%;max-width:var(--page-max-width);margin:0 auto;min-height:100vh;padding:32px 56px 80px}.section-shell_topBar__pNfiu{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0 24px;border-bottom:1px solid var(--faint);margin-bottom:32px;font-size:14px;color:var(--muted)}.section-shell_topBarLeft__99cIS{display:flex;align-items:center;gap:14px}.section-shell_topBarRight__AYgJ5{display:flex;align-items:center;gap:16px}.section-shell_backLink__svn13{border:1px solid var(--faint);border-radius:6px;padding:7px 12px;font-size:13.5px;color:var(--fg);transition:border-color .15s ease,background .15s ease}.section-shell_backLink__svn13:hover{border-color:var(--accent);background:var(--code-bg)}.section-shell_glyph__PxxRx{color:var(--accent)}.section-shell_name__nuQvU{color:var(--fg)}.section-shell_screenSuffix__luuHS{opacity:.5;margin-left:8px}.section-shell_topRole__1pXWm{color:var(--fg)}.section-shell_sectionTabs__LB3rz{display:flex;gap:4px;margin-bottom:36px;flex-wrap:wrap}.section-shell_sectionTabs__LB3rz a{font-size:13.5px;letter-spacing:.04em;padding:8px 14px;border-radius:6px;color:var(--muted);transition:color .15s,background .15s;display:inline-flex;align-items:center;gap:6px}.section-shell_activeTab__Xke4p,.section-shell_sectionTabs__LB3rz a:hover{color:var(--fg)!important;background:var(--code-bg)}.section-shell_idx__lBYWn{color:var(--accent);font-size:12.5px}.section-shell_sectionHead__ERxP_{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.section-shell_crumb__YIY1S{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:8px}.section-shell_meta__Tp5Nq{font-size:12px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.section-shell_sectionTitle__2LgPN{margin:6px 0 14px;font-size:var(--type-section-display);font-weight:500;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}.section-shell_accent__57HbU{color:var(--muted)}.section-shell_sectionBody__kWM1E{border-top:1px solid var(--faint);padding-top:28px}.section-shell_lead__TzZfs{max-width:none;font-size:var(--type-prose);color:var(--fg);line-height:var(--type-prose-line)}.section-shell_projectCard__d7F2R{border:1px solid var(--faint);border-radius:10px;padding:24px 26px;background:var(--code-bg)}.section-shell_projectTopbar__mfM8B{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;margin-bottom:16px;border-bottom:1px dashed var(--faint);color:var(--muted);font-size:13px}.section-shell_projectDots__rADmE{display:inline-flex;gap:5px;align-items:center;margin-right:10px}.section-shell_dot__MwNHZ{width:8px;height:8px;border-radius:50%;background:var(--muted);opacity:.7}.section-shell_accentDot__gLevx{background:var(--accent);opacity:1}.section-shell_projectFile__rvAjU{margin-left:8px}.section-shell_projectTitle__ttqAl{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}.section-shell_projectTitle__ttqAl h3{margin:0;font-size:var(--type-card-title);letter-spacing:-.015em;font-weight:500}.section-shell_projectTitle__ttqAl p{margin:0;font-size:var(--type-prose-secondary);color:var(--muted)}.section-shell_projectCard__d7F2R>p{margin:0 0 18px;font-size:var(--type-prose);line-height:var(--type-prose-line);max-width:none}.section-shell_projectFooter__WIFLm{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.section-shell_chipList__Ohddh{display:flex;flex-wrap:wrap;gap:6px}.section-shell_chipList__Ohddh span{font-size:13px;padding:5px 10px;border-radius:4px;background:var(--chip-bg)}.section-shell_linkList__GnO4i{display:flex;gap:12px;flex-wrap:wrap}.section-shell_linkList__GnO4i a{border:1px solid var(--faint);border-radius:6px;padding:7px 12px;font-size:14px;display:inline-flex;align-items:center;gap:6px;transition:border-color .15s ease}.section-shell_linkList__GnO4i a:hover{border-color:var(--accent)}.section-shell_linkList__GnO4i a span{color:var(--accent)}.section-shell_writingList__Mtk5R{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.section-shell_writingList__Mtk5R li{border-radius:6px}.section-shell_writingLink__HdwCv{display:grid;grid-template-columns:auto 1fr auto;grid-gap:18px;gap:18px;align-items:center;padding:14px 16px;border-radius:6px;transition:background .15s ease,color .15s ease}.section-shell_writingLink__HdwCv:hover{background:var(--code-bg)}.section-shell_writingLink__HdwCv span:first-child{width:70px;font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.section-shell_writingLink__HdwCv span:nth-child(2){font-size:var(--type-prose)}.section-shell_writingLink__HdwCv span:last-child{border:1px solid var(--faint);border-radius:3px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:4px 8px}.section-shell_resumeActions__iC7Nd{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 22px}.section-shell_timelineHint__VRxPj{font-size:13px;color:var(--muted);letter-spacing:.02em;display:inline-flex;align-items:center;gap:6px}.section-shell_downloadPill__kDDo3{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:999px;border:1px solid var(--accent);background:var(--code-bg);color:var(--fg);font-size:14px;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.section-shell_downloadPill__kDDo3:focus-visible,.section-shell_downloadPill__kDDo3:hover{background:var(--accent);color:var(--bg);outline:none;transform:translateY(-1px)}.section-shell_downloadIcon__SrNbf{flex-shrink:0;color:var(--accent);transition:color .18s ease}.section-shell_downloadPill__kDDo3:focus-visible .section-shell_downloadIcon__SrNbf,.section-shell_downloadPill__kDDo3:hover .section-shell_downloadIcon__SrNbf{color:var(--bg)}.section-shell_downloadKbd__2SMsE{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--faint);color:var(--muted);transition:border-color .18s ease,color .18s ease}.section-shell_downloadPill__kDDo3:focus-visible .section-shell_downloadKbd__2SMsE,.section-shell_downloadPill__kDDo3:hover .section-shell_downloadKbd__2SMsE{border-color:var(--bg);color:var(--bg);opacity:.85}.section-shell_timeline__jziV2{list-style:none;margin:0;padding:0;position:relative}.section-shell_timeline__jziV2:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--faint)}.section-shell_timelineEntry__yAUik{position:relative;padding:0 0 14px 30px}.section-shell_timelineEntry__yAUik:last-child{padding-bottom:0}.section-shell_timelineMarker__wOo8t{position:absolute;top:14px;left:1px;width:13px;height:13px;border-radius:50%;border:1px solid var(--accent);background:var(--bg)}.section-shell_timelineWork__VBeg_ .section-shell_timelineMarker__wOo8t:after{content:"";position:absolute;top:3px;left:3px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.section-shell_timelineEducation__y_rJK .section-shell_timelineMarker__wOo8t{border-style:dashed}.section-shell_timelineEducation__y_rJK .section-shell_timelineMarker__wOo8t:after{content:"";position:absolute;top:4.5px;left:4.5px;width:2px;height:2px;border-radius:50%;background:var(--accent);opacity:.55}.section-shell_timelineHeader__7HZfD{width:100%;display:block;text-align:left;background:transparent;border:1px solid var(--faint);border-radius:8px;padding:14px 18px;color:inherit;font:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease}.section-shell_timelineHeader__7HZfD:focus-visible,.section-shell_timelineHeader__7HZfD:hover{border-color:var(--accent);background:var(--code-bg);outline:none}.section-shell_timelineOpen__HZV4Y .section-shell_timelineHeader__7HZfD{border-color:var(--accent);background:var(--code-bg);border-bottom-left-radius:0;border-bottom-right-radius:0}.section-shell_timelineMeta__cex_e{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.section-shell_timelinePeriod__GvVq8{font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em}.section-shell_timelineKind___asvp{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--faint);border-radius:3px;padding:2px 7px}.section-shell_timelineEducation__y_rJK .section-shell_timelineKind___asvp{color:var(--accent);border-color:var(--accent);opacity:.85}.section-shell_timelineTitleRow__oUUmg{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section-shell_timelineRole__CQiNQ{margin:0;font-size:var(--type-card-title);font-weight:500;letter-spacing:-.01em}.section-shell_timelineChevron__5cuU0{display:inline-block;color:var(--accent);font-size:18px;line-height:1;transform:rotate(90deg);transition:transform .2s ease}.section-shell_timelineOpen__HZV4Y .section-shell_timelineChevron__5cuU0{transform:rotate(-90deg)}.section-shell_timelineCompany__9ElK3{margin:2px 0 8px;font-size:var(--type-subhead);color:var(--muted);font-weight:400}.section-shell_timelineSummary__zjYXh{margin:0;font-size:var(--type-prose-secondary);line-height:var(--type-prose-line);color:var(--fg)}.section-shell_timelineBody__rjxIV{border:1px solid var(--accent);border-top:none;border-radius:0 0 8px 8px;background:var(--code-bg);padding:14px 18px 16px}.section-shell_timelineBullets___9uib{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.section-shell_timelineBullets___9uib li{position:relative;padding-left:14px;font-size:var(--type-prose);line-height:var(--type-prose-line)}.section-shell_timelineBullets___9uib li:before{content:"›";position:absolute;left:0;color:var(--accent)}.section-shell_aboutGrid__EO9Qd{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:40px;gap:40px;margin-top:24px}.section-shell_aboutCard__xkSiA{border:1px solid var(--faint);border-radius:10px;padding:22px;background:var(--code-bg)}.section-shell_aboutCard__xkSiA h3{margin:0 0 10px;font-size:var(--type-micro-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}.section-shell_aboutCard__xkSiA p{margin:0;font-size:var(--type-prose-secondary);line-height:var(--type-prose-line)}.section-shell_aboutFields__K21s_{margin:0;display:flex;flex-direction:column;gap:10px}.section-shell_aboutField__H6ZeD{display:grid;grid-template-columns:5.5rem minmax(0,1fr);grid-gap:8px 20px;gap:8px 20px;align-items:baseline;margin:0}.section-shell_fieldLabel__wp4Z7{margin:0;font-size:var(--type-prose-secondary);line-height:var(--type-prose-line);color:var(--muted);font-weight:500;text-transform:capitalize}.section-shell_fieldLabel__wp4Z7:after{content:":"}.section-shell_fieldValue__4uaZx{margin:0;font-size:var(--type-prose);line-height:var(--type-prose-line);color:var(--fg)}.section-shell_fieldValue__4uaZx a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;transition:color .15s ease}.section-shell_fieldValue__4uaZx a:hover{color:var(--accent)}.section-shell_inlineNote__r9KB0{margin:18px 0 0;font-size:14px;color:var(--muted)}.section-shell_inlineGlyph__Brijs{color:var(--accent);margin-right:6px}.section-shell_statusBar__VwQdP{margin-top:40px;border-radius:6px;background:var(--code-bg);color:var(--muted);font-size:13px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--faint)}@media (max-width:720px){.section-shell_page__o5MSv{padding:24px 18px 60px}.section-shell_topBar__pNfiu{flex-direction:column;align-items:flex-start}.section-shell_topBarLeft__99cIS{flex-wrap:wrap}.section-shell_topBarRight__AYgJ5{width:100%;justify-content:space-between}.section-shell_topRole__1pXWm{color:var(--muted)}.section-shell_sectionHead__ERxP_{align-items:flex-start}.section-shell_meta__Tp5Nq{text-align:right}.section-shell_aboutGrid__EO9Qd{grid-template-columns:1fr}.section-shell_aboutField__H6ZeD{grid-template-columns:4.75rem minmax(0,1fr);gap:6px 14px}.section-shell_writingLink__HdwCv{grid-template-columns:1fr;gap:8px}.section-shell_writingLink__HdwCv span:first-child{width:auto}.section-shell_projectFooter__WIFLm,.section-shell_projectTitle__ttqAl,.section-shell_statusBar__VwQdP{flex-direction:column;align-items:flex-start}.section-shell_resumeActions__iC7Nd{flex-direction:column;align-items:stretch}.section-shell_downloadPill__kDDo3{justify-content:center;padding:11px 18px}.section-shell_timelineHint__VRxPj{justify-content:flex-start}.section-shell_timelineEntry__yAUik{padding-left:24px}.section-shell_timelineHeader__7HZfD{padding:12px 14px}.section-shell_timelineBody__rjxIV{padding:12px 14px 14px}.section-shell_timelineTitleRow__oUUmg{align-items:flex-start}.section-shell_timelineRole__CQiNQ{font-size:var(--type-subhead)}}.writeup-article_hero__GjY2I{margin-bottom:36px}.writeup-article_eyebrow__BjoEp{margin:0 0 14px;font-size:13px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.writeup-article_title__noe9n{margin:0;font-size:var(--type-section-display);line-height:1.1;letter-spacing:-.02em;font-weight:500;text-wrap:balance}.writeup-article_description__5U2qv{margin:18px 0 0;max-width:920px;font-size:var(--type-prose);line-height:var(--type-prose-line);color:var(--muted)}.writeup-article_metaRow__oQ0NG{margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.writeup-article_backLink__YtGYT{border:1px solid var(--faint);border-radius:999px;padding:8px 14px;background:var(--code-bg);transition:border-color .18s ease,background .18s ease}.writeup-article_backLink__YtGYT:hover{border-color:var(--accent)}.writeup-article_tagList__4Swy5{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;justify-content:flex-end}.writeup-article_tag__KSaX4{display:inline-flex;align-items:center;max-width:min(100%,320px);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--faint));border-radius:6px;padding:6px 12px;font-size:var(--type-micro-label);line-height:1.25;letter-spacing:.02em;color:var(--fg);background:var(--chip-bg);text-wrap:balance;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.writeup-article_tag__KSaX4:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--faint));background:color-mix(in srgb,var(--chip-bg) 65%,var(--accent) 35%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.writeup-article_article__cRyGD{border-top:1px solid var(--faint);padding-top:32px;font-size:var(--type-prose);line-height:var(--type-prose-line)}.writeup-article_article__cRyGD h2{margin:48px 0 18px;font-size:var(--type-article-h2);line-height:1.2;font-weight:500;letter-spacing:-.02em}.writeup-article_article__cRyGD h3{margin:32px 0 14px;font-size:var(--type-article-h3);line-height:1.25;font-weight:500;letter-spacing:-.015em}.writeup-article_article__cRyGD li,.writeup-article_article__cRyGD p{font-size:var(--type-prose);line-height:var(--type-prose-line)}.writeup-article_article__cRyGD blockquote{margin:24px 0;padding:14px 18px;border-left:2px solid var(--accent);background:var(--code-bg);color:var(--fg)}.writeup-article_article__cRyGD pre{overflow-x:auto;padding:18px;border-radius:14px;background:color-mix(in srgb,var(--panel) 85%,black 15%);border:1px solid var(--faint)}.writeup-article_article__cRyGD code{font-family:var(--font-mono);font-size:.92em}.writeup-article_article__cRyGD li code,.writeup-article_article__cRyGD p code{padding:2px 6px;border-radius:6px;background:var(--code-bg)}.writeup-article_article__cRyGD table{width:100%;border-collapse:collapse;margin:24px 0;font-size:var(--type-article-table)}.writeup-article_article__cRyGD td,.writeup-article_article__cRyGD th{text-align:left;vertical-align:top;padding:12px 14px;border:1px solid var(--faint)}.writeup-article_article__cRyGD th{color:var(--fg);background:var(--code-bg)}.writeup-article_article__cRyGD hr{border:0;border-top:1px solid var(--faint);margin:40px 0}.writeup-article_article__cRyGD ol,.writeup-article_article__cRyGD ul{padding-left:24px}.writeup-article_article__cRyGD a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.writeup-article_article__cRyGD .footnotes{margin-top:40px;padding-top:24px;border-top:1px solid var(--faint)}@media (max-width:720px){.writeup-article_tagList__4Swy5{justify-content:flex-start;width:100%}.writeup-article_article__cRyGD li,.writeup-article_article__cRyGD p,.writeup-article_description__5U2qv{font-size:var(--type-prose-secondary)}.writeup-article_article__cRyGD h2{font-size:clamp(20px,5.2vw,24px)}.writeup-article_article__cRyGD h3{font-size:clamp(17px,4.2vw,20px)}}