@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist:"Geist","Geist Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}:root{--ink:#111110;--ink-2:#1a1a19;--paper:#eeeae4;--paper-2:#d8d4ce;--muted:#9c9a96;--line:#3a3a38;--blue:#9bbcff;--orange:#ff7048;--shell:1280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--ink)}body{margin:0;color:var(--paper);font-family:var(--font-inter),Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;max-width:100%}::selection{background:var(--blue);color:var(--ink)}.shell{width:min(calc(100% - 48px),var(--shell));margin-inline:auto}.skip-link{position:fixed;left:16px;top:-80px;background:var(--paper);color:var(--ink);padding:12px 18px;z-index:1000}.skip-link:focus{top:16px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(17,17,16,.88);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-inner{height:76px;justify-content:space-between}.header-inner,.wordmark{display:flex;align-items:center}.wordmark{gap:12px;font:600 14px/1 var(--font-geist);letter-spacing:-.02em}.wordmark-mark{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--paper);font-size:10px;letter-spacing:.08em}.desktop-nav{display:flex;align-items:center;gap:30px;font:500 12px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.08em}.desktop-nav>a:not(.nav-cta){color:var(--muted);transition:.2s}.desktop-nav>a:not(.nav-cta):hover{color:var(--paper)}.nav-cta{border:1px solid var(--line);padding:12px 16px;display:flex;gap:18px}.nav-cta:hover{background:var(--paper);color:var(--ink)}.mobile-menu{display:none}.eyebrow{margin:0;font:600 11px/1.2 var(--font-geist);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;margin-right:8px;background:#73d89b;border-radius:50%;box-shadow:0 0 0 4px rgba(115,216,155,.1)}.hero{min-height:calc(100vh - 76px);display:grid;grid-template-columns:1.3fr .7fr;grid-gap:8vw;gap:8vw;align-items:center;padding-block:80px}.contact-copy h1,.hero-copy h1,.not-found h1,.page-intro h1{font:600 clamp(48px,6vw,88px)/.98 var(--font-geist);letter-spacing:-.065em;margin:28px 0}.contact-copy h1 em,.cta h2 em,.hero-copy h1 em{font-weight:400;color:var(--blue)}.hero-lead{max-width:670px;font-size:18px;color:#b9b7b2;border-left:1px solid var(--line);padding-left:20px}.actions{display:flex;gap:28px;margin-top:38px}.actions,.button{align-items:center}.button{display:inline-flex;justify-content:space-between;gap:38px;min-width:190px;padding:15px 18px;border:1px solid var(--paper);font:600 12px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:.2s}.button.light{background:var(--paper);color:var(--ink)}.button.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.button:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--blue)}.text-link{display:inline-flex;align-items:center;gap:10px;font:600 12px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);padding-block:8px}.text-link:hover{border-color:var(--blue);color:var(--blue)}.hero-visual{position:relative;aspect-ratio:4/5;min-height:460px;border:1px solid var(--line);overflow:hidden;background:var(--ink-2)}.visual-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:52px 52px;opacity:.28}.portrait-wrap{position:absolute;inset:70px 28px 42px;overflow:hidden;filter:grayscale(1);border:1px solid #4b4b49}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 20%;opacity:.87}.visual-label{position:absolute;left:18px;right:18px;display:flex;justify-content:space-between;font:500 10px/1 var(--font-geist);letter-spacing:.12em;color:var(--muted)}.visual-label.top{top:20px}.visual-label.bottom{bottom:18px}.ticker{overflow:hidden;border-block:1px solid var(--line);white-space:nowrap;color:var(--muted);font:500 11px/1 var(--font-geist);letter-spacing:.16em}.ticker div{padding:18px 0;width:max-content;animation:ticker 30s linear infinite}.ticker i{font-style:normal;color:var(--blue);padding:0 34px}@keyframes ticker{to{transform:translateX(-50%)}}.section{padding-block:130px}.section-heading{display:grid;grid-template-columns:1fr 1fr;grid-gap:40px;gap:40px;margin-bottom:70px}.cta h2,.section-heading h2,.sticky-copy h2{font:600 clamp(40px,5vw,70px)/1 var(--font-geist);letter-spacing:-.055em;margin:20px 0}.section-heading>p,.sticky-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;max-width:520px;align-self:end}.section-heading.horizontal{display:flex;justify-content:space-between;align-items:end}.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.pillar{position:relative;padding:34px;min-height:365px;border-right:1px solid var(--line);display:flex;flex-direction:column}.pillar:last-child{border:0}.pillar .number{font:500 11px/1 var(--font-geist);color:var(--muted)}.pillar-symbol{display:grid;place-items:center;width:52px;height:52px;margin:65px 0 34px;border:1px solid var(--line);color:var(--blue);font-size:23px}.pillar h3{font:600 23px/1.15 var(--font-geist);letter-spacing:-.03em;margin:0 0 16px}.pillar p{font-size:14px;color:var(--muted);margin:0}.inverse{background:var(--paper);color:var(--ink)}.inverse .eyebrow,.inverse .section-heading>p{color:#6d6b67}.inverse .text-link{border-color:#b7b3ad}.home-projects{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:auto auto;grid-gap:12px;gap:12px}.home-project{position:relative;background:var(--ink);color:var(--paper);border:1px solid #272725;padding:20px;display:grid;grid-template-columns:50px 180px 1fr auto;grid-gap:24px;gap:24px;align-items:center;min-height:245px;transition:.25s}.home-project:hover{background:#20201f;transform:translateY(-3px)}.home-project.project-1{grid-column:1/-1}.project-art{height:150px;background:radial-gradient(circle at 30% 30%,#5d719f,transparent 35%),repeating-linear-gradient(45deg,#242422 0 1px,transparent 1px 14px);border:1px solid var(--line);display:grid;place-items:center}.project-art span{font:500 10px/1 var(--font-geist);letter-spacing:.14em;border:1px solid var(--line);padding:7px;background:var(--ink)}.project-index{align-self:start;font:500 11px/1 var(--font-geist);color:var(--muted)}.home-project h3{font:600 26px/1.1 var(--font-geist);letter-spacing:-.035em;margin:0 0 12px}.home-project p{font-size:14px;color:var(--muted);max-width:560px}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:26px}.tag-row span{border:1px solid var(--line);padding:6px 9px;font:500 10px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.07em}.split-section{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:10vw;gap:10vw}.sticky-copy{align-self:start;position:-webkit-sticky;position:sticky;top:120px}.sticky-copy .text-link{margin-top:28px}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:50px 1fr;grid-gap:28px;gap:28px;padding:36px 0;border-bottom:1px solid var(--line)}.timeline-index{font:500 11px/1 var(--font-geist);color:var(--muted)}.timeline h3{font:600 26px/1.15 var(--font-geist);letter-spacing:-.03em;margin:10px 0 2px}.timeline p{color:var(--muted);font-size:14px}.experience-list .org,.timeline .org{color:var(--blue);margin:0 0 18px}.courses-band{background:var(--paper-2);color:var(--ink)}.courses-band .eyebrow{color:#66645f}.course-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.course-card{border:1px solid;padding:36px;min-height:430px;display:flex;flex-direction:column}.course-card h3{font:600 30px/1.1 var(--font-geist);letter-spacing:-.04em;margin:60px 0 16px}.course-card>p:not(.eyebrow){color:#686660}.inverse .course-card>p:not(.eyebrow){color:#aaa7a2}.course-card ul{list-style:none;padding:0;margin:25px 0 34px}.course-card li{padding:9px 0;border-bottom:1px solid rgba(128,128,128,.35);font-size:13px}.course-card li:before{content:"↳";margin-right:10px;color:var(--blue)}.course-card .button{margin-top:auto;align-self:start}.cta{text-align:center;padding-block:160px}.cta h2{font-size:clamp(54px,8vw,110px);margin:28px 0 50px}.page-intro{padding-block:110px 90px;border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(60px,8vw,112px);max-width:1000px}.page-intro-copy{font-size:20px;color:var(--muted);max-width:690px;margin-left:auto}.project-mosaic{padding-block:80px 130px;display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.project-card{background:var(--ink-2);border:1px solid var(--line);padding:34px;min-height:410px;display:flex;flex-direction:column}.project-card.featured{grid-column:span 2;min-height:460px}.card-top{display:flex;justify-content:space-between;color:var(--muted);font:500 11px/1 var(--font-geist)}.project-card h2{font:600 clamp(30px,4vw,55px)/1 var(--font-geist);letter-spacing:-.05em;margin:55px 0}.project-columns{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:40px;gap:40px}.project-columns>div,.project-summary{border-left:1px solid var(--line);padding-left:20px}.project-columns p:not(.eyebrow),.project-summary p:not(.eyebrow){color:#c3c0bb;font-size:15px}.project-card .tag-row{margin-top:auto}.experience-list{padding-block:70px 140px}.experience-list article{display:grid;grid-template-columns:160px 1fr;border-top:1px solid var(--line);padding:48px 0}.experience-rail{display:flex;align-items:flex-start;gap:18px;font:500 11px/1 var(--font-geist);color:var(--muted)}.experience-rail i{width:58px;height:1px;background:var(--line);margin-top:5px}.experience-main{max-width:800px}.experience-main h2{font:600 clamp(34px,4vw,58px)/1 var(--font-geist);letter-spacing:-.05em;margin:18px 0 8px}.experience-copy{font-size:18px;color:#b4b1ac}.education-block{padding-block:80px 130px}.education-degree{display:grid;grid-template-columns:.4fr 1fr 1fr;grid-gap:30px;gap:30px;padding-bottom:70px}.education-degree h2{font:600 35px/1.1 var(--font-geist);margin:0}.education-degree>p:last-child{color:var(--muted);margin:0}.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.cert-grid article{padding:30px;border-right:1px solid var(--line);min-height:230px}.cert-grid article:last-child{border:0}.cert-grid span{font:500 11px/1 var(--font-geist);color:var(--muted)}.cert-grid h3{font:600 21px/1.15 var(--font-geist);margin:60px 0 12px}.cert-grid p{font-size:14px;color:var(--muted)}.contact-page{padding-block:100px 140px;display:grid;grid-template-columns:1fr 1fr;grid-gap:8vw;gap:8vw}.contact-copy>p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:530px}.direct-email{display:block;border:1px solid var(--line);padding:22px;margin:48px 0;font:600 18px/1.5 var(--font-geist);word-break:break-word}.direct-email small{display:block;color:var(--muted);font:600 10px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.social-list{border:1px solid var(--line);padding:26px}.social-list>a{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}.social-list>a:last-child{border:0}.contact-form{border:1px solid var(--line);background:var(--ink-2);padding:36px;align-self:start}.form-heading h2{font:600 30px/1.1 var(--font-geist);letter-spacing:-.04em;margin:12px 0 32px}.contact-form label{display:block;margin-bottom:20px;font:500 11px/1 var(--font-geist);letter-spacing:.08em;text-transform:uppercase}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:9px;background:var(--ink);border:1px solid var(--line);color:var(--paper);padding:14px 15px;outline:0;text-transform:none;letter-spacing:0}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--blue)}.contact-form textarea{resize:vertical}.contact-form .button{width:100%}.form-status{text-align:center;color:var(--muted);font-size:11px;margin:18px 0 0}.not-found{min-height:70vh;padding-block:120px}.not-found p:not(.eyebrow){color:var(--muted);font-size:18px;margin-bottom:30px}.site-footer{background:#0c0c0b;border-top:1px solid var(--line);padding-block:75px}.footer-grid{display:grid;grid-template-columns:1.4fr .6fr;grid-gap:60px;gap:60px}.footer-email{font:600 clamp(23px,4vw,50px)/1 var(--font-geist);letter-spacing:-.04em;display:block;margin-top:18px}.footer-links{display:flex;flex-direction:column}.footer-links a{padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.footer-bottom,.footer-links a{display:flex;justify-content:space-between}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px;color:var(--muted);font:500 10px/1 var(--font-geist);text-transform:uppercase;letter-spacing:.1em}@media(max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{list-style:none;width:38px;height:38px;border:1px solid var(--line);display:grid;place-content:center;grid-gap:6px;gap:6px;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;width:16px;height:1px;background:var(--paper)}.mobile-menu nav{position:fixed;top:76px;left:0;right:0;background:var(--ink);border-bottom:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column}.mobile-menu nav a{padding:17px 0;border-bottom:1px solid var(--line);font:600 22px/1 var(--font-geist)}.mobile-menu nav small{display:inline-block;width:44px;color:var(--muted);font-size:10px}.hero{grid-template-columns:1fr;min-height:auto}.hero-visual{min-height:520px;width:min(100%,520px)}.cert-grid,.pillar-grid{grid-template-columns:1fr}.cert-grid article,.pillar{border-right:0;border-bottom:1px solid var(--line)}.home-projects{grid-template-columns:1fr}.home-project.project-1{grid-column:auto}.home-project{grid-template-columns:35px 120px 1fr auto}.split-section{grid-template-columns:1fr}.sticky-copy{position:static}.project-mosaic{grid-template-columns:1fr}.project-card.featured{grid-column:auto}.contact-page,.education-degree,.project-columns{grid-template-columns:1fr}.page-intro-copy{margin-left:0}.section-heading{grid-template-columns:1fr}}@media(max-width:620px){.shell{width:min(calc(100% - 32px),var(--shell))}.header-inner{height:68px}.wordmark>span:last-child{display:none}.mobile-menu nav{top:68px}.hero{padding-block:55px;gap:50px}.hero-copy h1{font-size:46px}.hero-lead{font-size:16px}.actions{align-items:flex-start;flex-direction:column}.hero-visual{min-height:430px}.portrait-wrap{inset:62px 20px 40px}.section{padding-block:90px}.section-heading.horizontal{align-items:flex-start;flex-direction:column}.pillar{min-height:310px}.pillar-symbol{margin:45px 0 28px}.home-project{grid-template-columns:1fr;padding:24px}.home-project .project-index{position:absolute;top:24px;right:24px}.project-art{height:190px}.split-section{gap:60px}.course-grid{grid-template-columns:1fr}.course-card{min-height:390px;padding:26px}.cta{padding-block:110px}.page-intro{padding-block:75px 60px}.page-intro h1{font-size:54px}.page-intro-copy{font-size:17px}.project-mosaic{padding-block:45px 90px}.project-card{padding:24px}.project-card h2{margin:40px 0}.experience-list article{grid-template-columns:1fr;gap:22px}.experience-rail i{flex:1 1}.contact-page{padding-block:70px 90px}.contact-copy h1{font-size:52px}.contact-form{padding:24px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:14px}.ticker div{animation-duration:20s}}.portrait-placeholder{display:grid;place-items:center;background:radial-gradient(circle at center,rgba(155,188,255,.16),transparent 32%),repeating-radial-gradient(circle at center,transparent 0 34px,rgba(238,234,228,.08) 35px 36px);filter:none}.placeholder-monogram{font:600 clamp(64px,10vw,130px)/1 var(--font-geist);letter-spacing:-.08em;color:var(--paper);z-index:2}.placeholder-orbit{position:absolute;width:72%;aspect-ratio:1;border:1px solid rgba(155,188,255,.45);border-radius:50%}.placeholder-orbit:after,.placeholder-orbit:before{content:"";position:absolute;inset:14%;border:1px solid rgba(238,234,228,.2);border-radius:50%}.placeholder-orbit:after{inset:32%;background:var(--blue);opacity:.08}.placeholder-caption{position:absolute;bottom:16px;left:16px;font:500 9px/1 var(--font-geist);letter-spacing:.15em;color:var(--muted)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.button,.home-project{transition:none}}.contact-form .button:disabled{cursor:wait;opacity:.65;transform:none;box-shadow:none}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-status.success{color:#73d89b}.form-status.error{color:#ff8b6b}