@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1e219c03c996efbd-s.2qo5md4hn_gum.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.1d9rlgtqyj_-l.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/03bda585a99c6450-s.32sris142tqlb.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1e219c03c996efbd-s.2qo5md4hn_gum.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.1d9rlgtqyj_-l.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/03bda585a99c6450-s.32sris142tqlb.woff2)format("woff2");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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_2d1f3e3a-module__M9Wtfq__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_2d1f3e3a-module__M9Wtfq__variable{--cv-font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_1a54f8df-module__letF1G__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_1a54f8df-module__letF1G__variable{--cv-font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@page{size:A4;margin:10mm 12mm}html:has(.cv-root){scroll-snap-type:none}:where(.cv-root) :where(h1,h2,h3,p,ul,ol,dl,dd){margin:0}:where(.cv-root) :where(ul,ol){padding:0;list-style:none}@media screen{.cv-root{--cv-fg:#f4f4f8;--cv-text:#d3d5e8;--cv-mute:#b6b9d4;--cv-blue:#9fb8ff;--cv-violet:#c9b8ff;--cv-gold:#e9c270;--cv-line:#ffffff14;--cv-display:var(--font-heading);--cv-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--cv-panel-tint:#070a18b8;min-height:100vh;color:var(--cv-text);overflow-wrap:break-word;counter-reset:cv-section cv-card;font-size:1rem;line-height:1.65;position:relative}.cv-root a{color:var(--cv-blue);text-decoration:none}.cv-root a:hover{color:#fff}.cv-cosmos{z-index:0;pointer-events:none;background:var(--scene-bg,#040612);position:fixed;inset:0;overflow:hidden}.cv-cosmos>div{pointer-events:none;position:absolute}.cv-cosmos__nebula{filter:saturate(115%);background:radial-gradient(48% 40% at 82% 14%,#5b8cff52,#0000 70%),radial-gradient(34% 30% at 66% 30%,#9b7bff33,#0000 70%),radial-gradient(46% 42% at 10% 82%,#9b7bff4d,#0000 70%),radial-gradient(30% 26% at 26% 64%,#5b8cff1f,#0000 70%),radial-gradient(60% 30% at 58% 100%,#e9c27029,#0000 70%),radial-gradient(22% 18% at 40% 18%,#c9b8ff12,#0000 70%);inset:-10%}.cv-cosmos__aurora{opacity:.75;background:linear-gradient(118deg,#0000 30%,#5b8cff1a 40%,#9b7bff24 47%,#e9c2700f 53%,#0000 62%);inset:-20% -10%}.cv-cosmos__stars{opacity:.75;background-image:radial-gradient(1px 1px at 24px 36px,#ffffffd9,#0000 70%),radial-gradient(1px 1px at 132px 88px,#c8d6ffb3,#0000 70%),radial-gradient(1px 1px at 196px 172px,#fffc,#0000 70%),radial-gradient(1px 1px at 78px 204px,#c9b8ffb3,#0000 70%),radial-gradient(1px 1px at 168px 18px,#fff9,#0000 70%),radial-gradient(1px 1px at 218px 120px,#ffffff80,#0000 70%),radial-gradient(1px 1px at 52px 140px,#ffffff8c,#0000 70%),radial-gradient(1px 1px at 150px 226px,#c8d6ff99,#0000 70%),radial-gradient(1px 1px at 110px 60px,#ffffff73,#0000 70%);background-size:240px 240px;inset:0}.cv-cosmos__stars--near{opacity:.85;background-image:radial-gradient(1.8px 1.8px at 90px 120px,#e9c270f2,#0000 70%),radial-gradient(1.6px 1.6px at 380px 300px,#9fb8fff2,#0000 70%),radial-gradient(1.3px 1.3px at 300px 430px,#ffffffe6,#0000 70%),radial-gradient(2.2px 2.2px at 440px 64px,#ffffffd9,#0000 70%),radial-gradient(1.5px 1.5px at 200px 250px,#c9b8ffe6,#0000 70%);background-position:60px 80px;background-size:520px 520px}.cv-cosmos__vignette{background:radial-gradient(120% 90% at 50% 40%,#0000 55%,#02030a99 100%);inset:0}.cv-sheet,.cv-index{z-index:10;width:100%;max-width:62rem;margin:0 auto;padding:6.25rem clamp(1rem,4vw,2.5rem) 4.5rem;position:relative}.cv-sheet:focus,.cv-index:focus{outline:none}.cv-head,.cv-section,.cv-card{background:linear-gradient(155deg, #ffffff0f, #ffffff03 40%, transparent 70%), radial-gradient(120% 90% at 0% 0%, #5b8cff14, transparent 60%), var(--cv-panel-tint);border:1px solid #b2c4ff29;border-radius:1.15rem;position:relative;box-shadow:inset 0 1px #ffffff1a,0 18px 48px #00000047,0 0 36px #5b8cff0f}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.cv-root{--cv-panel-tint:#080c1e4d}.cv-head,.cv-section,.cv-card{-webkit-backdrop-filter:blur(14px)saturate(150%);backdrop-filter:blur(14px)saturate(150%)}}.cv-bar{gap:1rem;margin-bottom:1.4rem;display:grid}.cv-bar__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;display:flex}.cv-root .cv-bar__home{color:#fff;margin-bottom:0}.cv-root .cv-bar__pdf{color:#fff;background:#0c0e1eb8;border:1px solid #e9c27061;border-radius:.9rem;flex-direction:column;align-items:flex-start;gap:.3rem;min-height:48px;padding:.7rem 1.15rem;display:inline-flex;box-shadow:0 0 26px #e9c27014}.cv-bar__pdf-badge{font:600 .6rem/1.4 var(--cv-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cv-gold)}.cv-bar__pdf-text{font-size:.95rem;font-weight:600}.cv-bar__versions ul{flex-wrap:wrap;gap:.45rem;display:flex}.cv-root .cv-bar__versions a{min-height:2.5rem;color:var(--cv-mute);background:#0c0e1eb3;border:1px solid #ffffff1a;border-radius:999px;align-items:center;padding:.35rem .95rem;font-size:.85rem;display:inline-flex}.cv-root .cv-bar__versions a:hover{color:#fff;border-color:#7aa2ff66}.cv-root .cv-bar__versions a[aria-current=page]{color:#fff;background:linear-gradient(135deg,#5b8cff4d,#9b7bff38);border-color:#7aa2ffa6;box-shadow:0 0 22px #5b8cff38}.cv-head{flex-direction:column;padding:clamp(1.6rem,4.5vw,2.9rem);display:flex;overflow:hidden}.cv-head h1{font:400 clamp(2.4rem, 6.4vw, 4.4rem) / 1.02 var(--cv-display);letter-spacing:-.02em;color:#fff;text-shadow:0 0 30px #5b8cff73}.cv-head__headline{color:#dfe6ff;max-width:46rem;margin-top:.9rem;font-size:clamp(1.02rem,1.8vw,1.2rem);line-height:1.5}.cv-head__location{font:.72rem/1.6 var(--cv-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--cv-blue);order:-1;margin-bottom:.9rem}.cv-head__contacts{flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;display:flex}.cv-root .cv-head__contacts a{color:#dfe6ff;min-height:2.25rem;font:.76rem/1.4 var(--cv-mono);overflow-wrap:anywhere;background:#ffffff0a;border:1px solid #ffffff29;border-radius:999px;align-items:center;padding:.3rem .85rem;display:inline-flex}.cv-root .cv-head__contacts a:hover{color:#fff;border-color:#7aa2ff8c}.cv-section{margin-top:1rem;padding:clamp(1.3rem,3.5vw,2.1rem)}.cv-section h2{font:400 clamp(1.5rem, 2.8vw, 2rem) / 1.12 var(--cv-display);letter-spacing:-.015em;color:#fff;margin-bottom:1.25rem;padding-bottom:.85rem;position:relative}.cv-section h2:before{counter-increment:cv-section;content:counter(cv-section, decimal-leading-zero);content:counter(cv-section, decimal-leading-zero) / "";font:600 .66rem/1.4 var(--cv-mono);letter-spacing:.2em;color:var(--cv-gold);margin-bottom:.45rem;display:block}.cv-section h2:after{content:"";background:linear-gradient(90deg,#7aa2ffb3,#9b7bff59,#0000);width:min(100%,14rem);height:1px;position:absolute;bottom:0;left:0}.cv-summary{max-width:52rem;font-size:1.04rem;line-height:1.78}.cv-skills__row{border-top:1px solid var(--cv-line);grid-template-columns:13rem minmax(0,1fr);gap:1.25rem;padding:.7rem 0;display:grid}.cv-skills__row:first-child{border-top:0;padding-top:0}.cv-skills dt{font:600 .7rem/1.6 var(--cv-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cv-violet);padding-top:.2rem}.cv-list{gap:1.1rem;display:grid}.cv-entry__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.2rem 1rem;display:flex}.cv-entry h3{color:var(--cv-fg);font-size:1.06rem;font-weight:600;line-height:1.4}.cv-entry__org{color:var(--cv-violet);font-weight:500}.cv-entry__meta{font:.74rem/1.6 var(--cv-mono);letter-spacing:.04em;color:var(--cv-gold)}.cv-bullets{gap:.4rem;margin-top:.55rem;display:grid}.cv-bullets li{padding-left:1.15rem;font-size:.95rem;position:relative}.cv-bullets li:before{content:"";background:var(--cv-blue);border-radius:50%;width:.36rem;height:.36rem;position:absolute;top:.66em;left:.1rem;box-shadow:0 0 8px #7aa2ffcc}.cv-section--experience .cv-list{gap:1.6rem;padding-left:1.75rem;position:relative}.cv-section--experience .cv-list:before{content:"";background:linear-gradient(#7aa2ffbf,#9b7bff73 55%,#e9c27040);width:1px;position:absolute;top:.45rem;bottom:.45rem;left:.3rem}.cv-section--experience .cv-entry{position:relative}.cv-section--experience .cv-entry:before{content:"";border:2px solid var(--cv-blue);background:#0a0e22;border-radius:50%;width:11px;height:11px;position:absolute;top:.42rem;left:calc(-1.45rem - 5px);box-shadow:0 0 12px #7aa2ffb3}.cv-section--experience .cv-entry:first-child:before{border-color:var(--cv-gold);box-shadow:0 0 14px #e9c270bf}.cv-section--projects .cv-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.cv-section--projects .cv-entry{background:#13132899;border-left:2px solid #ae96ef8c;border-radius:.3rem .8rem .8rem .3rem;min-width:0;padding:1rem 1.15rem}.cv-section--projects .cv-entry h3{font-size:.98rem}.cv-section--projects .cv-entry p{color:var(--cv-mute);margin-top:.35rem;font-size:.88rem;line-height:1.65}.cv-section--projects .cv-entry a{font-family:var(--cv-mono);overflow-wrap:anywhere;font-size:.78rem}.cv-section--education .cv-entry h3{font:400 1.25rem/1.3 var(--cv-display)}.cv-certs{display:grid}.cv-certs li{border-top:1px solid var(--cv-line);color:var(--cv-mute);padding:.6rem 0;font-size:.93rem}.cv-certs li:first-child{border-top:0;padding-top:0}.cv-certs__name{color:var(--cv-fg);font-weight:600}.cv-certs__period{font:.74rem var(--cv-mono);color:var(--cv-gold)}.cv-index__head{padding:clamp(1.5rem,5vw,3rem) .25rem .5rem}.cv-index__eyebrow{font:.72rem/1.6 var(--cv-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--cv-blue)}.cv-index__head h1{font:400 clamp(3rem, 9vw, 5.6rem) / 1 var(--cv-display);letter-spacing:-.025em;color:#fff;text-shadow:0 0 34px #5b8cff73;margin-top:.7rem}.cv-index__intro{max-width:40rem;color:var(--cv-text);margin-top:1.1rem;font-size:1.08rem;line-height:1.7}.cv-index__list{grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr));gap:1.1rem;margin-top:2.6rem;display:grid}.cv-index__item{display:flex}.cv-root .cv-card{min-height:11.5rem;color:inherit;isolation:isolate;flex-direction:column;flex:auto;padding:1.5rem 1.55rem 1.45rem;display:flex;overflow:hidden}.cv-card:before{counter-increment:cv-card;content:counter(cv-card, decimal-leading-zero);content:counter(cv-card, decimal-leading-zero) / "";font:600 .68rem/1.4 var(--cv-mono);letter-spacing:.2em;color:var(--cv-gold)}.cv-card:after{content:"";z-index:-1;border-radius:inherit;opacity:0;background:radial-gradient(80% 70% at 100% 0,#9b7bff33,#0000 70%);position:absolute;inset:0}.cv-card__title{font:400 1.7rem/1.15 var(--cv-display);letter-spacing:-.01em;color:#fff;margin-top:.8rem}.cv-card__headline{color:var(--cv-mute);margin-top:.65rem;font-size:.88rem;line-height:1.65}.cv-root .cv-card:hover,.cv-root .cv-card:focus-visible{color:inherit;border-color:#b2c4ff6b;box-shadow:inset 0 1px #ffffff29,0 16px 44px #00000057,0 0 32px #5b8cff2e}.cv-card:hover:after,.cv-card:focus-visible:after{opacity:1}.cv-root .cv-card:focus-visible{outline:2px solid var(--cv-gold);outline-offset:3px}@media (max-width:640px){.cv-root .cv-card{min-height:0}.cv-sheet,.cv-index{padding-top:5.5rem}.cv-skills__row{grid-template-columns:1fr;gap:.15rem}.cv-section--projects .cv-list{grid-template-columns:1fr}.cv-section--experience .cv-list{padding-left:1.4rem}.cv-section--experience .cv-entry:before{left:calc(-1.1rem - 5px)}.cv-bar{gap:.75rem}.cv-bar__top{flex-wrap:nowrap;gap:.6rem}.cv-root .cv-bar__home{white-space:nowrap;flex:0 auto;padding-right:1rem;font-size:.95rem}.cv-root .cv-bar__pdf{flex:0 auto;padding:.55rem .85rem}.cv-bar__pdf-text{white-space:nowrap;font-size:.85rem}.cv-bar__versions ul{gap:.4rem}.cv-root .cv-bar__versions a{padding:.3rem .8rem;font-size:.8rem}}@media (prefers-reduced-motion:no-preference){.cv-rise{animation:.68s cubic-bezier(.22,1,.36,1) both cv-rise;animation-delay:calc(min(var(--cv-rise-index,0), 8) * 65ms)}.cv-card:after{transition:opacity .26s}.cv-root .cv-bar__versions a,.cv-root .cv-head__contacts a{transition:color .16s,border-color .16s,background-color .16s,gap .16s}.cv-root .cv-bar__pdf,.cv-card{transition:transform .22s,border-color .22s,box-shadow .22s}@media (hover:hover){.cv-root .cv-bar__pdf:hover{border-color:#e9c270b3;transform:translateY(-3px);box-shadow:0 12px 32px #00000073,0 0 26px #e9c27033}.cv-card:hover{transform:translateY(-4px)}}}}@keyframes cv-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media print{.cv-cosmos,.cv-bar{display:none!important}body :not(.cv-root,.cv-root *,:has(.cv-root)){display:none!important}.cv-root{--cv-paper:#eef2f8;--cv-sheet:#fff;--cv-ink:#0c2546;--cv-ink-soft:#2b3b55;--cv-mute:#56657d;--cv-hairline:#d3dbe7;--cv-accent:#1f56d8;--cv-display:var(--cv-font-display), Georgia, "Times New Roman", serif;--cv-sans:var(--cv-font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;background:var(--cv-paper);min-height:100vh;color:var(--cv-ink-soft);font-family:var(--cv-sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;font-size:.97rem;line-height:1.55}:where(.cv-root) :where(h1,h2,h3,p,ul,ol,dl,dd){margin:0}:where(.cv-root) :where(ul,ol){padding:0;list-style:none}.cv-root a{color:var(--cv-accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.cv-root a:focus-visible{outline:2px solid var(--cv-accent);outline-offset:2px;border-radius:2px}.cv-sheet:focus{outline:none}.cv-doc{background:var(--cv-sheet);border:1px solid var(--cv-hairline);border-radius:4px;max-width:52rem;margin:0 auto;padding:3rem 3.25rem;box-shadow:0 18px 40px -28px #0c254659}.cv-head{border-bottom:2px solid var(--cv-ink);padding-bottom:1.1rem}.cv-head h1{font-family:var(--cv-display);color:var(--cv-ink);letter-spacing:-.01em;font-size:clamp(1.9rem,4vw,2.5rem);font-weight:500;line-height:1.1}.cv-head__headline{color:var(--cv-accent);margin-top:.45rem;font-size:1.02rem;font-weight:500}.cv-head__location{color:var(--cv-mute);margin-top:.4rem;font-size:.9rem}.cv-head__contacts{flex-wrap:wrap;gap:.2rem 1.1rem;margin-top:.35rem;font-size:.9rem;display:flex}.cv-head__contacts a{overflow-wrap:anywhere}.cv-section h2{letter-spacing:.12em;text-transform:uppercase;color:var(--cv-ink);border-bottom:1px solid var(--cv-hairline);margin-bottom:.6rem;padding-bottom:.3rem;font-size:.78rem;font-weight:600}.cv-summary{color:var(--cv-ink-soft)}.cv-skills{gap:.25rem;display:grid}.cv-skills__row{grid-template-columns:12.5rem 1fr;gap:1rem;display:grid}.cv-skills dt{color:var(--cv-ink);font-weight:600}.cv-list{gap:.85rem;display:grid}.cv-entry__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 1rem;display:flex}.cv-entry h3{color:var(--cv-ink);font-size:.98rem;font-weight:600}.cv-entry__org{color:var(--cv-ink-soft);font-weight:500}.cv-entry__meta{color:var(--cv-mute);white-space:nowrap;font-size:.86rem}.cv-bullets{gap:.2rem;margin-top:.3rem;display:grid}.cv-bullets li{padding-left:1rem;position:relative}.cv-bullets li:before{content:"";background:var(--cv-accent);border-radius:50%;width:.32rem;height:.32rem;position:absolute;top:.68em;left:.15rem}.cv-entry--compact p{margin-top:.1rem}.cv-certs{gap:.2rem;display:grid}.cv-certs__name{color:var(--cv-ink);font-weight:600}.cv-certs__period{color:var(--cv-mute)}.cv-index{max-width:52rem;margin:0 auto;padding:3rem 1.25rem 4rem}.cv-index:focus{outline:none}.cv-index__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--cv-mute);font-size:.8rem;font-weight:600}.cv-index__head h1{font-family:var(--cv-display);color:var(--cv-ink);margin-top:.4rem;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:500;line-height:1.05}.cv-index__intro{max-width:38rem;margin-top:.8rem;font-size:1.05rem}.cv-index__list{gap:.9rem;margin-top:2rem;display:grid}.cv-card{background:var(--cv-sheet);border:1px solid var(--cv-hairline);border-radius:6px;padding:1.1rem 1.3rem}.cv-card__title{font-family:var(--cv-display);color:var(--cv-ink);font-size:1.35rem;font-weight:500}.cv-root .cv-card{color:inherit;text-decoration:none;display:block}.cv-card__headline{color:var(--cv-mute);margin-top:.3rem;font-size:.92rem}.cv-root{background:#fff}html:has(.cv-root){background:#fff}html:has(.cv-root) body{background:#fff}.cv-root{color:#1d2a3f;min-height:0;font-size:9.6pt;line-height:1.32}.cv-bar{display:none}.cv-sheet{padding:0}.cv-doc{max-width:none;box-shadow:none;border:0;border-radius:0;padding:0}.cv-head{padding-bottom:7pt}.cv-head h1{font-size:21pt}.cv-head__headline{margin-top:3pt;font-size:10.5pt}.cv-head__location,.cv-head__contacts,.cv-entry__meta{font-size:9pt}.cv-root a{color:inherit;text-decoration:none}.cv-head__contacts a{color:var(--cv-accent)}.cv-section{margin-top:6pt}.cv-section h2{break-after:avoid;margin-bottom:4pt;padding-bottom:2pt;font-size:8.5pt}.cv-entry h3{font-size:9.8pt}.cv-list{gap:5pt}.cv-skills__row{grid-template-columns:33mm 1fr;gap:3mm}.cv-entry,.cv-skills__row,.cv-certs li{break-inside:avoid}.cv-entry__head{break-after:avoid}.cv-bullets{gap:1pt;margin-top:1.5pt}.cv-doc{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);column-gap:8mm;display:grid}.cv-doc>*{grid-column:1/-1}.cv-doc>.cv-section--education,.cv-doc>.cv-section--languages{grid-column:auto}.cv-doc>.cv-section--certifications{order:1}.cv-section--projects .cv-entry h3,.cv-section--projects .cv-entry p{display:inline}.cv-section--projects .cv-entry h3:after{content:": "}.cv-entry--compact+.cv-entry--compact{margin-top:0}.cv-section--projects .cv-list{gap:2pt}.cv-certs{display:block}.cv-certs li{display:inline}.cv-certs li+li:before{content:"  ·  ";color:var(--cv-mute)}}
