@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-italic-BYAq_K0C.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-italic-Da0gXVk3.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-italic-0fly6zkB.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-italic-XgKbg5n7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-italic-dTnRTFFJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html.personal-profile-page{scroll-behavior:auto;scroll-snap-type:none}html.personal-profile-page body{background:#fff;margin:0;overflow:visible}.personal-cv{box-sizing:border-box;min-height:100svh}@font-face{font-family:Satoshi;src:url(/fonts/satoshi/satoshi-variable.woff2)format("woff2");font-weight:300 900;font-display:swap}@font-face{font-family:General;src:url(/fonts/general-sans/general-sans-600.woff2)format("woff2");font-weight:600;font-display:swap}.personal-cv{--ink:#17191d;--muted:#5d6470;--blue:#2949dc;--line:#dfe3eb;--wash:#f3f5fb;--current-ink:#2d5a40;--current-surface:#eff6f1;--current-border:#d8e9dc;--ease:cubic-bezier(.2,.7,.2,1);font-weight:450}.personal-cv *{box-sizing:border-box}.personal-cv{color:var(--ink);-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-family:Satoshi,Arial,sans-serif;font-size:16px;line-height:1.6}.personal-cv button,.personal-cv a{-webkit-tap-highlight-color:transparent}.personal-cv button{font:inherit}.personal-cv button,.personal-cv a,.personal-cv summary{touch-action:manipulation}.personal-cv a{color:inherit}.personal-cv a,.personal-cv button,.personal-cv summary{outline-offset:5px}.personal-cv a:focus-visible,.personal-cv button:focus-visible,.personal-cv summary:focus-visible{outline:2px solid var(--blue)}.personal-cv ::selection{color:#172d90;background:#dae0ff}.personal-cv img{max-width:100%;height:auto;display:block}.personal-cv h1,.personal-cv h2,.personal-cv h3,.personal-cv p,.personal-cv figure{margin:0}.personal-cv h1,.personal-cv h2,.personal-cv h3{text-wrap:balance;line-height:1.12}.personal-cv h1,.personal-cv h2{letter-spacing:-.055em}.personal-cv h3{letter-spacing:-.025em}.personal-cv a{text-decoration:none}.personal-cv button{cursor:pointer}.personal-cv small{font-size:12px}.personal-cv .skip-link{z-index:100;background:var(--ink);color:#fff;padding:12px 18px;position:fixed;top:8px;left:16px;transform:translateY(-200%)}.personal-cv .skip-link:focus{transform:none}.personal-cv .eyebrow{letter-spacing:.075em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600;display:block}.personal-cv .blue{color:var(--blue)}.personal-cv .muted{color:var(--muted)}.personal-cv .inline-link{color:var(--blue);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.personal-cv .inline-link:hover{text-decoration-thickness:2px}.personal-cv .arrow{transition:transform .16s var(--ease);margin-inline-start:10px;display:inline-block}.personal-cv a:hover>.arrow{transform:translate(2px,-2px)}.personal-cv.portfolio{max-width:1160px;margin:0 auto;padding-inline:36px}.personal-cv .site-nav{justify-content:space-between;align-items:center;gap:32px;min-height:92px;display:flex}.personal-cv .wordmark{align-items:center;min-width:48px;min-height:44px;display:flex}.personal-cv .wordmark img{width:48px}.personal-cv .site-nav nav{align-items:center;gap:26px;font-size:13px;display:flex}.personal-cv .site-nav nav a{align-items:center;min-height:44px;display:inline-flex}.personal-cv .site-nav nav a:hover{color:var(--blue)}.personal-cv main section[id],.personal-cv article[id],.personal-cv details[id]{scroll-margin-top:100px}.personal-cv section[tabindex="-1"]:focus,.personal-cv article[tabindex="-1"]:focus{outline:none}.personal-cv .intro-copy{max-width:52ch;color:var(--muted);font-size:17px;line-height:1.7}.personal-cv .discipline{letter-spacing:-.02em;font-size:19px;font-weight:600}.personal-cv .profile-actions{flex-wrap:wrap;align-items:center;gap:26px;margin-top:24px;display:flex}.personal-cv .button-link{background:var(--blue);color:#fff;border-radius:5px;justify-content:center;align-items:center;min-height:46px;padding:10px 18px;font-size:13px;font-weight:600;transition:background-color .16s;display:inline-flex}.personal-cv .button-link:hover{background:#1534ba}.personal-cv .text-link{align-items:center;min-height:44px;font-size:13px;display:inline-flex}.personal-cv .text-link:hover{color:var(--blue)}.personal-cv .workspace{min-width:0}.personal-cv .workspace img{mix-blend-mode:multiply;width:100%}.personal-cv .section-title{grid-template-columns:42px 1fr auto;align-items:baseline;gap:16px;margin-bottom:30px;display:grid}.personal-cv .section-title h2{font-size:33px;font-weight:700}.personal-cv .section-number{color:var(--blue);font-variant-numeric:tabular-nums;font-size:12px}.personal-cv .section-title>p{color:var(--muted);max-width:39ch;font-size:12px}.personal-cv .career-list{min-width:0}.personal-cv .group-caption{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:26px 0 12px;font-size:11px;font-weight:600}.personal-cv .group-caption:first-child{padding-top:0}.personal-cv .resume-entry{border-bottom:1px solid var(--line);grid-template-columns:154px minmax(0,1fr);gap:30px;padding-block:23px;display:grid}.personal-cv .entry-margin{padding-top:4px}.personal-cv .role-date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;line-height:1.6;display:block}.personal-cv .role-date small{color:var(--muted);margin-top:6px;font-size:11px;display:block}.personal-cv .role-identity h3{font-size:22px;font-weight:650}.personal-cv .role-title{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.personal-cv .role-short{max-width:65ch;margin-top:12px;font-size:15px;line-height:1.65}.personal-cv .role-more{margin-top:9px}.personal-cv .role-more>summary{min-height:36px;color:var(--blue);cursor:pointer;align-items:center;gap:14px;font-size:12px;font-weight:500;list-style:none;display:inline-flex}.personal-cv .role-more>summary:hover{color:#152b95}.personal-cv .expand-mark{width:20px;height:20px;color:var(--blue);flex-shrink:0;display:inline-block;position:relative}.personal-cv .expand-mark:before,.personal-cv .expand-mark:after{content:"";background:currentColor;height:1.5px;position:absolute;inset:9px 4px}.personal-cv .expand-mark:after{transition:transform .16s var(--ease);transform:rotate(90deg)}.personal-cv details[open]>summary .expand-mark:after{transform:rotate(0)}.personal-cv summary{cursor:pointer;list-style:none}.personal-cv summary::-webkit-details-marker{display:none}.personal-cv .role-body{padding-block:18px 10px}.personal-cv .role-body:has(.role-image){grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:26px;display:grid}.personal-cv .role-context{color:var(--muted);font-size:14px;line-height:1.7}.personal-cv .role-position{margin-block:24px}.personal-cv .role-position h4{margin:0;font-size:15px;font-weight:650;line-height:1.5}.personal-cv .position-date{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.6}.personal-cv .role-body .role-position ul{margin-top:10px}.personal-cv .role-body ul{margin:16px 0 10px;padding-inline-start:19px;font-size:14px;line-height:1.7}.personal-cv .role-body li+li{margin-top:9px}.personal-cv .role-body li::marker{color:var(--blue)}.personal-cv .role-body .text-link{color:var(--blue)}.personal-cv .role-image{padding-top:3px}.personal-cv .role-image img{aspect-ratio:auto;border:1px solid var(--line);border-radius:4px;width:100%;height:auto}.personal-cv .role-image figcaption{color:var(--muted);margin-top:8px;font-size:10px}.personal-cv .sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.personal-cv .project-notes{margin-top:36px}.personal-cv .subheading{justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:12px;display:flex}.personal-cv .subheading h3{font-size:18px;font-weight:600}.personal-cv .subheading>span{color:var(--muted);font-size:11px}.personal-cv .project-note{border-bottom:1px solid var(--line)}.personal-cv .project-note>summary{grid-template-columns:94px minmax(0,1fr) 24px;align-items:start;gap:22px;padding:21px 0;display:grid}.personal-cv .project-note>summary:hover .project-note-copy strong{color:var(--blue)}.personal-cv .project-date{color:var(--muted);padding-top:4px;font-size:12px}.personal-cv .project-note-copy strong{font-size:17px;font-weight:600;display:block}.personal-cv .project-note-copy>span{color:var(--muted);max-width:60ch;margin-top:6px;font-size:13px;line-height:1.65;display:block}.personal-cv .project-note .expand-mark{margin-top:3px}.personal-cv .project-note-body{padding:0 30px 24px 116px}.personal-cv .project-note-body>p{max-width:65ch;margin-top:14px;font-size:14px;line-height:1.7}.personal-cv .project-links{color:var(--blue);flex-wrap:wrap;gap:26px;margin-top:12px;display:flex}.personal-cv .project-proof{border:1px solid var(--line);border-radius:4px;width:100%;max-width:560px;margin-top:16px}.personal-cv .capability-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.personal-cv .capability-list>div{min-width:0;position:relative}.personal-cv .capability-number{color:var(--blue);margin-bottom:12px;font-size:11px;display:block}.personal-cv .capability-list h3{margin-bottom:12px;font-size:21px}.personal-cv .capability-list p{color:var(--muted);max-width:30ch;font-size:14px;line-height:1.7}.personal-cv .foundation-grid{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:38px;margin-top:42px;padding-top:30px;display:grid}.personal-cv .foundation-grid h3{margin-top:12px;font-size:17px;font-weight:600;line-height:1.4}.personal-cv .foundation-grid p{color:var(--muted);margin-top:12px;font-size:14px;line-height:1.75}.personal-cv .foundation-grid strong{color:var(--ink);font-weight:500}.personal-cv .toolkit{margin-top:18px}.personal-cv .toolkit>summary{color:var(--blue);align-items:center;gap:14px;min-height:44px;font-size:12px;display:inline-flex}.personal-cv .toolkit dl{margin:14px 0 0}.personal-cv .toolkit dl>div{border-top:1px solid var(--line);grid-template-columns:160px 1fr;gap:24px;padding:12px 0;font-size:13px;display:grid}.personal-cv .toolkit dt{font-weight:600}.personal-cv .toolkit dd{color:var(--muted);margin:0}.personal-cv .contact-block{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:end;gap:40px;margin-top:44px;padding:34px 0 0;display:grid}.personal-cv .contact-block h3{letter-spacing:-.04em;margin-top:12px;font-size:30px}.personal-cv .contact-block p{color:var(--muted);max-width:44ch;margin-top:16px;font-size:14px;line-height:1.7}.personal-cv .contact-links{min-width:0}.personal-cv .email-link{color:var(--blue);overflow-wrap:anywhere;padding-block:10px;font-size:15px;line-height:1.6;display:inline-block}.personal-cv .social-links{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.personal-cv .social-links .text-link{font-size:12px}.personal-cv .social-links .arrow{margin-inline-start:6px}.personal-cv .copy-email{border:0;border-bottom:1px solid var(--line);color:var(--muted);background:0 0;min-height:44px;padding:9px 0;font-size:12px;position:relative}.personal-cv .copy-email:hover{color:var(--blue);border-color:var(--blue)}.personal-cv .copy-feedback{color:var(--blue);font-size:11px;display:block}.personal-cv .copy-feedback:empty{display:none}.personal-cv .site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:24px;margin-top:52px;padding:24px 0 32px;font-size:11px;display:flex}.personal-cv .site-footer a{min-height:32px}.personal-cv .site-footer a:hover{color:var(--blue)}.personal-cv.variant-cv{max-width:1080px}.personal-cv .cv-profile{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);align-items:center;column-gap:44px;padding:38px 0 0;display:grid}.personal-cv .cv-profile h1{margin-top:21px;font-size:70px;font-weight:800;line-height:.99}.personal-cv .cv-profile .discipline{margin-top:24px}.personal-cv .cv-profile .intro-copy{margin-top:16px;font-size:16px}.personal-cv .cv-profile .workspace{padding-top:36px}.personal-cv .current-line{border-bottom:1px solid var(--line);grid-column:1/-1;margin-top:32px;padding:26px 0 32px}.personal-cv .current-line>p{flex-wrap:wrap;gap:18px;margin-top:10px;font-size:13px;display:flex}.personal-cv .current-line a:hover{color:var(--blue)}.personal-cv .current-line strong{font-weight:650}.personal-cv .current-separator{color:#a6adbb}.personal-cv .cv-experience,.personal-cv .cv-background{padding-top:46px}.personal-cv .cv-experience .section-title{grid-template-columns:32px 1fr auto}.personal-cv .cv-experience .career-list,.personal-cv .cv-experience .project-notes{padding-inline-start:48px}.personal-cv .cv-background .capability-list,.personal-cv .cv-background .foundation-grid,.personal-cv .cv-background .toolkit,.personal-cv .cv-background .contact-block{margin-inline-start:48px}.personal-cv .section-intro{color:var(--muted);max-width:54ch;margin-top:22px;font-size:15px;line-height:1.75}@media (width<=1000px){.personal-cv.portfolio{padding-inline:30px}.personal-cv .section-title{grid-template-columns:32px 1fr!important}.personal-cv .section-title>p{grid-column:2;max-width:none}.personal-cv .cv-profile h1{font-size:61px}.personal-cv .cv-profile{column-gap:25px}.personal-cv .contact-block{gap:26px}.personal-cv .email-link{font-size:14px}}@media (width<=760px){.personal-cv.portfolio{padding-inline:24px}.personal-cv .site-nav{min-height:80px}.personal-cv .site-nav nav{gap:18px;font-size:12px}.personal-cv .site-nav nav .text-link{font-size:12px}.personal-cv .site-nav nav .arrow{margin-inline-start:6px}.personal-cv .cv-profile{grid-template-columns:minmax(0,1fr) minmax(0,.7fr);padding-top:24px}.personal-cv .cv-profile h1{font-size:49px}.personal-cv .cv-profile .discipline{font-size:17px}.personal-cv .cv-profile .intro-copy{font-size:15px}.personal-cv .cv-profile .workspace{padding-top:0}.personal-cv .current-line{padding-bottom:25px}.personal-cv .current-line>p{gap:9px;display:grid}.personal-cv .current-separator{display:none}.personal-cv .cv-experience .career-list,.personal-cv .cv-experience .project-notes{padding-inline-start:0}.personal-cv .cv-background .capability-list,.personal-cv .cv-background .foundation-grid,.personal-cv .cv-background .toolkit,.personal-cv .cv-background .contact-block{margin-inline-start:0}.personal-cv .resume-entry{grid-template-columns:124px minmax(0,1fr);gap:20px}.personal-cv .role-body:has(.role-image){display:block}.personal-cv .role-image{max-width:520px;margin-top:20px}.personal-cv .capability-list{gap:24px}.personal-cv .capability-list h3{font-size:19px}.personal-cv .capability-list p{font-size:13px}.personal-cv .foundation-grid{gap:24px}.personal-cv .contact-block{grid-template-columns:1fr;gap:18px}.personal-cv .contact-block p{max-width:54ch}.personal-cv .site-footer{gap:15px}.personal-cv .site-footer>span{max-width:28ch}}@media (width<=540px){.personal-cv .site-nav{gap:24px;min-height:78px}.personal-cv .site-nav nav{gap:14px}.personal-cv .site-nav nav>a:nth-child(2){display:none}.personal-cv .site-nav .wordmark img{width:44px}.personal-cv.portfolio{padding-inline:22px}.personal-cv .cv-profile{padding-top:15px;display:block}.personal-cv .cv-profile h1{max-width:12ch;font-size:55px}.personal-cv .cv-profile .intro-copy{font-size:15px}.personal-cv .cv-profile .workspace{width:230px;margin:16px 0 0 auto}.personal-cv .cv-profile .discipline{font-size:16px}.personal-cv .current-line{margin-top:14px}.personal-cv .current-line>p{font-size:12px}.personal-cv .cv-experience,.personal-cv .cv-background{padding-top:34px}.personal-cv .section-title{gap:10px;margin-bottom:24px;grid-template-columns:25px 1fr!important}.personal-cv .section-title h2{font-size:29px}.personal-cv .section-title>p{font-size:12px}.personal-cv .resume-entry{padding-block:21px;display:block}.personal-cv .entry-margin{margin-bottom:10px;padding-top:0}.personal-cv .role-identity h3{font-size:21px}.personal-cv .role-title{font-size:13px}.personal-cv .role-short{font-size:14px}.personal-cv .group-caption{padding-top:22px;font-size:10px}.personal-cv .role-more>summary{min-height:40px}.personal-cv .project-note>summary{grid-template-columns:minmax(0,1fr) 24px;gap:7px 12px}.personal-cv .project-date{grid-column:1;font-size:11px}.personal-cv .project-note-copy{grid-column:1}.personal-cv .project-note .expand-mark{grid-area:1/2/3;align-self:center}.personal-cv .project-note-body{padding:6px 0 23px}.personal-cv .project-links{gap:6px 18px}.personal-cv .subheading{gap:12px}.personal-cv .subheading h3{font-size:17px}.personal-cv .subheading>span{font-size:10px}.personal-cv .capability-list{grid-template-columns:1fr;gap:22px}.personal-cv .capability-list>div{grid-template-columns:22px 90px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.personal-cv .capability-list h3{margin:0;font-size:16px}.personal-cv .capability-list p{max-width:none;font-size:13px}.personal-cv .capability-number{margin:0;font-size:10px}.personal-cv .foundation-grid{grid-template-columns:1fr;gap:26px;margin-top:30px}.personal-cv .foundation-grid h3{font-size:17px}.personal-cv .toolkit dl>div{grid-template-columns:1fr;gap:6px}.personal-cv .contact-block{margin-top:28px;padding-top:28px}.personal-cv .contact-block h3{font-size:28px}.personal-cv .contact-block p,.personal-cv .email-link{font-size:14px}.personal-cv .social-links{gap:16px}.personal-cv .site-footer{font-size:10px}.personal-cv .site-footer>span{max-width:24ch}.personal-cv main section[id],.personal-cv article[id],.personal-cv details[id]{scroll-margin-top:120px}}@media (prefers-reduced-motion:no-preference){.personal-cv details[open]>.role-body,.personal-cv details[open]>.project-note-body,.personal-cv details[open]>dl{animation:.18s ease-out detail-appear}@keyframes detail-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}@media print{.personal-cv .site-nav,.personal-cv .site-footer,.personal-cv .profile-actions,.personal-cv .copy-email,.personal-cv .skip-link{display:none!important}.personal-cv.portfolio{max-width:none;padding:0}.personal-cv .role-more>summary{color:#000}.personal-cv details{break-inside:avoid}.personal-cv a{color:#000}.personal-cv{font-size:12pt}}.personal-cv.cv-refined{--cv-gutter:48px;max-width:1160px}.personal-cv.cv-refined .site-nav{min-height:98px}.personal-cv.cv-refined .site-nav nav a{text-underline-offset:6px}.personal-cv.cv-refined .site-nav nav a:hover{text-decoration:underline}.personal-cv.cv-refined .cv-profile{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:36px;padding-top:32px}.personal-cv .cv-greeting{align-items:center;gap:13px;display:flex}.personal-cv .cv-greeting>.greeting-wave{width:38px;height:38px}.personal-cv .cv-greeting>span{font-size:15px;font-weight:600;line-height:1.5}.personal-cv .greeting-location{color:var(--muted);font-size:11px;font-weight:450;display:block}.personal-cv.cv-refined .cv-profile h1{margin-top:24px;font-size:clamp(58px,5.5vw,78px)}.personal-cv.cv-refined .cv-profile .discipline{margin-top:25px;font-size:18px}.personal-cv.cv-refined .cv-profile .intro-copy{max-width:49ch;font-size:15px;line-height:1.75}.personal-cv.cv-refined .profile-actions{gap:26px;margin-top:25px}.personal-cv.cv-refined .button-link{--button-fill:var(--blue);background-color:var(--button-fill);border-radius:9px 9px 9px 3px;gap:10px;padding:10px 16px;transition:background-color .16s,scale .14s ease-out}.personal-cv.cv-refined .button-link:active{scale:.98}.personal-cv.cv-refined .contact-icon{flex:0 0 24px;place-items:center;width:24px;height:24px;display:grid}.personal-cv.cv-refined .contact-icon .morph-svg{width:24px;height:24px}.personal-cv.cv-refined .contact-icon [fill]{transition:fill .16s}.personal-cv.cv-refined .morph-svg,.personal-cv.cv-refined .profile-icon{pointer-events:none;flex-shrink:0;display:block}.personal-cv.cv-refined .morph-svg{width:18px;height:18px}.personal-cv.cv-refined .expand-mark .morph-svg{stroke-width:2px;width:16px;height:16px}.personal-cv.cv-refined .document-icon{width:20px;height:20px}.personal-cv.cv-refined .external-icon{stroke-width:2px;width:14px;height:14px}.personal-cv.cv-refined .cv-abilities .profile-icon{stroke-width:1.5px;width:26px;height:26px}@media (hover:hover) and (pointer:fine){.personal-cv.cv-refined .button-link:hover{--button-fill:#203bc6}}.personal-cv.cv-refined .text-link{gap:5px;min-height:36px}.personal-cv.cv-refined .resume-link{gap:8px}.personal-cv.cv-refined .resume-link>span{text-underline-offset:5px;-webkit-text-decoration:underline #ccd1df;text-decoration:underline #ccd1df}.personal-cv.cv-refined .resume-link:hover>span{-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.personal-cv .document-icon{color:var(--blue);flex-shrink:0}.personal-cv .external-icon{flex-shrink:0}.personal-cv .cv-desk{align-self:center;min-width:0;padding-top:14px}.personal-cv.cv-refined .cv-desk .workspace{width:100%;margin:0;padding:0}.personal-cv .desk-caption{text-align:center;max-width:74%;color:var(--muted);margin:15px auto 0;font-size:11px}.personal-cv .cv-current{border-bottom:1px solid var(--line);grid-column:1/-1;grid-template-columns:132px minmax(0,1fr);align-items:start;gap:24px;margin-top:25px;padding:32px 0;display:grid}.personal-cv .cv-current>.eyebrow{padding-top:9px}.personal-cv .cv-current-links{grid-template-columns:1fr 1.25fr;gap:24px;display:grid}.personal-cv .cv-current-links>a{width:fit-content;padding:4px 0;display:block}.personal-cv .current-company{letter-spacing:-.025em;text-underline-offset:5px;width:fit-content;font-size:18px;font-weight:650;-webkit-text-decoration:underline #dfe3ed;text-decoration:underline #dfe3ed;text-decoration-thickness:1px}.personal-cv .cv-current-links>a>span:last-child{color:var(--muted);margin-top:3px;font-size:12px;display:block}.personal-cv .cv-current-links>a:hover .current-company{color:var(--blue);text-decoration-color:currentColor}.personal-cv.cv-refined .cv-experience,.personal-cv.cv-refined .cv-background{padding-top:42px}.personal-cv .cv-section-heading{justify-content:space-between;align-items:center;gap:24px;min-height:112px;margin-bottom:26px;display:flex}.personal-cv .cv-section-heading .eyebrow{letter-spacing:.09em;font-size:10px}.personal-cv .cv-section-heading h2{margin-top:12px;font-size:42px;font-weight:750}.personal-cv .heading-object{flex:0 0 124px;place-items:center;width:124px;display:grid}.personal-cv .record-object{width:94px;height:100px;position:relative}.personal-cv .record-sheet{border-radius:4px;width:70px;height:90px;position:absolute}.personal-cv .record-sheet-back{background:#dce2ff;inset:0 auto auto 13px;transform:rotate(-12deg);box-shadow:0 3px 7px #1c2b530f}.personal-cv .record-sheet-front{color:var(--ink);background:#fff;padding:15px 10px 9px;inset:7px auto auto 17px;transform:rotate(8deg);box-shadow:0 0 0 1px #00000012,0 4px 6px #1925500a,0 12px 22px #19255014}.personal-cv .record-tab{background:var(--blue);border-radius:1px 1px 3px 3px;width:11px;height:21px;position:absolute;inset:-4px 11px auto auto}.personal-cv .record-sheet-front strong{letter-spacing:-.04em;font-size:15px;font-weight:750;line-height:1.18;display:block}.personal-cv .record-lines{border-block:1px solid #bac2d4;width:33px;height:9px;margin-top:11px;display:block}.personal-cv.cv-refined .cv-experience .career-list,.personal-cv.cv-refined .cv-experience .project-notes{padding-inline-start:var(--cv-gutter)}.personal-cv.cv-refined .resume-entry{grid-template-columns:172px minmax(0,1fr);gap:32px;padding-block:24px}.personal-cv.cv-refined .role-name{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.personal-cv.cv-refined .role-identity h3{font-size:23px;transition:color .15s ease-out}.personal-cv .current-badge{color:var(--current-ink);background:var(--current-surface);border:1px solid var(--current-border);letter-spacing:.01em;white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:600;line-height:1.35;display:inline-flex}.personal-cv .current-badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.personal-cv.cv-refined .role-date{font-size:12px}.personal-cv.cv-refined .role-short{margin-top:10px;font-size:14px}.personal-cv.cv-refined .role-title{font-size:13px}.personal-cv.cv-refined .role-more{margin-top:13px}.personal-cv.cv-refined .role-more>summary{border-radius:3px;gap:8px;min-height:36px;padding:4px 0;transition:background-color .15s ease-out,color .15s ease-out}.personal-cv.cv-refined .role-more>summary:hover,.personal-cv.cv-refined .role-more[open]>summary{color:#1c36aa}.personal-cv.cv-refined .role-more .expand-mark{background:var(--wash);border-radius:50%;transition:color .15s,background-color .15s}.personal-cv.cv-refined .role-more>summary:hover .expand-mark,.personal-cv.cv-refined .role-more[open]>summary .expand-mark{background:var(--blue);color:#fff}.personal-cv.cv-refined .role-more .expand-mark:before,.personal-cv.cv-refined .role-more .expand-mark:after{inset-inline:6px}.personal-cv.cv-refined .expand-mark:has(.morph-svg){place-items:center;display:grid}.personal-cv.cv-refined .expand-mark:has(.morph-svg):before{content:none}.personal-cv.cv-refined .expand-mark:has(.morph-svg):after{content:none}.personal-cv.cv-refined .resume-entry:has(.role-more[open]) .role-identity h3{color:var(--blue)}.personal-cv.cv-refined .role-body{padding-block:22px 5px}.personal-cv.cv-refined .role-image img{outline-offset:-1px;border:0;outline:1px solid #0000001a}.personal-cv.cv-refined .project-notes{margin-top:32px}.personal-cv.cv-refined .subheading h3{font-size:19px}.personal-cv.cv-refined .project-note>summary{padding-block:23px}.personal-cv.cv-refined .disclosure-chevron{color:var(--blue);align-self:center;place-items:center;transition:transform .16s ease-out;display:grid}.personal-cv.cv-refined .cv-background{padding-top:52px}.personal-cv.cv-refined .cv-background .capability-list,.personal-cv.cv-refined .cv-background .foundation-grid,.personal-cv.cv-refined .cv-background .toolkit,.personal-cv.cv-refined .cv-background .contact-block{margin-inline-start:var(--cv-gutter)}.personal-cv.cv-refined .cv-abilities{gap:36px}.personal-cv.cv-refined .cv-abilities>div{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:15px 12px;display:grid}.personal-cv .cv-abilities svg{color:var(--blue)}.personal-cv.cv-refined .cv-abilities h3{margin:0;font-size:21px}.personal-cv.cv-refined .cv-abilities p{grid-column:1/-1;max-width:33ch;font-size:14px}.personal-cv.cv-refined .foundation-grid{margin-top:36px;padding-top:27px}.personal-cv.cv-refined .toolkit>summary{background:var(--wash);border-radius:6px;gap:8px;min-height:36px;padding:5px 11px}.personal-cv.cv-refined .contact-block{background:#f3f5fd;border:0;border-radius:10px;align-items:center;gap:36px;margin-top:36px;padding:30px;position:relative}.personal-cv.cv-refined .contact-block .eyebrow{color:#3e52a0}.personal-cv.cv-refined .contact-block h3{font-size:31px}.personal-cv.cv-refined .contact-block p{margin-top:13px;font-size:13px}.personal-cv.cv-refined .email-link{text-underline-offset:5px;font-size:15px;font-weight:550;-webkit-text-decoration:underline #bbc6f0;text-decoration:underline #bbc6f0}.personal-cv.cv-refined .email-link:hover{text-decoration-color:currentColor}.personal-cv.cv-refined .social-links .text-link:hover{text-underline-offset:4px;text-decoration:underline}.personal-cv.cv-refined .social-links{gap:17px}.personal-cv.cv-refined .copy-email{background:#fff;border:1px solid #d8def1;border-radius:4px;justify-content:center;align-items:center;gap:6px;min-height:32px;padding:5px 9px;display:inline-flex}.personal-cv.cv-refined .copy-email[data-copied=true]{color:#24533c;border-color:#adcbb9}.personal-cv.cv-refined .site-footer{margin-top:36px}@media (width<=1000px){.personal-cv.cv-refined{--cv-gutter:0px}.personal-cv.cv-refined .cv-profile{column-gap:22px}.personal-cv.cv-refined .cv-profile h1{font-size:62px}.personal-cv.cv-refined .cv-profile .discipline{font-size:16px}.personal-cv.cv-refined .cv-profile .intro-copy{font-size:14px}.personal-cv .cv-current{grid-template-columns:105px minmax(0,1fr);gap:20px}.personal-cv .cv-current-links{grid-template-columns:1fr 1.25fr;gap:18px}.personal-cv.cv-refined .resume-entry{grid-template-columns:145px minmax(0,1fr);gap:27px}.personal-cv.cv-refined .cv-abilities{gap:26px}.personal-cv.cv-refined .contact-block{grid-template-columns:1fr;gap:22px}}@media (width<=760px){.personal-cv.cv-refined .cv-profile h1{font-size:51px}.personal-cv.cv-refined .cv-profile .discipline{line-height:1.55}.personal-cv .cv-greeting{gap:10px}.personal-cv .cv-greeting>.greeting-wave{width:33px;height:33px}.personal-cv .cv-current{grid-template-columns:1fr;gap:12px;margin-top:18px;padding-top:26px}.personal-cv .cv-current-links{grid-template-columns:1fr 1.1fr}.personal-cv .current-company{gap:14px;font-size:17px}.personal-cv .cv-current-links>a>span:last-child{font-size:11px}.personal-cv .cv-section-heading h2{font-size:36px}.personal-cv .heading-object{flex-basis:95px;width:95px}.personal-cv .idea-object{width:80px;height:80px}.personal-cv.cv-refined .resume-entry{grid-template-columns:128px minmax(0,1fr);gap:22px}.personal-cv.cv-refined .cv-abilities{gap:24px}.personal-cv.cv-refined .cv-abilities h3{font-size:18px}.personal-cv.cv-refined .cv-abilities p{font-size:13px}}@media (width<=600px){.personal-cv.cv-refined .cv-profile{grid-template-columns:1fr;padding-top:18px;display:grid}.personal-cv.cv-refined .cv-profile h1{font-size:clamp(52px,10.5vw,68px)}.personal-cv.cv-refined .cv-profile .discipline{margin-top:22px;font-size:16px}.personal-cv.cv-refined .cv-profile .intro-copy{font-size:15px}.personal-cv .cv-desk{width:min(300px,87%);margin:22px 0 0 auto;padding-top:0}.personal-cv .desk-caption{margin-top:1px;font-size:10px}.personal-cv .cv-current{margin-top:0;padding-top:23px}.personal-cv .cv-current-links{grid-template-columns:1fr;gap:16px}.personal-cv .cv-current-links>a{flex-wrap:wrap;align-items:baseline;column-gap:20px;width:100%;display:flex}.personal-cv .cv-current-links>a>span:last-child{font-size:11px}.personal-cv .cv-section-heading{gap:15px;min-height:97px;margin-bottom:22px}.personal-cv .cv-section-heading h2{margin-top:10px;font-size:33px}.personal-cv .cv-section-heading .eyebrow{font-size:9px}.personal-cv .heading-object{flex-basis:78px;width:78px}.personal-cv .record-object{transform-origin:50%;transform:scale(.78)}.personal-cv .idea-object{width:69px;height:69px}.personal-cv.cv-refined .cv-experience,.personal-cv.cv-refined .cv-background{padding-top:28px}.personal-cv.cv-refined .resume-entry{padding-block:23px;display:block}.personal-cv.cv-refined .role-name{gap:8px 12px}.personal-cv.cv-refined .role-identity h3{font-size:22px}.personal-cv.cv-refined .role-date{font-size:11px}.personal-cv.cv-refined .role-more>summary{min-height:40px}.personal-cv.cv-refined .project-note>summary .disclosure-chevron{grid-area:1/2/3}.personal-cv.cv-refined .cv-abilities{grid-template-columns:1fr;gap:26px}.personal-cv.cv-refined .cv-abilities>div{grid-template-columns:26px minmax(0,1fr);gap:9px 13px}.personal-cv.cv-refined .cv-abilities h3{font-size:20px}.personal-cv.cv-refined .cv-abilities p{grid-column:2;max-width:none;font-size:14px}.personal-cv.cv-refined .contact-block{padding:23px 20px}.personal-cv.cv-refined .contact-block h3{font-size:28px}.personal-cv.cv-refined .email-link{font-size:14px}.personal-cv.cv-refined .social-links{gap:12px 17px}}@media (prefers-reduced-motion:reduce){.personal-cv.cv-refined *,.personal-cv.cv-refined :before,.personal-cv.cv-refined :after{transition:none!important;animation:none!important}.personal-cv.cv-refined .button-link:active{scale:none}}@media print{.personal-cv .cv-greeting>.greeting-wave,.personal-cv .heading-object,.personal-cv .cv-desk{display:none}.personal-cv.cv-refined .cv-profile{display:block}.personal-cv.cv-refined .cv-section-heading{min-height:0}.personal-cv.cv-refined .contact-block{background:0 0;padding:0}}.personal-cv section[id],.personal-cv article[id],.personal-cv details[id],.personal-cv #contact{scroll-margin-top:24px}.personal-cv .copy-email{min-width:108px}.personal-cv .copy-feedback{position:static}.personal-cv .copy-status{color:#5d6470;min-height:18px;margin-top:5px;font-size:11px;display:block}.personal-cv.cv-refined .copy-email{transition:scale .14s ease-out,background-color .15s ease-out,border-color .15s ease-out}.personal-cv.cv-refined .copy-email:active{scale:.97}.personal-cv.cv-refined .resume-link .document-icon{transition:transform .15s var(--ease)}.personal-cv .chapter-motion{--object-slot:156px;min-height:124px;position:relative}.personal-cv .chapter-title{max-width:calc(100% - var(--object-slot) - 20px)}.personal-cv .chapter-motion .heading-object{z-index:1;overflow-clip-margin:24px;pointer-events:none;width:auto;height:100%;display:block;position:absolute;inset:0;overflow:clip visible}.personal-cv .object-travel{width:calc(100% - var(--object-slot));pointer-events:none;height:100px;position:absolute;top:0;left:0;transform:translate(100%)}.personal-cv .object-flight{width:var(--object-slot);transform-origin:50% 55%;place-items:center;display:grid}.personal-cv .object-touch{pointer-events:auto;place-items:center;display:grid}.personal-cv .chapter-motion .record-object{transform:scale(1.24)}.personal-cv .chapter-motion-record{justify-content:flex-start;gap:32px}.personal-cv .chapter-motion-record .heading-object{flex:0 0 112px;width:112px;height:112px;position:relative;inset:auto;overflow:visible}.personal-cv .chapter-motion-record .object-travel{width:100%;height:auto;position:static;transform:none}.personal-cv .chapter-motion-record .object-flight{width:100%;transform:none}.personal-cv .chapter-motion-record .object-touch{pointer-events:none}.personal-cv .chapter-motion-record .record-object{transform:scale(1)}.personal-cv .chapter-motion-record .record-sheet-front{transform:rotate(2deg)}.personal-cv .chapter-motion-record .record-sheet-back{transform:rotate(-5deg)}.personal-cv .idea-object{width:124px;height:124px;transform:none}.personal-cv .record-year-window{font-variant-numeric:tabular-nums;height:1.18em;display:block;overflow:clip}.personal-cv .record-year-strip{display:block;transform:translateY(-80%)}.personal-cv .record-year-strip>span{height:1.18em;line-height:1.18;display:block}.personal-cv .record-year-caption{display:block}@media (hover:hover) and (pointer:fine){.personal-cv.cv-refined .copy-email:hover{background:#edf1ff;border-color:#b6c3ee}@media (prefers-reduced-motion:no-preference){.personal-cv.cv-refined .resume-link:hover .document-icon{transform:translateY(-2px)}.personal-cv .object-touch{transition:transform .2s var(--ease)}.personal-cv .chapter-motion-bulb .object-touch:hover{transform:translateY(-4px)}}}@keyframes paper-settle{0%{transform:translateY(-16px)rotate(-3deg)}to{transform:none}}@keyframes record-years{0%,16%{transform:translateY(0)}24%,36%{transform:translateY(-20%)}44%,56%{transform:translateY(-40%)}64%,76%{transform:translateY(-60%)}84%,to{transform:translateY(-80%)}}@keyframes bulb-turn{0%{transform:translateY(-44px)rotate(-48deg)scale(.48)}36%{transform:translate(-20px,2px)rotate(18deg)scale(1.5)}64%{transform:translate(-8px,5px)rotate(-9deg)scale(1.14)}84%{transform:rotate(3deg)scale(.98)}to{transform:none}}@keyframes hello-wave{0%{transform:none}30%{transform:translate(-2px,-3px)rotate(-9deg)}70%{transform:translate(2px,-3px)rotate(12deg)}to{transform:none}}@keyframes bulb-light{0%{opacity:.35;transform:rotate(-16deg)scale(.85)}to{opacity:1;transform:none}}@keyframes workspace-settle{0%{opacity:.5;transform:translateY(6px)rotate(.6deg)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.personal-cv .cv-greeting .greeting-wave img{transform-origin:65% 85%}.personal-cv .cv-greeting.object-arrived .greeting-wave img{animation:hello-wave 1.4s var(--ease-gesture)}.personal-cv .cv-desk .workspace{animation:workspace-settle .42s var(--ease)}.personal-cv .chapter-motion-record.object-arrived .object-touch{animation:paper-settle .45s var(--ease)}@supports (animation-timeline:view()){.personal-cv .chapter-motion{view-timeline:--object-scene block}.personal-cv .record-year-strip{animation:linear both record-years}.personal-cv .chapter-motion-bulb .object-flight{animation:linear both bulb-turn;animation-timeline:--object-scene;animation-range:entry cover 65%}.personal-cv .record-year-strip{animation-timeline:--object-scene;animation-range:cover 45% cover 78%}}@supports not (animation-timeline:view()){.personal-cv .chapter-motion-bulb.object-arrived .object-touch{animation:bulb-light .5s var(--ease)}}}@media (width<=600px){.personal-cv .chapter-motion{--object-slot:84px;min-height:100px}.personal-cv .chapter-title{max-width:calc(100% - var(--object-slot) - 14px)}.personal-cv .chapter-motion .heading-object{overflow-clip-margin:12px}.personal-cv .chapter-motion .record-object{transform:scale(.84)}.personal-cv .chapter-motion-record{gap:16px}.personal-cv .chapter-motion-record .heading-object{flex-basis:84px;width:84px;height:100px}.personal-cv .idea-object{width:80px;height:80px}}@media (prefers-reduced-motion:reduce){.personal-cv.cv-refined .copy-email:active{scale:none}}@media (width<=360px){.personal-cv .chapter-motion h2{font-size:30px}}@media print{.personal-cv .chapter-motion{min-height:0}.personal-cv .chapter-title{max-width:none}}.personal-cv{--ease-gesture:cubic-bezier(.37, 0, .63, 1)}.personal-cv.cv-refined .cv-abilities.craft-abilities{gap:28px}.personal-cv.cv-refined .cv-abilities.craft-abilities>div{grid-template-columns:66px minmax(0,1fr);align-items:center;gap:9px 10px;display:grid}.personal-cv.cv-refined .cv-abilities.craft-abilities h3{grid-column:2;margin:0;font-size:21px}.personal-cv.cv-refined .cv-abilities.craft-abilities p{grid-column:1/-1;max-width:32ch}.craft-capability-object{width:66px;height:66px;margin-left:-5px;display:block}.personal-cv .craft-emoji{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.craft-compass{transform-origin:50% 35%}.craft-palette{transform-origin:30% 70%}.craft-laptop{transform-origin:50% 85%}.personal-cv .emoji-play-button{color:inherit;cursor:pointer;touch-action:manipulation;appearance:none;background:0 0;border:0;border-radius:50%;flex-shrink:0;padding:0;line-height:0;display:block;position:relative}.emoji-play-button:before{content:"";border-radius:inherit;position:absolute;inset:-6px}.emoji-play-button img,.greeting-wave-pose,.emoji-response{width:100%;height:100%;display:block}.emoji-response{transform-origin:65% 85%;pointer-events:none}.personal-cv .contact-wave{pointer-events:auto;width:100%;height:100%}.personal-cv.cv-refined .craft-project-notes .subheading{justify-content:flex-start;align-items:center;gap:14px;min-height:68px;position:relative}.personal-cv.cv-refined .craft-project-notes .subheading>h3{order:0}.personal-cv.cv-refined .craft-project-notes .subheading>span{order:2;margin-left:auto}.craft-project-hand{z-index:2;pointer-events:none;flex:0 0 56px;order:1;width:56px;height:56px;position:relative}.craft-project-travel,.craft-point-response{width:100%;height:100%;display:block}.craft-point-pose{transform-origin:50%;width:100%;height:100%;display:block;transform:rotate(-12deg)}.craft-project-hand[data-target]:not([data-target=""]) .craft-point-pose{transform:rotate(78deg)}.craft-point-response{transform-origin:50% 75%;transform:none}.craft-project-hand[data-target-open=true] .craft-point-response{transform:translateY(4px)rotate(-6deg)}.personal-cv.cv-refined .contact-block.craft-contact-block{position:relative}.craft-contact-hand{pointer-events:none;width:90px;height:90px;position:absolute;top:-40px;right:32px}.craft-call-pose{transform-origin:60% 85%;width:100%;height:100%;display:block;transform:rotate(12deg)}.personal-cv .role-object{pointer-events:none;width:52px;height:52px;margin-top:16px}.role-object-axtra>img{transform-origin:35% 70%}.role-object-iron>img{transform-origin:50%}@media (prefers-reduced-motion:no-preference){.craft-abilities[data-arrived=true] .craft-compass{animation:craft-find-direction .36s var(--ease) both}.craft-abilities[data-arrived=true] .craft-palette{animation:craft-palette-tilt .36s var(--ease) 80ms both}.craft-abilities[data-arrived=true] .craft-laptop{animation:craft-laptop-settle .32s var(--ease) .16s both}.craft-project-hand[data-arrived=true] .craft-emoji{animation:craft-point-arrive .9s var(--ease-gesture) both}.craft-project-travel{transition:transform .9s var(--ease-gesture)}.craft-point-pose{transition:transform .85s var(--ease-gesture)}.craft-point-response{transition:transform .65s var(--ease-gesture)}.craft-contact-hand[data-arrived=true] .craft-emoji{animation:craft-say-hello 1.1s var(--ease-gesture) both}.role-object-axtra[data-arrived=true]>img{animation:role-lift-off .48s var(--ease) both}.role-object-iron[data-arrived=true]>img{animation:role-gear-turn .48s var(--ease) both}}@keyframes craft-find-direction{0%{transform:rotate(-20deg)}to{transform:rotate(0)}}@keyframes craft-palette-tilt{0%{transform:rotate(10deg)}65%{transform:rotate(-3deg)}to{transform:rotate(0)}}@keyframes craft-laptop-settle{0%{transform:translateY(6px)scale(.94)}to{transform:none}}@keyframes craft-point-arrive{0%{transform:translateY(-8px)rotate(-6deg)}to{transform:none}}@keyframes craft-say-hello{0%{transform:translateY(7px)rotate(-12deg)}to{transform:none}}@keyframes role-lift-off{0%{transform:translate(-12px,10px)rotate(-8deg)}to{transform:none}}@keyframes role-gear-turn{0%{transform:rotate(-65deg)}to{transform:rotate(0)}}@media (width<=1000px){.personal-cv.cv-refined .cv-abilities.craft-abilities{gap:22px}.personal-cv.cv-refined .cv-abilities.craft-abilities>div{grid-template-columns:55px minmax(0,1fr);gap:8px}.personal-cv.cv-refined .cv-abilities.craft-abilities h3{font-size:18px}.craft-capability-object{width:55px;height:55px}}@media (width<=600px){.personal-cv.cv-refined .cv-abilities.craft-abilities{grid-template-columns:1fr;gap:26px}.personal-cv.cv-refined .cv-abilities.craft-abilities>div{grid-template-columns:60px minmax(0,1fr);align-items:start;gap:0 12px}.craft-capability-object{grid-row:1/3;width:60px;height:60px;margin-left:-4px}.personal-cv.cv-refined .cv-abilities.craft-abilities h3{grid-column:2;margin-top:5px;margin-bottom:7px;font-size:19px}.personal-cv.cv-refined .cv-abilities.craft-abilities p{grid-column:2;max-width:none}.personal-cv.cv-refined .craft-project-notes .subheading{grid-template-columns:minmax(0,1fr) 48px;gap:4px 12px;min-height:62px;display:grid}.personal-cv.cv-refined .craft-project-notes .subheading>h3{grid-area:1/1;align-self:end;margin:0;line-height:1.3}.personal-cv.cv-refined .craft-project-notes .subheading>span{grid-area:2/1;align-self:start;margin:0}.craft-project-hand{grid-area:1/2/3;width:48px;height:48px}.craft-contact-hand{width:74px;height:74px;top:-36px;right:20px}.personal-cv .entry-margin:has(.role-object){justify-content:space-between;align-items:center;gap:16px;display:flex}.personal-cv .role-object{flex:0 0 40px;width:40px;height:40px;margin:0}}@media (prefers-reduced-motion:reduce){.craft-point-pose,.craft-project-travel,.craft-point-response{transition:none}}@media print{.craft-capability-object,.craft-project-hand,.craft-contact-hand,.role-object{display:none}.personal-cv.cv-refined .cv-abilities.craft-abilities>div{display:block}}html.intro-demo-document{scrollbar-gutter:stable}html.intro-demo-playing{overflow:hidden}.intro-demo{--ease-in-out:cubic-bezier(.77, 0, .175, 1)}.intro-demo:not([data-intro-phase=complete]) .cv-greeting{visibility:hidden}.intro-demo .personal-cv .cv-greeting .greeting-wave img,.intro-demo .personal-cv .cv-desk .workspace{animation:none}.intro-stage{z-index:100;isolation:isolate;place-items:center;display:grid;position:fixed;inset:0}.intro-stage[hidden]{display:none}.intro-curtain{z-index:-1;background:#fff;position:absolute;inset:0}.intro-composition{width:min(660px,100% - 48px);transform:translateY(-3vh)}.intro-greeting-row{justify-content:center;align-items:center;gap:22px;display:flex}.intro-hand{transform-origin:0 0;flex-shrink:0;width:96px;height:96px;display:block}.intro-hand img{transform-origin:65% 85%;width:100%;height:100%}.intro-demo .intro-title{letter-spacing:normal;text-wrap:nowrap;transform-origin:0 0;font-size:clamp(42px,5.4vw,60px);font-weight:600;line-height:1.2}.intro-demo .intro-description{color:var(--muted);text-align:center;text-wrap:balance;margin-top:24px;font-size:20px;font-weight:450;line-height:1.65}.intro-description strong{color:var(--ink);font-weight:600}.intro-demo .intro-skip{right:max(28px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:13px;transition:color .16s,background-color .16s;display:inline-flex;position:absolute}.intro-skip>kbd{color:var(--blue);font:inherit}.intro-demo-tools{z-index:20;right:max(24px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));border:1px solid var(--line);background:#fff;border-radius:10px 10px 10px 3px;align-items:center;gap:18px;padding:3px 16px;font-size:12px;display:flex;position:fixed;box-shadow:0 4px 20px #17191d08}.intro-demo-tools>span{color:var(--muted);font-size:11px}.intro-demo-tools button,.intro-demo-tools a{align-items:center;gap:7px;min-height:44px;display:inline-flex}.intro-demo-tools button{color:var(--blue);background:0 0;border:0;padding:0}.intro-demo-tools a{text-underline-offset:4px;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.intro-demo[data-intro-phase=complete] .greeting-location{animation:intro-location .2s var(--ease)}@keyframes intro-location{0%{opacity:0}to{opacity:1}}@media (hover:hover) and (pointer:fine){.intro-demo .intro-skip:hover{color:var(--ink);background:var(--wash)}.intro-demo-tools a:hover{text-decoration-color:currentColor}.intro-demo-tools button:hover{text-underline-offset:4px;text-decoration:underline}}@media (width<=600px){.intro-composition{width:calc(100% - 40px)}.intro-greeting-row{gap:14px}.intro-hand{width:66px;height:66px}.intro-demo .intro-title{font-size:clamp(32px,9vw,44px)}.intro-demo .intro-description{max-width:360px;margin:22px auto 0;font-size:17px;line-height:1.6}.intro-description br{display:none}.intro-demo .intro-skip{right:16px;bottom:max(16px, env(safe-area-inset-bottom))}.intro-demo-tools{right:14px;bottom:max(14px, env(safe-area-inset-bottom));gap:14px;padding-inline:12px}.intro-demo-tools>span{display:none}}@media print{.intro-stage,.intro-demo-tools{display:none}}
