@font-face{font-family:Alex Brush;src:url(/fonts/alex-brush/AlexBrush-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}.resume_page__fM5RK{--resume-accent:#4d575e;position:relative;isolation:isolate;min-height:100vh;background:var(--color-accent-7);color:var(--color-primary);font-size:14px;line-height:1.6}[data-theme=dark] .resume_page__fM5RK{--resume-accent:#a8bac7}.resume_heroBanner__N7C_Z:before{content:"";position:absolute;inset:0;pointer-events:none;background:url(/textures/resume-grain.png) repeat}.resume_heroBanner__N7C_Z{position:relative;isolation:isolate;background:#4d575e;color:#f7f5ee;--color-primary:#f7f5ee;--color-muted-text:#eeece4;--color-border-strong:rgb(247 245 238/45%);--color-border:rgb(247 245 238/25%)}.resume_heroBanner__N7C_Z:before{z-index:-1;opacity:.08;mix-blend-mode:soft-light}.resume_heroMarkLayer__63FLG{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.resume_heroMark__03f2H{position:absolute;top:50%;right:0;width:auto;height:100%;max-width:none;opacity:.05;-o-object-fit:contain;object-fit:contain;transform:translateY(-50%);filter:brightness(0) invert(1)}.resume_page__fM5RK ::-moz-selection{background:var(--color-primary);color:var(--color-accent-7)}.resume_page__fM5RK ::selection{background:var(--color-primary);color:var(--color-accent-7)}.resume_page__fM5RK a,.resume_page__fM5RK button{-webkit-tap-highlight-color:transparent}.resume_page__fM5RK a:focus-visible,.resume_page__fM5RK button:focus-visible{outline:2px solid currentColor;outline-offset:6px}.resume_sheet__oV1YK{width:100%;max-width:1200px;padding:0 40px;margin:0 auto}.resume_toolbar__1IcpG{height:100px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-strong);font-size:12px}.resume_toolbar__1IcpG a,.resume_toolbar__1IcpG button,.resume_toolbar__1IcpG>div{display:flex;align-items:center;gap:10px}.resume_toolbar__1IcpG>div{gap:22px}.resume_toolbar__1IcpG button{justify-content:center;width:40px;height:40px;cursor:pointer;border:1px solid var(--color-border);border-radius:50%}.resume_toolbar__1IcpG svg{width:16px;height:16px}.resume_download__JltEd{font-weight:600}.resume_hero__fdq1Z{position:relative;z-index:1;display:grid;grid-template-columns:360px minmax(0,1fr);grid-template-rows:330px;gap:55px;height:330px;align-items:center}.resume_portrait__0_9wZ{position:relative;top:-14px;z-index:1;width:350px;padding:9px;border:1px solid var(--color-border-strong);margin:28px 0 0 22px;background:#4d575e;box-shadow:0 22px 45px rgb(0 0 0/15%);transform:rotate(-2deg)}.resume_portrait__0_9wZ img{display:block;width:100%;aspect-ratio:1;height:auto;-o-object-fit:cover;object-fit:cover;-o-object-position:center 30%;object-position:center 30%;background:var(--color-surface-strong)}.resume_portrait__0_9wZ figcaption{display:flex;justify-content:space-between;gap:8px;padding:10px 2px 1px;font-size:10px}.resume_portrait__0_9wZ figcaption span{color:var(--color-muted-text)}.resume_intro__T_1WU{min-width:0}.resume_intro__T_1WU h1{font-family:Alex Brush,cursive;font-size:clamp(55px,6.9vw,94px);line-height:1.15;font-weight:400;letter-spacing:0;white-space:nowrap;margin:0 0 2px}.resume_heroActions__puQGM,.resume_role__sshvU,.resume_summary__QCuD9{margin-left:24px}.resume_role__sshvU{font-size:15px;font-weight:500;margin-top:0;margin-bottom:14px}.resume_role__sshvU span{color:var(--color-muted-text);margin:0 7px}.resume_summary__QCuD9{max-width:510px;color:var(--color-muted-text);font-size:14px;line-height:1.8}.resume_contactLink__KeB69{display:inline-flex;align-items:center;gap:12px;margin-top:22px;border-bottom:1px solid var(--color-border-strong);padding-bottom:4px;font-size:12px;font-weight:600}.resume_columns__QCx9o{display:grid;grid-template-columns:1fr 2fr;gap:70px;padding-top:92px;padding-bottom:60px}.resume_content__kH3lh{min-width:0}.resume_sidebar__9N3PE{border-right:1px solid var(--color-border);padding-right:35px}.resume_sidebar__9N3PE section+section{margin-top:43px}.resume_heading__T0Kl1{display:flex;gap:15px;align-items:baseline;font-size:18px;font-weight:600;letter-spacing:-.02em;margin:0 0 23px}.resume_heading__T0Kl1>span{font-size:10px;font-weight:400;letter-spacing:0;color:var(--resume-accent);font-variant-numeric:tabular-nums}.resume_contact__iozEF{margin:0}.resume_contact__iozEF>div+div{margin-top:17px}.resume_contact__iozEF dt,.resume_skills__gJjhE h3{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted-text);margin:0 0 5px;font-weight:500}.resume_contact__iozEF dd{margin:0;font-size:13px;overflow-wrap:anywhere}.resume_skills__gJjhE>div+div{margin-top:22px}.resume_skills__gJjhE ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0}.resume_skills__gJjhE li{border:1px solid var(--color-border-strong);padding:3px 9px;font-size:11px}.resume_sideNote__W6lm6{margin-top:55px;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:21px;line-height:1.5;color:var(--color-muted-text)}.resume_content__kH3lh section+section{margin-top:36px}.resume_toolMarquee__IthDn{min-width:0;margin-top:-28px;overflow:hidden}.resume_toolTrack__9TmQ2{display:flex;width:-moz-max-content;width:max-content;align-items:center;padding:34px 0 4px}.resume_toolGroup__t5Xl6{display:flex;flex:none;align-items:center;gap:20px;list-style:none;padding:0 20px 0 0;margin:0}.resume_tool__KF__b{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:default;transition:transform .3s ease}.resume_tool__KF__b img{width:38px;height:38px;-o-object-fit:contain;object-fit:contain;opacity:.75;transition:transform .3s ease,opacity .3s ease}.resume_toolTip__qOHwN{position:absolute;z-index:3;bottom:calc(100% + 4px);left:50%;padding:5px 9px;border:1px solid var(--color-border-strong);border-radius:3px;background:var(--color-surface-elevated);color:var(--color-primary);box-shadow:0 8px 24px rgb(0 0 0/14%);font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,5px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.resume_tool__KF__b:focus-visible,.resume_tool__KF__b:hover{transform:translateY(-3px)}.resume_tool__KF__b:focus-visible img,.resume_tool__KF__b:hover img{transform:scale(1.12);opacity:1}.resume_tool__KF__b:focus-visible .resume_toolTip__qOHwN,.resume_tool__KF__b:hover .resume_toolTip__qOHwN{opacity:1;visibility:visible;transform:translate(-50%)}.resume_tool__KF__b:focus-visible{outline:2px solid var(--resume-accent);outline-offset:3px}.resume_toolMarquee__IthDn:focus-within .resume_toolTrack__9TmQ2{animation:none;transform:translateX(0)}.resume_entries__d1lh5{list-style:none;padding:0;margin:0}.resume_job__E2X_t{position:relative;isolation:isolate;padding:0 0 23px 20px;border-left:1px solid var(--color-border-strong)}.resume_job__E2X_t:before{content:"";position:absolute;left:-3px;top:7px;width:5px;height:5px;background:var(--color-primary);border-radius:50%}.resume_job__E2X_t:last-child{padding-bottom:0;border-color:transparent}.resume_entryTop__wKGls{display:flex;align-items:baseline;justify-content:space-between;gap:15px}.resume_entryTop__wKGls h3{font-size:17px;line-height:1.35;font-weight:600;letter-spacing:-.02em;margin:0}.resume_previousRole___Doy_{position:relative;margin:16px 0 0 18px;padding:11px 14px 12px 16px;border-left:1px solid var(--resume-accent);border-radius:0 3px 3px 0;background:rgb(77 87 94/9%)}.resume_previousRole___Doy_:before{content:"";position:absolute;left:-39px;top:19px;width:38px;border-top:1px solid var(--resume-accent)}.resume_previousRoleLabel__R7mFb{display:block;margin-bottom:4px;color:var(--resume-accent);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.resume_previousRole___Doy_ h4{margin:0;font-size:14px;line-height:1.4;font-weight:600}.resume_previousRole___Doy_ .resume_detail__MteAa{margin-top:5px}.resume_entriesContinued__vBtsU .resume_job__E2X_t:last-child{border-color:var(--color-border-strong)}.resume_earlierExperience__EXstL{position:relative;display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .52s cubic-bezier(.22,1,.36,1),opacity .3s ease}.resume_earlierExperience__EXstL:before{content:"";position:absolute;top:0;left:0;height:16px;border-left:1px solid var(--color-border-strong)}.resume_earlierExperienceOpen__sMVth{grid-template-rows:1fr;opacity:1}.resume_earlierExperienceInner___kMfd{min-height:0;margin-left:-8px;padding-left:8px;overflow:hidden}.resume_earlierExperienceInner___kMfd .resume_entries__d1lh5{padding-top:16px}.resume_earlierExperienceOpen__sMVth .resume_job__E2X_t{animation:resume_experienceReveal__daTjE .48s cubic-bezier(.22,1,.36,1) both}.resume_earlierExperienceOpen__sMVth .resume_job__E2X_t:nth-child(2){animation-delay:.1s}.resume_earlierExperience__EXstL:not(.resume_earlierExperienceOpen__sMVth) .resume_job__E2X_t{animation:resume_experienceHide___MA_o .36s cubic-bezier(.4,0,1,1) both}@keyframes resume_experienceReveal__daTjE{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes resume_experienceHide___MA_o{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-12px) scale(.98)}}.resume_moreToggle__8yEKA{display:inline-flex;align-items:center;gap:9px;min-height:44px;margin-top:10px;padding:8px 0;border:0;background:transparent;cursor:pointer;color:var(--resume-accent);font:inherit;font-size:12px;font-weight:600;text-align:left}.resume_moreToggle__8yEKA:focus-visible{outline:2px solid var(--resume-accent);outline-offset:4px}.resume_moreToggle__8yEKA svg{width:15px;height:15px;transition:transform .3s ease}.resume_moreToggle__8yEKA[aria-expanded=true] svg{transform:rotate(180deg)}.resume_project__H7B3k h3{font-size:18px;line-height:1.35;font-weight:600;letter-spacing:-.02em;margin:0}.resume_date__KhGih{flex-shrink:0;font-size:10px;color:var(--resume-accent);font-variant-numeric:tabular-nums}.resume_company__5GTUD{font-size:12px;margin:3px 0 5px}.resume_current__DrDIY{font-size:9px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--color-border-strong);padding:2px 6px;margin-left:10px}.resume_detail__MteAa{font-size:12px;line-height:1.75;color:var(--color-muted-text);margin:0}.resume_project__H7B3k{display:grid;grid-template-columns:104px minmax(0,1fr) 18px;align-items:start;gap:18px;padding:18px 0;border-top:1px solid var(--color-border);transition:background-color .3s ease}.resume_project__H7B3k:focus-visible,.resume_project__H7B3k:hover{background:rgb(77 87 94/6%)}.resume_projectImage__cIfZM{display:block;width:104px;aspect-ratio:1;overflow:hidden;border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface-strong)}.resume_projectImage__cIfZM img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.resume_projectBody__OiTx6{min-width:0}.resume_project__H7B3k>svg{flex-shrink:0;width:18px;height:18px;margin-top:2px}.resume_project__H7B3k .resume_detail__MteAa{margin-top:4px}.resume_stack__npdKt{display:flex;flex-wrap:wrap;gap:5px;padding:0;margin:10px 0 0;list-style:none}.resume_stack__npdKt li{border:1px solid var(--color-border-strong);border-radius:2px;padding:2px 7px;background:rgb(77 87 94/8%);color:var(--color-primary);font-size:10px;font-weight:600;line-height:1.45}.resume_allProjects__v8lJH{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;text-decoration:underline;text-underline-offset:4px}.resume_education__VKuZl article+article{margin-top:20px}.resume_footer__XtM_l{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--color-border-strong);padding:24px 0 32px;font-size:10px;color:var(--color-muted-text)}.resume_footer__XtM_l>a:last-child{display:inline-flex;gap:7px;align-items:center}@media (min-width:768px) and (max-width:1000px){.resume_columns__QCx9o,.resume_hero__fdq1Z{gap:35px}.resume_hero__fdq1Z{grid-template-columns:300px minmax(0,1fr);grid-template-rows:295px;height:295px}.resume_portrait__0_9wZ{width:300px;margin-left:15px}.resume_intro__T_1WU h1{font-size:clamp(55px,7.3vw,70px)}.resume_sheet__oV1YK{padding-inline:30px}.resume_sidebar__9N3PE{padding-right:20px}.resume_entryTop__wKGls{flex-wrap:wrap;gap:2px 10px}}@media (max-width:767px){.resume_sheet__oV1YK{padding:0 24px}.resume_toolbar__1IcpG{height:72px}.resume_toolbar__1IcpG>div{gap:14px}.resume_hero__fdq1Z{grid-template-columns:1fr;grid-template-rows:auto auto;gap:20px;height:auto;padding-top:0;padding-bottom:30px}.resume_portrait__0_9wZ{top:0;width:min(76vw,290px);margin:-18px 0 0 8px}.resume_portrait__0_9wZ img{aspect-ratio:1}.resume_portrait__0_9wZ figcaption{font-size:9px}.resume_intro__T_1WU h1{font-size:clamp(41px,11.7vw,56px);margin-bottom:4px}.resume_heroActions__puQGM,.resume_role__sshvU,.resume_summary__QCuD9{margin-left:12px}.resume_role__sshvU{font-size:12px}.resume_role__sshvU span{margin-inline:3px}.resume_summary__QCuD9{font-size:13px}.resume_columns__QCx9o{grid-template-columns:1fr;gap:36px;padding-top:36px}.resume_sidebar__9N3PE{border-right:none;padding-right:0}.resume_sidebar__9N3PE section+section{margin-top:30px}.resume_skills__gJjhE{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px}.resume_skills__gJjhE>div+div{margin-top:0}.resume_sideNote__W6lm6{display:none}.resume_entryTop__wKGls{flex-direction:column;gap:3px}.resume_heading__T0Kl1{margin-bottom:20px}.resume_toolGroup__t5Xl6{gap:16px;padding-right:16px}.resume_project__H7B3k{grid-template-columns:76px minmax(0,1fr) 16px;gap:12px}.resume_projectImage__cIfZM{width:76px}.resume_project__H7B3k h3{font-size:16px}.resume_footer__XtM_l{flex-wrap:wrap}.resume_footer__XtM_l span{order:3;width:100%}}@media (prefers-reduced-motion:reduce){.resume_earlierExperienceOpen__sMVth .resume_job__E2X_t,.resume_earlierExperience__EXstL:not(.resume_earlierExperienceOpen__sMVth) .resume_job__E2X_t,.resume_hero__fdq1Z{animation:none}.resume_earlierExperience__EXstL,.resume_moreToggle__8yEKA svg,.resume_project__H7B3k,.resume_toolTip__qOHwN,.resume_tool__KF__b,.resume_tool__KF__b img{transition:none}.resume_tool__KF__b:focus-visible,.resume_tool__KF__b:focus-visible img,.resume_tool__KF__b:hover,.resume_tool__KF__b:hover img{transform:none}.resume_toolGroup__t5Xl6[aria-hidden=true]{display:none}.resume_toolGroup__t5Xl6{width:100%;flex-wrap:wrap}}.resume_allProjects__v8lJH,.resume_contactLink__KeB69,.resume_download__JltEd{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border:1px solid var(--resume-accent);padding:10px 16px;border-radius:3px;background:rgb(77 87 94/15%);color:var(--color-primary);font-size:12px;font-weight:600;text-decoration:none}.resume_heroActions__puQGM{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:center;margin-top:26px}.resume_contactLink__KeB69{margin-top:0;border-color:rgb(247 245 238/65%);background:rgb(247 245 238/9%)}.resume_heroSocials__2X3fI{display:flex;gap:0;margin-left:auto}.resume_heroSocials__2X3fI a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent}.resume_heroSocials__2X3fI svg{width:18px;height:18px}.resume_allProjects__v8lJH:focus-visible,.resume_allProjects__v8lJH:hover,.resume_download__JltEd:focus-visible,.resume_download__JltEd:hover{background:#4d575e;color:#f7f5ee}.resume_contactLink__KeB69:focus-visible,.resume_contactLink__KeB69:hover{background:#f7f5ee;color:#4d575e}@media (max-width:767px){.resume_heroActions__puQGM{gap:16px}.resume_download__JltEd{padding-inline:12px}}.resume_heroSocials__2X3fI a:focus-visible,.resume_heroSocials__2X3fI a:hover{opacity:.75}.resume_job__E2X_t:after{content:"";position:absolute;inset:-7px -10px 13px 7px;z-index:-1;border-radius:4px;background:var(--resume-accent);opacity:0;pointer-events:none;transition:opacity .22s ease}.resume_job__E2X_t:last-child:after{bottom:-7px}.resume_job__E2X_t:before{transition:transform .22s ease,background-color .22s ease}@media (hover:hover) and (pointer:fine){.resume_job__E2X_t:hover:after{opacity:.1}.resume_job__E2X_t:hover:before{transform:scale(2.2);background:var(--resume-accent)}}@media (prefers-reduced-motion:reduce){.resume_job__E2X_t:after,.resume_job__E2X_t:before{transition:none}.resume_job__E2X_t:hover:before{transform:none}}