@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-400.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-600.ttf)format("truetype");font-weight:500 800;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-400.ttf)format("truetype");font-weight:400;font-display:swap}:root{--paper:#fcfcfa;--ink:#25262b;--secondary:#65666c;--line:#e2e3df;--blue:#2343e8;--ease:cubic-bezier(.2,.65,.3,1);--rail:184px;--rail-gap:28px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;interpolate-size:allow-keywords}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:32px}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,Arial,sans-serif;font-size:16px;line-height:1.65}::selection{background:#e0e5ff}a{color:inherit;text-underline-offset:4px;text-decoration:none;text-decoration-thickness:1px;transition:color .12s,text-decoration-color .12s}a:hover{color:var(--blue)}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button,a,summary,input,select{outline-offset:5px}:focus-visible{outline:2px solid var(--blue);border-radius:2px}#main:focus{outline:none}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}h1,h2,h3,p,dl,dd{font-size:inherit;line-height:inherit;margin:0}h1,h2,h3{font-weight:500}.page{width:min(760px,100% - 56px);margin:0 auto}.header{justify-content:space-between;align-items:center;gap:24px;padding-top:70px;display:flex}.identity{white-space:nowrap;align-items:center;gap:13px;display:flex}.monogram-button{color:var(--ink);background:0 0;border:0;border-radius:3px;flex:none;margin:0;padding:0;display:block;position:relative}.monogram{transition:transform .52s var(--ease);display:block;overflow:visible}.monogram-button:active .monogram{scale:.92}.monogram-move{white-space:nowrap;color:var(--ink);pointer-events:none;opacity:0;gap:5px;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1;display:flex;position:absolute;top:calc(100% + 7px);left:0}.monogram-move[data-visible=true]{animation:move-label 1.6s var(--ease) both}.monogram-op{color:var(--blue)}@keyframes move-label{0%{opacity:0;translate:0 -3px}12%,70%{opacity:1;translate:0}to{opacity:0;translate:0}}.monogram-arrow{color:#a3a5aa}.monogram[data-intro=true] .monogram-letter{animation:draw-monogram 1.1s var(--ease) .15s both}.monogram[data-intro=true] .monogram-letter:nth-of-type(2){animation-delay:.33s}.monogram[data-intro=true] .monogram-point{animation:point-in .4s var(--ease) 1s both}@keyframes point-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.monogram-point{transform-box:fill-box;transform-origin:50%}.monogram-guides{opacity:0;transition:opacity .18s}.monogram-letter{stroke-dasharray:100;stroke-dashoffset:0;transition:stroke .18s}:is(.identity:hover .monogram-guides,.monogram-button:focus-visible .monogram-guides){opacity:.55}.identity:hover .monogram-letter{stroke:var(--blue);animation:draw-monogram-hover .65s var(--ease) both}.identity:hover .monogram-letter:nth-of-type(2){animation-delay:65ms}.monogram-button{cursor:pointer}@keyframes draw-monogram-hover{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes draw-monogram{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.header nav{font-size:inherit;color:var(--secondary);gap:24px;display:flex}.header nav a{white-space:nowrap}.external-arrow{vertical-align:-1px;color:var(--secondary);margin-left:2px;transition:transform .12s,color .12s;display:inline-block}:is(a:hover .external-arrow,a:focus-visible .external-arrow){color:var(--blue);transform:translate(1px,-1px)}.introduction{margin-top:37px}.introduction p+p{margin-top:17px}.introduction a,.entry h3 a,.contact-email>a{background:linear-gradient(var(--blue),var(--blue)) 0 100%/0 1px no-repeat,linear-gradient(#c2c4c8,#c2c4c8) 0 100%/100% 1px no-repeat;transition:color .12s ease,background-size .36s var(--ease);padding-bottom:1px}.entry h3 a,.contact-email>a{background-size:0 1px,0 1px}.introduction a:hover,.entry h3 a:hover,.contact-email>a:hover{background-size:100% 1px,100% 1px}.introduction a:focus-visible{background-size:100% 1px,100% 1px}.entry h3 a:focus-visible{background-size:100% 1px,100% 1px}.introduction p,.description,.detail-content p,.entry-points li,.skills dd{text-wrap:pretty}.introduction .location{color:var(--secondary);flex-wrap:wrap;align-items:center;gap:2px 13px;margin-top:22px;display:flex}.location>span{white-space:nowrap}.location-separator{color:#b8babf}.local-time{font-family:IBM Plex Mono,monospace;font-size:inherit;font-variant-numeric:tabular-nums;visibility:hidden;align-items:center;gap:8px;display:inline-flex}.local-time[data-ready=true]{visibility:visible}.local-clock{flex:none;overflow:visible}.clock-hand,.clock-seconds{transform-box:view-box;transform-origin:12px 12px}.clock-seconds{animation:60s linear infinite sweep}@keyframes sweep{to{transform:rotate(360deg)}}.clock-colon{animation:2s step-end infinite blink}@keyframes blink{50%{opacity:.2}}.time-relative{color:#909297;margin-left:-4px;animation:.5s .7s both fade-in}.time-relative:before{content:"·";color:#b8babf;margin-right:9px}@keyframes fade-in{0%{opacity:0}}.section{border-top:1px solid var(--line);margin-top:49px;padding-top:24px;position:relative}.section:before{content:"";background:var(--blue);width:24px;height:1px;position:absolute;top:-1px;left:0}.section>h2,.section-head{margin-bottom:25px}.section h2{gap:14px;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.mode-toggle{color:var(--secondary);gap:18px;display:flex}.mode-toggle button{min-height:32px;color:inherit;background:0 0;border:0;padding:0;transition:color .15s;position:relative}.mode-toggle button:after{content:"";background:var(--blue);transform-origin:100%;height:1px;transition:scale .32s var(--ease);position:absolute;bottom:3px;left:0;right:0;scale:0 1}.mode-toggle button:hover{color:var(--blue)}.mode-toggle button[aria-pressed=true]{color:var(--ink);cursor:default}.mode-toggle button[aria-pressed=true]:after{transform-origin:0;scale:1}.section-number{font-variant-numeric:tabular-nums;color:var(--blue);letter-spacing:-.04em;font-family:IBM Plex Mono,monospace}.section:before{transform-origin:0;transition:width .5s var(--ease)}.section:hover:before{width:48px}.entries{gap:34px;display:grid}.entry{grid-template-columns:var(--rail) minmax(0,1fr);gap:0 var(--rail-gap);transition:opacity .26s;display:grid}.entry-rail,.entry-body{min-width:0}.entry{position:relative}.entry-rail{transition:opacity .26s}.entry.is-morphing .entry-rail{opacity:0;transition-duration:.18s}.entry.is-morphing h3 .external-arrow{opacity:0}.entry.is-morphing h3 a{background-size:0 1px,0 1px;transition:none}.name-morph.is-morphing{color:#0000}.morph-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.morph-layer canvas{position:absolute}.morph-letter{white-space:pre;color:var(--ink);transform-origin:50%;will-change:transform,opacity;transition:color .16s;position:absolute;top:0;left:0}.morph-letter[data-tone=blue]{color:var(--blue)}@media (min-width:601px){.entry-rail{align-self:start;position:sticky;top:28px}}@media (hover:hover){.entries:has(>.entry:hover)>.entry:not(:hover){opacity:.42}}.date{color:var(--secondary);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-family:IBM Plex Mono,monospace}.date-range{cursor:default;border-radius:2px;outline:none;justify-items:start;display:inline-grid}.date-range>span{transition:opacity .22s ease,translate .22s var(--ease);grid-area:1/1}.date-length{opacity:0;color:var(--blue);translate:0 4px}.date-range:hover .date-label,.date-range:focus .date-label{opacity:0;translate:0 -4px}.date-range:hover .date-length,.date-range:focus .date-length{opacity:1;translate:0}.track{height:9px;margin-top:9px;display:block;position:relative}.track:before{content:"";background:var(--line);height:1px;position:absolute;top:4px;left:0;right:0}.track-tick{background:#d6d8d4;width:1px;height:7px;position:absolute;top:1px}.track-bar{background:var(--blue);transform-origin:0;height:3px;transition:scale .9s var(--ease) .12s;position:absolute;top:3px}.track[data-precision=year] .track-bar{background:repeating-linear-gradient(90deg,var(--blue) 0 4px,transparent 4px 6px)}.track-now{background:var(--blue);border-radius:50%;width:6px;height:6px;margin-left:-3px;transition:opacity .3s .85s;position:absolute;top:1.5px}.track-now:after{content:"";border:1px solid var(--blue);opacity:0;animation:ping 2.6s var(--ease) infinite;border-radius:50%;position:absolute;inset:-4px}@keyframes ping{0%{opacity:.7;scale:.4}70%,to{opacity:0;scale:1.25}}.track[data-state=waiting] .track-bar{transition:none;scale:0 1}.track[data-state=waiting] .track-now{opacity:0;transition:none}.entry-more{opacity:0;visibility:hidden;transition:grid-template-rows .42s var(--ease),opacity .22s ease,visibility 0s linear .42s;grid-template-rows:0fr;display:grid}.entry-more-inner{min-height:0;overflow:hidden}[data-mode=full] .entry-more{opacity:1;visibility:visible;transition:grid-template-rows .48s var(--ease) calc(var(--n,0) * 55ms),opacity .36s ease calc(var(--n,0) * 55ms + .12s),visibility 0s;grid-template-rows:1fr}.entry-points{color:#494b51;margin:0;padding:12px 0 0;list-style:none}.entry-points li{padding-left:20px;position:relative}.entry-points li+li{margin-top:10px}.entry-points li:before{content:"";background:var(--blue);width:8px;height:1px;position:absolute;top:.82em;left:3px}.role{color:var(--secondary);margin-top:2px}.description{color:#494b51;margin-top:12px}details{margin-top:10px}summary{cursor:pointer;width:fit-content;color:var(--secondary);align-items:center;gap:9px;min-height:36px;list-style:none;transition:color .12s;display:flex}summary::-webkit-details-marker{display:none}summary:before{content:"";width:12px;height:12px;transition:background-size .26s var(--ease),rotate .26s var(--ease);background:linear-gradient(currentColor,currentColor) 50%/10px 1.25px no-repeat,linear-gradient(currentColor,currentColor) 50%/1.25px 10px no-repeat;flex:none;display:block}details[open]>summary:before{background-size:10px 1.25px,1.25px 0;rotate:180deg}details::details-content{opacity:0;height:0;transition:height .34s var(--ease),opacity .26s ease,content-visibility .34s allow-discrete;overflow:clip}details[open]::details-content{opacity:1;height:auto}summary:hover,details[open]>summary{color:var(--blue)}.detail-content{color:#494b51;padding-top:8px}.detail-content p+p{margin-top:13px}.skills>div{grid-template-columns:var(--rail) 1fr;gap:var(--rail-gap);margin-bottom:16px;display:grid}.skills dt{color:var(--secondary)}.skills dd{color:#494b51}.footer{border-top:1px solid var(--line);color:var(--secondary);justify-content:space-between;align-items:center;gap:20px;margin-top:49px;padding:24px 0 48px;display:flex}.back-to-top{white-space:nowrap}.back-to-top span{transition:transform .12s;display:inline-block}.back-to-top:hover span{transform:translateY(-2px)}.section-index{display:none}.contact-email{align-items:center;gap:6px;min-width:0;display:flex}.contact-email>a{overflow-wrap:anywhere;min-width:0}.copy-email{width:36px;height:36px;color:var(--secondary);background:0 0;border:0;border-radius:3px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .12s,background-color .12s;display:inline-flex}:is(.copy-email:hover,.copy-email:focus-visible){color:var(--blue);background:#eeefeb}.copy-email:active{transform:translateY(1px)}.copy-email[data-copied=true]{color:var(--blue)}.copy-email-icon{width:16px;height:16px;display:block}.sr-only,.copy-email-status{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;color:#fff;background:var(--ink);padding:12px 16px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.reveal{animation:reveal .7s var(--ease) backwards;animation-delay:calc(var(--i,0) * 70ms + 60ms)}@keyframes reveal{0%{opacity:0;filter:blur(3px);translate:0 8px}to{opacity:1;filter:blur();translate:0}}.scroll-progress{display:none}@supports (animation-timeline:scroll()){.scroll-progress{z-index:10;background:var(--blue);transform-origin:0;width:100%;height:2px;animation:linear both progress;animation-timeline:scroll(root);display:block;position:fixed;top:0;left:0}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}@media (min-width:1280px){.section-index{flex-direction:column;align-items:flex-start;gap:7px;display:flex;position:fixed;top:140px;left:calc(50% - 570px)}.section-index a{color:var(--secondary);align-items:center;gap:10px;padding:3px 0;display:flex}.section-index .section-number{color:#a3a5aa;transition:color .16s}.index-tick{width:8px;height:1px;transition:width .36s var(--ease),background-color .16s ease;background:#c2c4c8}:is(.section-index a:hover,.section-index a:focus-visible,.section-index a[aria-current]){color:var(--ink)}.section-index a:hover .index-tick,.section-index a[aria-current] .index-tick{background:var(--blue);width:22px}.section-index a:hover .section-number,.section-index a[aria-current] .section-number{color:var(--blue)}}@media (max-width:600px){.page{width:calc(100% - 40px)}.header{gap:16px;padding-top:30px}.header nav{gap:17px}.introduction{margin-top:30px}.section{margin-top:36px;padding-top:22px}.section>h2,.section-head{margin-bottom:23px}.entry{grid-template-columns:minmax(0,1fr)}.entry-rail{flex-wrap:wrap;align-items:center;gap:0 14px;margin-bottom:5px;display:flex}.track{flex:none;width:104px;margin:0 0 0 auto}.role{margin-top:4px}.description{margin-top:10px}.entries{gap:30px}.skills>div{margin-bottom:19px;display:block}.skills dd{margin-top:4px}.footer{margin-top:36px;padding-bottom:35px;display:block}.footer>a{width:fit-content;display:block}.footer>.back-to-top{margin-top:11px}}@media (max-width:480px){.time-relative{flex-basis:100%;margin-left:0}.time-relative:before{display:none}.header{flex-wrap:wrap;row-gap:14px}.header nav{width:100%;padding-left:49px}}@media (max-width:360px){.page{width:calc(100% - 32px)}.header{display:block}.header nav{gap:22px;margin-top:14px}.track{width:84px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{:root{--paper:#fff;--ink:#000;--secondary:#444;--line:#ddd}html{scrollbar-gutter:auto}body{font-size:11pt;line-height:1.5}.page{width:100%;max-width:none}.header{padding-top:0}.monogram-button,.local-time,.time-relative,.location-separator,.scroll-progress,.section-number{display:none!important}.reveal{animation:none}.header nav,.section-index,.skip-link,.copy-email,.back-to-top{display:none!important}.introduction{margin-top:20px}.section{margin-top:24px;padding-top:16px}.section>h2,.section-head,.entry h3,.role{break-after:avoid}.entries{gap:20px}.entry{grid-template-columns:150px 1fr;opacity:1!important}.mode-toggle,.track-now,.morph-layer{display:none!important}.entry-more{opacity:1!important;visibility:visible!important;grid-template-rows:1fr!important}details::details-content{content-visibility:visible!important;height:auto!important;display:block!important}details>summary{display:none}details>.detail-content{display:block!important}.footer{margin-top:24px;padding-bottom:0}a{color:inherit!important;text-decoration:none!important}}
