:root{--ink:#0a0a0a;--muted:#5f5f5b;--paper:#f8f8f5;--soft-paper:#efefeb;--line:#cececa;--page-gutter:clamp(1.25rem,4vw,4.5rem);--section-space:clamp(7rem,13vw,13rem);--ease-out:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:#f8f8f5;background:var(--paper);color:#0a0a0a;color:var(--ink)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Helvetica Neue,Neue Haas Grotesk Text Pro,Arial,sans-serif;font-size:16px;line-height:1.4;margin:0;min-width:320px;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}a{color:inherit}::selection{background:#0a0a0a;background:var(--ink);color:#f8f8f5;color:var(--paper)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.site-shell{background:var(--paper);overflow:clip;position:relative}.site-shell:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.7'/%3E%3C/svg%3E");content:"";inset:0;opacity:.025;pointer-events:none;position:fixed;z-index:1000}.skip-link{background:var(--ink);color:#fff;font-size:.75rem;font-weight:600;left:.75rem;letter-spacing:.08em;padding:.75rem 1rem;position:fixed;text-decoration:none;text-transform:uppercase;top:.75rem;-webkit-transform:translateY(-150%);transform:translateY(-150%);transition:-webkit-transform .18s ease;transition:transform .18s ease;transition:transform .18s ease,-webkit-transform .18s ease;z-index:1100}.skip-link:focus{-webkit-transform:translateY(0);transform:translateY(0)}a:focus-visible{outline:2px solid currentColor;outline-offset:5px}.navigation{align-items:center;color:var(--ink);display:flex;justify-content:space-between;left:0;padding:1.5rem var(--page-gutter);pointer-events:none;position:fixed;right:0;top:0;transition:color .14s linear;z-index:100}.navigation--inverted{color:#fff}.navigation a{pointer-events:auto}.navigation__monogram{font-size:.8rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.navigation__list{align-items:center;display:flex;gap:clamp(1rem,2.5vw,2.75rem);list-style:none;margin:0;padding:0}.navigation__link{display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.03em;padding-block:.25rem;position:relative;text-decoration:none}.navigation__link:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;right:0;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right;transition:-webkit-transform .35s var(--ease-out);transition:transform .35s var(--ease-out);transition:transform .35s var(--ease-out),-webkit-transform .35s var(--ease-out)}.navigation__link:focus-visible:after,.navigation__link:hover:after{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}.hero{background:var(--paper);overflow:hidden}.hero,.hero__inner{min-height:100vh;min-height:100svh;position:relative}.hero__inner{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(7rem,14vh,10rem) var(--page-gutter) clamp(5.5rem,9vh,7rem);width:100%;z-index:2}.hero__portrait{height:91%;opacity:.77;position:absolute;right:-1%;top:4%;width:min(58vw,900px);z-index:1}.hero__portrait canvas{height:100%;width:100%}.hero__eyebrow,.section-kicker{color:var(--muted);font-size:.67rem;font-weight:600;letter-spacing:.12em;line-height:1.2;margin:0;text-transform:uppercase}.hero__eyebrow{-webkit-animation:hero-fade .85s .12s var(--ease-out) both;animation:hero-fade .85s .12s var(--ease-out) both;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.hero__title{align-self:stretch;font-size:clamp(5.2rem,14.1vw,14.5rem);font-weight:500;letter-spacing:.02rem;line-height:.76;margin:clamp(1.75rem,5vh,4rem) 0 auto;position:relative;z-index:2}.hero__title-line{display:block;overflow:hidden;padding-bottom:.06em;padding-right:.1em}.hero__title-line>span{-webkit-animation:title-reveal 1.1s .1s var(--ease-out) both;animation:title-reveal 1.1s .1s var(--ease-out) both;display:block}.hero__title-line--offset{padding-left:8vw}.hero__title-line--offset>span{-webkit-animation-delay:.18s;animation-delay:.18s}.hero__details{grid-gap:2rem;align-items:end;-webkit-animation:hero-fade .9s .5s var(--ease-out) both;animation:hero-fade .9s .5s var(--ease-out) both;display:grid;gap:2rem;grid-template-columns:minmax(17rem,29rem) auto;justify-content:space-between;position:relative;z-index:3}.hero__statement{font-size:clamp(.95rem,1.25vw,1.2rem);letter-spacing:-.025em;line-height:1.45}.hero__location,.hero__statement p{margin:0}.hero__statement p+p{color:var(--muted)}.hero__location{align-items:center;display:flex;font-size:.75rem;font-weight:500;gap:.6rem;padding-right:.2rem}.status-dot{background:var(--ink);border-radius:50%;height:.4rem;width:.4rem}.hero__index{flex-direction:column;font-size:.55rem;gap:.15rem;line-height:1;right:var(--page-gutter);text-align:center;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:3}.hero__index,.scroll-cue{color:var(--muted);display:flex;font-weight:600;position:absolute}.scroll-cue{align-items:center;bottom:clamp(1.5rem,3vw,2.75rem);font-size:.59rem;gap:.75rem;left:50%;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;-webkit-transform:translateX(-50%) rotate(90deg);transform:translateX(-50%) rotate(90deg);-webkit-transform-origin:center;transform-origin:center;z-index:4}.scroll-cue__line{background:var(--line);height:1px;overflow:hidden;position:relative;width:2.5rem}.scroll-cue__line:after{-webkit-animation:scroll-line 2.2s ease-in-out infinite;animation:scroll-line 2.2s ease-in-out infinite;background:var(--ink);content:"";inset:0;position:absolute;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.section{padding:var(--section-space) 0;position:relative}.contact__inner,.section__inner{margin:0 auto;max-width:1720px;padding-inline:var(--page-gutter);width:100%}.section-heading{grid-gap:2rem;align-items:end;display:grid;gap:2rem;grid-template-columns:minmax(6rem,.7fr) 2fr auto;margin-bottom:clamp(4rem,8vw,8rem)}.about h2,.contact h2,.section-heading h2{font-weight:500;letter-spacing:-.07em;line-height:.92;margin:0}.about h2,.section-heading h2{font-size:clamp(3.8rem,9vw,9.5rem)}.section-heading__aside{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.08em;margin:0}.project-list{border-top:1px solid var(--ink)}.project-row{grid-gap:clamp(1rem,2.5vw,2.5rem);align-items:start;border-bottom:1px solid var(--line);display:grid;gap:clamp(1rem,2.5vw,2.5rem);grid-template-columns:minmax(2.5rem,.3fr) minmax(19rem,1.6fr) minmax(12rem,.8fr) auto;padding:clamp(2.25rem,4vw,4.25rem) 0;position:relative}.project-row:before{background:var(--soft-paper);content:"";inset:0 calc(var(--page-gutter)*-1);opacity:0;position:absolute;transition:opacity .35s ease;z-index:-1}.project-row:hover:before{opacity:1}.project-row h3,.project-row p{margin:0}.project-row__number,.project-row__technologies,.project-row__year{font-size:.68rem;font-weight:500;padding-top:.35rem}.project-row__number,.project-row__technologies{color:var(--muted)}.project-row__main h3{align-items:center;display:flex;font-size:clamp(1.75rem,3vw,3.35rem);font-weight:500;gap:.7rem;letter-spacing:-.045em;line-height:1;transition:-webkit-transform .5s var(--ease-out);transition:transform .5s var(--ease-out);transition:transform .5s var(--ease-out),-webkit-transform .5s var(--ease-out);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.project-row:hover .project-row__main h3{-webkit-transform:translateX(.65rem);transform:translateX(.65rem)}.project-row__arrow{display:inline-grid;height:1em;opacity:0;place-items:center;-webkit-transform:translateX(-.45rem);transform:translateX(-.45rem);transition:opacity .3s ease,-webkit-transform .5s var(--ease-out);transition:opacity .3s ease,transform .5s var(--ease-out);transition:opacity .3s ease,transform .5s var(--ease-out),-webkit-transform .5s var(--ease-out);width:1em}.project-row:hover .project-row__arrow{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}.arrow-icon{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;height:100%;width:100%}.project-row__description{color:var(--muted);font-size:clamp(.86rem,1.1vw,1rem);line-height:1.5;margin-top:1rem!important;max-width:36rem}.project-row__year{text-align:right;white-space:nowrap}.about{background:var(--soft-paper)}.about__grid{grid-gap:clamp(3rem,8vw,10rem);display:grid;gap:clamp(3rem,8vw,10rem);grid-template-columns:minmax(11rem,.72fr) minmax(20rem,2fr)}.about__heading h2{margin-top:2rem}.about__lead{font-size:clamp(2.1rem,4.9vw,5.3rem);font-weight:450;letter-spacing:-.055em;line-height:1.04;margin:0;max-width:65rem}.about__meta{grid-gap:3rem;border-top:1px solid var(--line);color:var(--muted);display:grid;font-size:.77rem;gap:3rem;grid-template-columns:2fr 1fr;line-height:1.6;margin-top:clamp(4rem,9vw,9rem);padding-top:1.25rem}.about__meta p{margin:0}.about__meta p:last-child{color:var(--ink)}.section-heading--compact{margin-bottom:clamp(4rem,7vw,7rem)}.timeline{border-top:1px solid var(--ink);position:relative}.timeline:before{background:var(--line);bottom:0;content:"";left:.25rem;position:absolute;top:0;width:1px}.timeline-row{grid-gap:clamp(1rem,2.7vw,3rem);align-items:start;border-bottom:1px solid var(--line);display:grid;gap:clamp(1rem,2.7vw,3rem);grid-template-columns:minmax(2rem,.32fr) minmax(11rem,.8fr) minmax(10rem,.8fr) minmax(8rem,.55fr) minmax(16rem,1.2fr);padding:clamp(2.25rem,4vw,3.5rem) 0}.timeline-row h3,.timeline-row p{margin:0}.timeline-row__marker{padding-top:.35rem;position:relative;z-index:1}.timeline-row__marker span{background:var(--paper);border:1px solid var(--ink);border-radius:50%;display:block;height:.55rem;width:.55rem}.timeline-row:first-child .timeline-row__marker span{background:var(--ink)}.timeline-row h3{font-size:clamp(1.15rem,1.8vw,1.6rem);font-weight:500;letter-spacing:-.035em}.timeline-row__period,.timeline-row__role{font-size:.74rem;font-weight:500;padding-top:.25rem}.timeline-row__period{color:var(--muted);white-space:nowrap}.timeline-row__details{color:var(--muted);font-size:.83rem;line-height:1.55;max-width:30rem}.education{grid-gap:2rem;border-top:1px solid var(--ink);display:grid;gap:2rem;grid-template-columns:minmax(8rem,.64fr) 2fr;margin-top:clamp(5rem,10vw,10rem);padding-top:1.25rem}.education__items{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(2,1fr)}.education__items p{font-size:clamp(1rem,1.5vw,1.35rem);letter-spacing:-.025em;margin:0}.contact{background:var(--ink);color:#fff;min-height:100vh;min-height:100svh;overflow:hidden;padding-top:clamp(7rem,12vw,11rem);position:relative}.contact__inner{display:flex;flex-direction:column;min-height:calc(100vh - clamp(7rem, 12vw, 11rem));min-height:calc(100svh - clamp(7rem, 12vw, 11rem))}.section-kicker--light{color:#949490}.contact__heading{grid-gap:2rem;align-items:end;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) clamp(3rem,8vw,8rem);margin-top:clamp(3.5rem,7vw,7rem)}.contact h2{font-size:clamp(4.2rem,11.6vw,12rem);line-height:.85;max-width:13ch}.contact__heading-arrow{height:clamp(3rem,8vw,8rem);margin-bottom:.6rem;width:clamp(3rem,8vw,8rem)}.contact__lower{grid-gap:clamp(3rem,9vw,10rem);align-items:start;display:grid;gap:clamp(3rem,9vw,10rem);grid-template-columns:minmax(17rem,.75fr) minmax(22rem,1.25fr);margin-top:auto;padding:clamp(5rem,8vw,8rem) 0}.contact__lower>p{color:#a9a9a5;font-size:clamp(.95rem,1.3vw,1.15rem);margin:0;max-width:28rem}.contact__links{border-top:1px solid #444;display:flex;flex-direction:column}.contact__links a{align-items:center;border-bottom:1px solid #444;display:flex;font-size:clamp(1rem,1.5vw,1.3rem);justify-content:space-between;letter-spacing:-.025em;padding:1.1rem 0;text-decoration:none;transition:padding .4s var(--ease-out),color .2s ease}.contact__links a:focus-visible,.contact__links a:hover{color:#c7c7c2;padding-left:.6rem}.contact__links a span{color:#898985;font-size:.8em}.footer{background:var(--ink);color:#91918d}.footer__inner{align-items:center;border-top:1px solid #444;display:flex;font-size:.63rem;font-weight:500;justify-content:space-between;letter-spacing:.06em;margin:0 auto;max-width:1720px;padding:1.5rem var(--page-gutter) 1.75rem;text-transform:uppercase;width:100%}.footer__inner p{margin:0}.footer__inner a{text-decoration:none}.reveal-enabled [data-reveal]{opacity:0;-webkit-transform:translateY(2rem);transform:translateY(2rem);transition:opacity .8s var(--ease-out) 0ms,-webkit-transform .9s var(--ease-out) 0ms;transition:opacity .8s var(--ease-out) 0ms,transform .9s var(--ease-out) 0ms;transition:opacity .8s var(--ease-out) 0ms,transform .9s var(--ease-out) 0ms,-webkit-transform .9s var(--ease-out) 0ms;transition:opacity .8s var(--ease-out) var(--reveal-delay,0ms),-webkit-transform .9s var(--ease-out) var(--reveal-delay,0ms);transition:opacity .8s var(--ease-out) var(--reveal-delay,0ms),transform .9s var(--ease-out) var(--reveal-delay,0ms);transition:opacity .8s var(--ease-out) var(--reveal-delay,0ms),transform .9s var(--ease-out) var(--reveal-delay,0ms),-webkit-transform .9s var(--ease-out) var(--reveal-delay,0ms)}.reveal-enabled [data-reveal].is-visible{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@-webkit-keyframes title-reveal{0%{-webkit-transform:translateY(110%);transform:translateY(110%)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes title-reveal{0%{-webkit-transform:translateY(110%);transform:translateY(110%)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes hero-fade{0%{opacity:0;-webkit-transform:translateY(1rem);transform:translateY(1rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes hero-fade{0%{opacity:0;-webkit-transform:translateY(1rem);transform:translateY(1rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes scroll-line{0%{-webkit-transform:translateX(-110%);transform:translateX(-110%)}45%,55%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(110%);transform:translateX(110%)}}@keyframes scroll-line{0%{-webkit-transform:translateX(-110%);transform:translateX(-110%)}45%,55%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(110%);transform:translateX(110%)}}@media (max-width:1100px){.hero__portrait{right:-10%;width:68vw}.project-row{grid-template-columns:2.5rem minmax(17rem,1.5fr) minmax(10rem,.7fr) auto}.timeline-row{grid-template-columns:2rem minmax(10rem,.9fr) minmax(9rem,.8fr) minmax(7rem,.7fr) minmax(13rem,1.2fr)}}@media (max-width:820px){:root{--section-space:clamp(6.5rem,18vw,10rem)}.hero__inner{padding-top:7.5rem}.hero__portrait{height:78%;opacity:.58;right:-17%;top:8%;width:78vw}.hero__title{font-size:clamp(5rem,16.3vw,8.5rem)}.hero__title-line--offset{padding-left:7vw}.section-heading{grid-template-columns:minmax(5rem,.48fr) 2fr}.section-heading__aside{display:none}.project-row{grid-template-columns:2rem minmax(0,1fr) auto}.project-row__technologies{grid-column:2;padding-top:0}.project-row__year{grid-column:3;grid-row:1}.about__grid{grid-template-columns:1fr}.about__heading{align-items:flex-end;display:flex;justify-content:space-between}.about__heading h2{margin-top:0}.timeline-row{grid-template-columns:1.5rem 1fr auto;row-gap:1.2rem}.timeline-row__marker{grid-row:1/span 3}.timeline-row__role{grid-column:2}.timeline-row__period{grid-column:3;grid-row:1}.timeline-row__details{grid-column:2/-1}.education{grid-template-columns:1fr}.contact__lower{grid-template-columns:1fr 1.1fr}}@media (max-width:600px){:root{--page-gutter:1.25rem}.site-shell:after{opacity:.018}.navigation{padding-bottom:1.15rem;padding-top:1.15rem}.navigation__list{gap:1rem}.navigation__link,.navigation__monogram{font-size:.69rem}.hero__inner{min-height:100svh;padding-bottom:5.25rem;padding-top:6.75rem}.hero__portrait{height:69%;opacity:.48;right:-34%;top:10%;width:116vw}.hero__eyebrow{max-width:11rem}.hero__title{font-size:clamp(4.35rem,23vw,7.2rem);line-height:.81;margin-top:2.8rem}.hero__title-line--offset{padding-left:0}.hero__details{align-items:start;gap:1.6rem;grid-template-columns:1fr}.hero__statement{font-size:.9rem;max-width:19rem}.hero__location{font-size:.68rem}.hero__index,.scroll-cue{display:none}.section-heading{gap:1.4rem;grid-template-columns:1fr;margin-bottom:3.75rem}.about h2,.section-heading h2{font-size:clamp(3.6rem,19vw,6rem)}.project-row{gap:.8rem;grid-template-columns:1.75rem minmax(0,1fr) auto;padding:2.15rem 0}.project-row__number,.project-row__technologies,.project-row__year{font-size:.59rem}.project-row__main h3{font-size:1.8rem;line-height:1.04;max-width:11ch}.project-row__arrow{display:none}.project-row__description{font-size:.77rem;margin-top:.7rem!important}.project-row__technologies{line-height:1.5;max-width:15rem}.about__grid{gap:3.75rem}.about__heading{display:block}.about__heading h2{margin-top:1.4rem}.about__lead{font-size:clamp(2rem,10.4vw,3.5rem)}.about__meta{gap:1.5rem;grid-template-columns:1fr;margin-top:4rem}.timeline-row{gap:.8rem 1rem;grid-template-columns:1rem minmax(0,1fr)}.timeline-row__marker{grid-column:1;grid-row:1/span 4}.timeline-row h3,.timeline-row__details,.timeline-row__period,.timeline-row__role{grid-column:2}.timeline-row__period{grid-row:auto}.timeline-row__details{font-size:.77rem}.education__items{gap:1.25rem;grid-template-columns:1fr}.contact{padding-top:7rem}.contact__heading{gap:1.5rem;grid-template-columns:1fr;margin-top:3rem}.contact h2{font-size:clamp(4rem,20.5vw,6.8rem)}.contact__heading-arrow{height:3.5rem;margin:0;width:3.5rem}.contact__lower{gap:3.5rem;grid-template-columns:1fr;padding:5.5rem 0}.footer__inner{padding-bottom:1.5rem}}@media (hover:none){.project-row__arrow{opacity:.45;-webkit-transform:none;transform:none}}@media (prefers-reduced-motion:reduce){.hero__details,.hero__eyebrow,.hero__title-line>span,.scroll-cue__line:after{-webkit-animation:none;animation:none}.reveal-enabled [data-reveal]{opacity:1;-webkit-transform:none;transform:none}}
/*# sourceMappingURL=main.e8d1ed6e.css.map*/