@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_de7b2fa9-module__1ltb7q__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_de7b2fa9-module__1ltb7q__variable{--font-manrope:"Manrope", "Manrope Fallback"}
@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4ba802ed8e67eac5-s.04ygcc0k6zvvf.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:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d7a0600e467cf0bd-s.18awt9904y5ei.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/dc0d9adbac686440-s.p.0~z396rbj0t4w.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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8f2b92a9960dd69-s.09-.4z_6a6fti.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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28e60ca39c9ae554-s.1841exvy3.1-g.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8d05cfa5faa8406c-s.p.0kbulo~7o8gic.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:Space Mono Fallback;src:local(Arial);ascent-override:81.58%;descent-override:26.3%;line-gap-override:0.0%;size-adjust:137.28%}.space_mono_55c10f5f-module__70Rwca__className{font-family:Space Mono,Space Mono Fallback;font-style:normal}.space_mono_55c10f5f-module__70Rwca__variable{--font-space-mono:"Space Mono", "Space Mono Fallback"}
:root{--ink:#f5f7fb;--muted:#99a1ad;--line:#ffffff1f;--blue:#2f80ff;--blue-bright:#69a2ff;--bg:#090b0f;--panel:#101319;--paper:#eef0f3;--paper-muted:#606977}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:88px}body{color:var(--ink);background:var(--bg);font-family:var(--font-manrope), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%}::selection{color:#fff;background:var(--blue)}.skip-link{z-index:100;color:#fff;background:var(--blue);padding:12px 16px;transition:transform .2s;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}a:focus-visible,summary:focus-visible{outline:2px solid var(--blue-bright);outline-offset:5px}.site-nav{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#090b0fd6;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;height:82px;padding:0 clamp(24px,5vw,76px);display:grid;position:fixed;top:0;left:0}.wordmark{letter-spacing:-.06em;justify-self:start;font-size:1.42rem;font-weight:800}.wordmark span{color:var(--blue)}.nav-links{color:#cbd0d8;gap:clamp(23px,3vw,46px);font-size:.82rem;display:flex}.nav-links a,.text-link,.nav-cta,footer a{transition:color .25s}.nav-links a:hover,.text-link:hover,.nav-cta:hover,footer a:hover{color:var(--blue-bright)}.nav-cta{font:700 .73rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.06em;justify-self:end}.nav-cta span{color:var(--blue);margin-left:8px}.mobile-menu{display:none}.hero{isolation:isolate;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:center;gap:clamp(48px,7vw,120px);min-height:min(920px,100svh);padding:150px clamp(24px,5vw,76px) 94px;display:grid;position:relative;overflow:hidden}.hero:before{content:"";z-index:-2;background:radial-gradient(circle at 84% 28%,#2f80ff29,#0000 28%),linear-gradient(115deg,#0d1015,#090b0f 58%);position:absolute;inset:0}.hero-grid,.contact-grid{z-index:-1;opacity:.18;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:68px 68px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 88%);mask-image:linear-gradient(#000,#0000 88%)}.eyebrow{color:#b6bdc8;font:700 .69rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.14em;margin:0 0 24px}.eyebrow>span{vertical-align:middle;background:var(--blue);width:26px;height:1px;margin-right:12px;display:inline-block}.dark-eyebrow{color:#4c5664}.hero-copy{animation:.8s cubic-bezier(.16,1,.3,1) .1s both rise-in}.hero h1{letter-spacing:-.075em;max-width:950px;margin:0;font-size:clamp(3.2rem,7.1vw,7.2rem);font-weight:700;line-height:.94}.hero h1 span{color:#0000;-webkit-text-stroke:1px #f5f7fbb8;display:block}.hero-intro{max-width:670px;color:var(--muted);margin:34px 0 0;font-size:clamp(1rem,1.35vw,1.22rem);line-height:1.75}.hero-actions{align-items:center;gap:34px;margin-top:40px;display:flex}.button{min-height:58px;font:700 .71rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;gap:30px;padding:0 24px;display:inline-flex}.button-primary{color:#fff;background:var(--blue);transition:transform .25s,background .25s;box-shadow:0 16px 40px #2f80ff2e}.button-primary:hover{background:var(--blue-bright);transform:translateY(-2px)}.button-light{color:#0c0e12;border:1px solid #0c0e1266;margin-top:38px;transition:color .25s,background .25s}.button-light:hover{color:#fff;background:#0c0e12}.text-link{font-size:.84rem;font-weight:700}.text-link span{color:var(--blue);margin-left:8px}.hero-side{justify-self:end;width:min(100%,370px);animation:.8s cubic-bezier(.16,1,.3,1) .24s both rise-in}.portrait-frame{aspect-ratio:4/5;border:1px solid var(--line);background:#ffffff08;padding:12px;position:relative}.portrait-frame:before{content:"";z-index:-1;border:1px solid #2f80ff4d;position:absolute;inset:-9px 28px 30px -9px}.portrait-frame img{object-fit:cover;filter:grayscale()contrast(1.05);width:100%;height:100%;display:block}.portrait-label{background:var(--blue);padding:15px 20px;position:absolute;bottom:30px;left:-34px;box-shadow:0 16px 40px #0000004d}.portrait-label span{font:400 .58rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.12em;opacity:.8;margin-bottom:5px;display:block}.portrait-label strong{font-size:.84rem}.availability{color:var(--muted);font:400 .63rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.07em;text-align:center;margin-top:25px}.availability span{background:#49d17d;border-radius:50%;width:7px;height:7px;margin-right:9px;display:inline-block;box-shadow:0 0 0 5px #49d17d1a}.hero-footer{color:#636b77;font:700 .6rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.1em;gap:clamp(18px,3vw,46px);display:flex;position:absolute;bottom:28px;left:clamp(24px,5vw,76px)}.projects-section{color:#0b0d11;background:var(--paper);padding:clamp(90px,10vw,150px) clamp(24px,5vw,76px)}.section-intro{margin-bottom:clamp(65px,8vw,110px)}.split-intro{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:end;gap:clamp(40px,10vw,160px);display:grid}.section-intro h2,.about-section h2,.skills-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(2.8rem,5.4vw,5.6rem);line-height:.98}.split-intro>p{max-width:500px;color:var(--paper-muted);margin:0 0 4px;font-size:1rem;line-height:1.8}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(50px,7vw,100px) clamp(24px,4vw,64px);display:grid}.project-card{min-width:0;display:block}.project-card:nth-child(2n){margin-top:clamp(60px,7vw,110px)}.project-image{aspect-ratio:16/10;background:#d8dde4;margin-bottom:24px;position:relative;overflow:hidden}.project-image:after{content:"";opacity:.1;mix-blend-mode:color;transition:opacity .4s;position:absolute;inset:0}.accent-blue:after{background:#1268ff}.accent-violet:after{background:#821cff}.accent-gold:after{background:#ffad22}.accent-green:after{background:#38d67a}.accent-cyan:after{background:#21c4e6}.accent-red:after{background:#ff3f53}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s}.project-open{z-index:2;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#090b0fd1;place-items:center;width:46px;height:46px;transition:transform .35s;display:grid;position:absolute;top:18px;right:18px;transform:translateY(-70px)}a.project-card:hover .project-image img{filter:saturate(1.1);transform:scale(1.035)}a.project-card:hover .project-open{transform:translateY(0)}.project-meta{color:#606977;font:700 .61rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;gap:20px;margin-bottom:12px;display:flex}.project-meta span:first-child{color:var(--blue)}.project-card h3{letter-spacing:-.055em;margin:0;font-size:clamp(1.8rem,3.1vw,3.4rem)}.project-card>p{color:#606977;max-width:650px;margin:15px 0 19px;line-height:1.7}.project-card ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.project-card li{color:#4f5865;font:400 .58rem var(--font-space-mono), monospace;text-transform:uppercase;border:1px solid #0b0d112b;padding:7px 10px}.about-section{color:#0b0d11;background:#dfe3e8;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:clamp(60px,10vw,160px);padding:clamp(100px,12vw,180px) clamp(24px,9vw,150px);display:grid;position:relative;overflow:hidden}.about-number{color:#0000;-webkit-text-stroke:1px #0b0d1112;letter-spacing:-.12em;pointer-events:none;font-size:clamp(13rem,33vw,35rem);font-weight:800;line-height:1;position:absolute;top:-.25em;right:-.04em}.about-copy{z-index:1;position:relative}.about-section h2 em,.contact-section h2 em{color:var(--blue);font-style:normal}.about-lead{letter-spacing:-.025em;max-width:900px;margin:40px 0;font-size:clamp(1.25rem,2.2vw,2rem);line-height:1.55}.about-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;display:grid}.about-columns p{color:#59616c;margin:0;line-height:1.8}.metrics{z-index:1;border-top:1px solid #0b0d1133;align-self:center;position:relative}.metrics div{border-bottom:1px solid #0b0d1133;grid-template-columns:110px 1fr;align-items:center;gap:20px;padding:24px 0;display:grid}.metrics strong{color:var(--blue);letter-spacing:-.07em;font-size:clamp(2.5rem,4vw,4.5rem);line-height:1}.metrics span{color:#525b67;max-width:150px;font:700 .64rem/1.5 var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.06em}.experience-section{background:#0c0f14;padding:clamp(100px,11vw,170px) clamp(24px,5vw,76px)}.light-intro>p{color:#8d96a3}.light-intro h2{color:#fff}.timeline{border-top:1px solid var(--line)}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(100px,.55fr) minmax(230px,.85fr) minmax(280px,1.1fr);align-items:start;gap:clamp(22px,4vw,70px);padding:34px 0;transition:background .25s,padding .25s;display:grid}.timeline-row:hover{background:#ffffff06;padding-left:15px;padding-right:15px}.timeline-index,.timeline-row time{color:#78818e;font:400 .62rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.08em}.timeline-index{color:var(--blue)}.timeline-row h3{letter-spacing:-.035em;margin:-5px 0 8px;font-size:clamp(1.15rem,1.7vw,1.7rem)}.timeline-row h4{color:#98a1ae;text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.73rem;font-weight:600}.timeline-row>p{color:#8e97a4;margin:0;line-height:1.72}.skills-section{color:#0b0d11;background:#f5f6f8;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:clamp(60px,9vw,150px);padding:clamp(100px,11vw,170px) clamp(24px,5vw,76px);display:grid}.skills-heading{align-self:start;position:sticky;top:120px}.skill-groups{border-top:1px solid #0b0d1133}.skill-group{border-bottom:1px solid #0b0d1133;grid-template-columns:minmax(130px,.6fr) minmax(0,1.4fr);gap:30px;padding:30px 0;display:grid}.skill-group>div{align-items:baseline;gap:17px;display:flex}.skill-group>div span{color:var(--blue);font:700 .62rem var(--font-space-mono), monospace}.skill-group h3{letter-spacing:-.03em;margin:0;font-size:1.22rem}.skill-group ul{flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none;display:flex}.skill-group li{color:#4d5662;font:400 .6rem var(--font-space-mono), monospace;text-transform:uppercase;border:1px solid #0b0d112b;padding:9px 12px}.contact-section{isolation:isolate;text-align:center;background:radial-gradient(circle,#2f80ff21,#0000 34%),#090b0f;flex-direction:column;justify-content:center;align-items:center;min-height:720px;padding:clamp(110px,13vw,190px) 24px 95px;display:flex;position:relative;overflow:hidden}.contact-grid{-webkit-mask-image:radial-gradient(circle,#000,#0000 70%);mask-image:radial-gradient(circle,#000,#0000 70%)}.contact-section h2{letter-spacing:-.075em;max-width:1100px;margin:0;font-size:clamp(3.3rem,7.6vw,8rem);line-height:.94}.contact-section>p:not(.eyebrow){color:#979fac;max-width:650px;margin:34px auto;font-size:1rem;line-height:1.8}.contact-email{color:#fff;border-bottom:1px solid var(--blue);font:700 clamp(.85rem,1.3vw,1.15rem) var(--font-space-mono), monospace;padding-bottom:8px;transition:color .25s;display:inline-block}.contact-email:hover{color:var(--blue-bright)}.contact-email span{color:var(--blue);margin-left:10px}.contact-details{color:#626b78;font:700 .58rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.09em;justify-content:space-between;gap:24px;display:flex;position:absolute;bottom:30px;left:clamp(24px,5vw,76px);right:clamp(24px,5vw,76px)}.contact-details a{color:#aab1bb}footer{color:#7d8591;border-top:1px solid var(--line);min-height:110px;font:400 .63rem var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.06em;background:#090b0f;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:0 clamp(24px,5vw,76px);display:grid}footer p{margin:0}footer>a:last-child{color:#aeb5bf;justify-self:end}footer>a:last-child span{color:var(--blue);margin-left:7px}@keyframes rise-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:140px}.hero-side{justify-self:start;width:min(72vw,370px);margin:10px 0 55px 34px}.hero-footer{flex-wrap:wrap;grid-column:1;position:static}.about-section{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(3,1fr);display:grid}.metrics div{border-right:1px solid #0b0d1133;display:block}.metrics span{margin-top:10px;display:block}.timeline-row{grid-template-columns:32px 100px minmax(220px,.8fr) minmax(250px,1.2fr);gap:22px}.skills-section{grid-template-columns:1fr}.skills-heading{position:static}}@media (max-width:760px){html{scroll-padding-top:74px}.site-nav{grid-template-columns:1fr auto;height:74px}.nav-links,.nav-cta{display:none}.mobile-menu{justify-self:end;display:block}.mobile-menu summary{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:38px;height:38px;list-style:none;display:flex}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{background:#fff;width:23px;height:1px;transition:transform .25s}.mobile-menu[open] summary span:first-child{transform:translateY(4px)rotate(45deg)}.mobile-menu[open] summary span:last-child{transform:translateY(-4px)rotate(-45deg)}.mobile-menu>div{border-bottom:1px solid var(--line);background:#0b0e13;flex-direction:column;padding:25px 24px 32px;display:flex;position:fixed;top:74px;left:0;right:0}.mobile-menu>div a{border-bottom:1px solid var(--line);padding:14px 0;font-size:1.25rem}.hero{padding-top:118px}.hero h1{font-size:clamp(3.15rem,15.5vw,5rem)}.hero-intro{font-size:1rem}.hero-actions{flex-direction:column;align-items:flex-start;gap:22px}.hero-side{width:calc(100% - 34px)}.hero-footer{gap:15px 24px}.split-intro,.projects-grid,.about-columns{grid-template-columns:1fr}.project-card:nth-child(2n){margin-top:0}.about-section{padding-left:24px;padding-right:24px}.metrics{grid-template-columns:1fr}.metrics div{border-right:0;display:grid}.timeline-row{grid-template-columns:30px 1fr}.timeline-row time{text-align:right}.timeline-row>div,.timeline-row>p{grid-column:2}.skill-group{grid-template-columns:1fr}.contact-section{min-height:680px}.contact-details{flex-direction:column;align-items:center;margin-top:70px;position:static}footer{grid-template-columns:1fr auto;padding-top:25px;padding-bottom:25px}footer p{order:3;grid-column:1/-1}}@media (max-width:420px){.portrait-label{left:-15px}.section-intro h2,.about-section h2,.skills-heading h2{font-size:2.65rem}.project-card h3{font-size:2rem}.metrics div{grid-template-columns:90px 1fr}.contact-section h2{font-size:3.15rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
