.blog-document_document__kmhjT{width:100%;max-width:var(--document-width);min-width:0;margin:0 auto;padding:0 0 24px;font-family:var(--font-sans)}.blog-document_document__kmhjT h1{color:var(--fg-strong);font-size:32px;font-weight:700;line-height:1.4;letter-spacing:-.6px;overflow-wrap:anywhere}.blog-document_document__kmhjT .prose{font-size:16px;line-height:1.9}.blog-document_detail__rp4o4{font-family:var(--font-sans)}.blog-document_pageHeader__AO2Xc{margin-bottom:32px}.blog-document_pageSubtitle__U5oKW{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.625}.blog-document_article__OIqHQ,.blog-document_listing__z7LOU{padding:28px 32px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.dark .blog-document_article__OIqHQ,.dark .blog-document_listing__z7LOU{background:var(--surface)}.blog-document_article__OIqHQ :is(pre,code){font-family:var(--font-code)}.blog-document_bodyLayout__TBbba{position:relative}.blog-document_contents__79OB1{margin-bottom:32px}@media (min-width:1200px){.blog-document_contents__79OB1{position:absolute;top:0;bottom:0;right:calc(100% + 24px);width:min(224px,calc((100vw - var(--document-width)) / 2 - 48px));margin-bottom:0}.blog-document_contents__79OB1 nav{position:sticky;top:80px}}@media (max-width:639px){.blog-document_document__kmhjT h1{font-size:26px}.blog-document_article__OIqHQ,.blog-document_listing__z7LOU{padding:20px 16px}}.document-layout_shell__6W1l6{min-height:100vh;padding:32px 24px}.document-layout_header__VPQlQ{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:var(--document-width);box-sizing:content-box;height:34px;padding:32px 0 12px;margin:-32px auto 8px;background:var(--bg)}html:has(.document-layout_header__VPQlQ){scroll-padding-top:86px}@media (max-width:639px){.document-layout_shell__6W1l6{padding:24px 12px}.document-layout_header__VPQlQ{padding-top:24px;margin-top:-24px}html:has(.document-layout_header__VPQlQ){scroll-padding-top:78px}}@media print{.document-layout_shell__6W1l6{padding:0}.document-layout_header__VPQlQ{display:none}}.task-architecture_figure__ko1ci{margin:5mm 0 0;-moz-column-break-inside:avoid;break-inside:avoid}.task-architecture_diagram__pNWmY{display:block;width:100%;height:auto;overflow:visible;font-family:inherit;font-size:12px;color:#000}.task-architecture_diagram__pNWmY text{fill:#000}.task-architecture_diagram__pNWmY .task-architecture_bold__PCBsL{font-weight:700}.task-architecture_diagram__pNWmY .task-architecture_small__1JJ2N{font-size:10.5px;fill:#666}.task-architecture_diagram__pNWmY .task-architecture_code__naDTB{font-family:Consolas,monospace;font-size:10.5px;fill:#666}.task-architecture_diagram__pNWmY .task-architecture_panelTitle__EMFOs{font-size:13px;font-weight:700}.task-architecture_notes___vOtA{position:absolute;top:255mm;left:21mm;right:21mm;margin:0;color:#666;font-size:10.5px;line-height:1.9}.task-architecture_figure__ko1ci figcaption.task-architecture_notes___vOtA>ul{margin:0;padding-left:4mm;list-style:disc;font-size:inherit;line-height:inherit}.task-architecture_figure__ko1ci .task-architecture_notes___vOtA>ul>li{margin:0;padding:0;color:inherit}.task-architecture_figure__ko1ci .task-architecture_notes___vOtA>ul>li::marker{color:inherit}.resume-theme_classic__HmvjP .resume-page{padding:16mm 21mm 19mm;border:1px solid #ccc;color:#333;font-family:var(--font-sans);font-size:12px;line-height:1.75}.resume-theme_classic__HmvjP .resume-page [data-resume-running]{position:static;display:flex;justify-content:space-between;padding-bottom:3mm;border-bottom:0;color:#666;font-size:7.4pt;letter-spacing:1px}.resume-theme_classic__HmvjP .resume-page [data-resume-running] span{color:inherit}.resume-theme_classic__HmvjP .resume-page h1{margin:5mm 0 3mm;color:#000;font-size:22px;line-height:1.4;letter-spacing:-.3px;transform:translateY(var(--resume-title-ink-offset,0))}.resume-theme_classic__HmvjP .resume-page [data-title-offset="1.5"]{--resume-title-ink-offset:1.5px}.resume-theme_classic__HmvjP .resume-page [data-title-offset="1"]{--resume-title-ink-offset:1px}.resume-theme_classic__HmvjP .resume-page h2{margin:14px 0 7px;padding-bottom:4px;border-bottom:1px solid #ccc;color:#000;font-size:15px;font-weight:700;letter-spacing:0}.resume-theme_classic__HmvjP .resume-page h3{color:#000;font-size:12.5px;font-weight:600;letter-spacing:0}.resume-theme_classic__HmvjP .resume-page p{border-left:0;padding-left:0;font-size:inherit;line-height:inherit}.resume-theme_classic__HmvjP .resume-page strong{color:#000}.resume-theme_classic__HmvjP .resume-page a,.resume-theme_classic__HmvjP .resume-page span{color:#666}.resume-theme_classic__HmvjP .resume-page h1+p{margin-bottom:20px;color:#666;font-size:11px}.resume-theme_classic__HmvjP .resume-page ul{padding-left:16px;font-size:12px;line-height:1.75}.resume-theme_classic__HmvjP .resume-page li{padding-left:0;margin-bottom:2px}.resume-theme_classic__HmvjP .resume-page li::marker{color:#333}.resume-theme_classic__HmvjP .resume-page article[class]{margin-top:12px;font-size:12px;line-height:1.75}.resume-theme_classic__HmvjP .resume-page [data-resume-experience]+[data-resume-experience]{margin-top:12mm}.resume-theme_classic__HmvjP .resume-page h1+[data-resume-experience],.resume-theme_classic__HmvjP .resume-page h1+div>[data-resume-experience]:first-child{margin-top:5mm}.resume-theme_classic__HmvjP .resume-page [data-resume-other-tasks]>div>div{padding:3mm 0}.resume-theme_classic__HmvjP .resume-page [data-resume-other-tasks]>div>div:first-child{padding-top:0}.resume-theme_classic__HmvjP .resume-page article>div>span,.resume-theme_classic__HmvjP .resume-page article>p{color:#666;font-size:11px}.resume-theme_classic__HmvjP .resume-page header{align-items:flex-start;padding:5mm 0;border-bottom:0}.resume-theme_classic__HmvjP .resume-page section:has(>div>span+p){border-top:0}.resume-theme_classic__HmvjP .resume-page header h1{margin:0;font-size:22px}.resume-theme_classic__HmvjP .resume-page header p{margin:15.5px 0 0;color:#666;font-size:14px}.resume-theme_classic__HmvjP .resume-page [data-resume-role] strong{display:block;margin-bottom:1mm;font-size:12px;font-weight:700;line-height:1.6}.resume-theme_classic__HmvjP .resume-page [data-resume-role] p{margin:0;color:#666;font-size:11px;line-height:1.7}.resume-theme_classic__HmvjP .resume-page [data-resume-introduction] p{white-space:normal}.resume-theme_classic__HmvjP .resume-page [data-intro-body] p{margin:0 0 4mm;line-height:1.85}.resume-theme_classic__HmvjP .resume-page [data-intro-body] p:last-child{margin-bottom:0}.resume-theme_classic__HmvjP .resume-page>p:last-child{color:#666;font-size:11px;letter-spacing:0}.resume-theme_classic__HmvjP .resume-page [data-resume-info-section]{margin-top:8mm}.resume-theme_classic__HmvjP .resume-page h1+[data-resume-info-section]{margin-top:calc(5mm - 3px)}.resume-theme_classic__HmvjP .resume-page [data-resume-info-entry]+[data-resume-info-entry]{margin-top:6mm}@media print{.resume-theme_classic__HmvjP .resume-page{border:0}}.resume-theme_classic__HmvjP .resume-page header img{width:31.2mm;height:41.6mm;margin-top:1.68mm}.resume-theme_classic__HmvjP .resume-page article[data-resume-experience] h3{font-size:12.5px}.resume-theme_classic__HmvjP .resume-page [data-resume-architecture]{margin-top:calc(5mm - 8.5px)}.resume-theme_classic__HmvjP .resume-page h1+[data-resume-other-tasks]{margin-top:calc(5mm - .5px)}.resume-theme_classic__HmvjP .resume-page [data-resume-introduction]{margin-top:4mm}.resume-theme_classic__HmvjP .resume-page [data-resume-guide]{margin-top:8mm;padding-top:0}.resume-theme_classic__HmvjP .resume-page [data-resume-guide]>div{align-items:center}.resume-theme_classic__HmvjP .resume-page [data-resume-guide]>div>p,.resume-theme_classic__HmvjP .resume-page [data-resume-guide]>div>span{margin:0;line-height:1.4}.resume-theme_classic__HmvjP .resume-page div:has(>[data-resume-role]){grid-template-columns:24mm 1fr}.resume-theme_classic__HmvjP .resume-page :is(p,li){word-break:break-all}.resume-theme_classic__HmvjP .resume-page [data-resume-task-meta]{display:flex;justify-content:space-between;align-items:baseline;gap:4mm;margin-top:calc(5mm - 1px)}.resume-theme_classic__HmvjP .resume-page [data-resume-task-meta]>p{margin:0;font-size:11px;color:#666}.resume-theme_classic__HmvjP .resume-page [data-resume-task-meta]>span{flex-shrink:0;font-size:11px;color:#666}.resume-theme_classic__HmvjP .resume-page [data-resume-task-meta]+p{color:#666;font-size:11px}.resume-theme_classic__HmvjP .resume-page div:has(>h3)+p{color:#666}.resume-theme_classic__HmvjP .resume-page code{color:#333;background:#f1f1f1}.resume-theme_classic__HmvjP .resume-page>p:last-child{bottom:12mm}.resume-theme_classic__HmvjP .resume-page [data-resume-skills]>div{display:grid;grid-template-columns:38mm 1fr;gap:3mm;padding:1.6mm 0;border-bottom:1px solid #eeece7}.resume-theme_classic__HmvjP .resume-page [data-resume-skills]>div>span{color:#000;font-size:11px;font-weight:700}.resume-theme_classic__HmvjP .resume-page [data-resume-skills] p{margin:0;color:#666;word-break:keep-all}.resume-theme_classic__HmvjP .resume-page [data-resume-skills] strong{color:#000;font-weight:700}.resume-theme_classic__HmvjP .resume-page [data-resume-skills-legend]{margin-top:2mm;color:#666;font-size:11px}.resume-theme_classic__HmvjP .resume-page [data-resume-skills-heading]{display:flex;justify-content:space-between;align-items:baseline}.resume-theme_classic__HmvjP .resume-page [data-resume-skills-heading]>span{color:#666;font-size:11px;font-weight:400}.resume-theme_classic__HmvjP .resume-page [data-resume-heading-link]{margin-left:14px;font-size:11px;font-weight:400;text-decoration:none}.resume-theme_classic__HmvjP .resume-page [data-period-status]{display:inline-block;min-width:3.6em;text-align:left}