@font-face{font-family:Proxima Nova;src:url(/assets/ProximaNova-Regular-6iL5fLYO.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--page-margin: 64px;--page-margin-left: 140px;--page-margin-top: 130px;--page-margin-mobile: 28px;--page-margin-top-mobile: 96px;--cursor-size: 16px;--cursor-color: #ffffff;--cursor-color-active: #ff5a36;--cursor-color-grabbing: #db4d2e;--dot-color: rgba(20, 20, 20, .2);--dot-color-hover: rgba(20, 20, 20, .45);--dot-color-active: currentColor;--dot-active-opacity: .9;--hover-grow-scale-button: 1.12;--hover-grow-scale-card: 1.05;--hover-grow-duration: .32s;--hover-grow-easing: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Proxima Nova,Inter,-apple-system,Helvetica Neue,Arial,sans-serif;background:#fff;color:#141414}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}.shell{position:relative;width:100vw;height:100dvh;overflow:hidden;background-color:#fff;transition:background-color .4s ease}.deck-background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;transition:background-color .56s cubic-bezier(.65,0,.35,1)}.shell--overview{height:100dvh;overflow-y:auto;overflow-x:hidden;background-color:#000}.shell-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;padding:28px 40px;z-index:20;font-family:Inter,-apple-system,Helvetica Neue,Arial,sans-serif;font-weight:500;font-size:14px;line-height:1.15;letter-spacing:-.01em;transition:color .4s ease;pointer-events:none}.shell-nav{position:relative;pointer-events:auto;display:flex;align-items:center;gap:28px;font:inherit;color:inherit;letter-spacing:inherit}.shell-nav:after{content:"";position:absolute;top:-7px;right:-4px;bottom:-7px;left:-4px}.shell-name{text-transform:uppercase}.shell-menu-pill{padding:10px 22px;border-radius:999px;transition:background-color .4s ease,color .4s ease,opacity .2s ease,scale var(--hover-grow-duration) var(--hover-grow-easing)}.shell-nav:hover .shell-menu-pill{opacity:.85}@media (hover: hover) and (prefers-reduced-motion: no-preference){.shell-nav:hover .shell-menu-pill{scale:var(--hover-grow-scale-button)}.shell:not([data-zooming]) .overview-frame--overview:hover{scale:var(--hover-grow-scale-card)}}.has-custom-cursor,.has-custom-cursor *{cursor:none!important}.custom-cursor{position:fixed;top:0;left:0;z-index:2147483647;width:var(--cursor-size);height:var(--cursor-size);margin:calc(var(--cursor-size) / -2) 0 0 calc(var(--cursor-size) / -2);border-radius:50%;background:var(--cursor-color);mix-blend-mode:difference;pointer-events:none;opacity:0;transition:opacity .2s ease,background-color .2s ease;will-change:transform}.custom-cursor.is-visible{opacity:1}.custom-cursor.is-active{background:var(--cursor-color-active);mix-blend-mode:normal}.custom-cursor.is-grabbing{background:var(--cursor-color-grabbing);mix-blend-mode:normal}.shell-rail{position:relative;z-index:1;width:100%;height:100%}.shell-rail--overview{display:grid;grid-template-columns:repeat(2,1fr);gap:56px;width:100%;height:auto;min-height:100%;padding:140px 64px 96px;align-content:start}@media (max-width: 900px){.shell-rail--overview{--overview-gutter: 24px;--overview-card-w: calc((100vw - var(--overview-gutter) * 2) * .9);grid-template-columns:1fr;padding:120px var(--overview-gutter) 64px;gap:40px}}.overview-frame{position:absolute;top:0;right:0;bottom:0;left:0}.overview-frame--overview{position:relative;inset:auto;width:100%;aspect-ratio:var(--viewport-aspect, 1.6);overflow:hidden;container-type:size;transition:scale var(--hover-grow-duration) var(--hover-grow-easing)}.shell[data-zooming] .overview-frame--overview{transition:none}.project-view{width:100%;height:100%;position:relative;opacity:1;pointer-events:auto;z-index:1}.project-view.is-hidden{opacity:0;pointer-events:none;z-index:0}.project-view.is-leaving{z-index:2;pointer-events:none}.project-view.is-entering{z-index:1}.project-view--overview{position:absolute;top:0;left:0;width:100vw;height:100dvh;transform-origin:top left;transform:scale(calc(100cqw/100vw));cursor:pointer}.project-view--overview:focus-visible{outline:2px solid #141414;outline-offset:-2px}.layout{width:100%;height:100%;transition:color .4s ease}.project-view[data-direction="1"]{--deck-exit-x: -40px;--deck-enter-x: 40px}.project-view[data-direction="-1"]{--deck-exit-x: 40px;--deck-enter-x: -40px}.project-view.is-leaving .media-gallery{animation:deck-media-exit .32s cubic-bezier(.65,0,.35,1) both}.project-view.is-leaving .project-copy,.project-view.is-leaving .project-meta{animation:deck-copy-exit .32s cubic-bezier(.65,0,.35,1) .12s both}.project-view.is-entering .media-gallery{animation:deck-media-enter .38s cubic-bezier(.23,1,.32,1) .16s both}.project-view.is-entering .project-copy,.project-view.is-entering .project-meta{animation:deck-copy-enter .38s cubic-bezier(.23,1,.32,1) .32s both}@keyframes deck-media-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--deck-exit-x))}}@keyframes deck-media-enter{0%{opacity:0;transform:translate(var(--deck-enter-x))}to{opacity:1;transform:translate(0)}}@keyframes deck-copy-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-16px)}}@keyframes deck-copy-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.project-title{margin:0;font-family:Proxima Nova,Inter,-apple-system,Helvetica Neue,Arial,sans-serif;font-weight:400;font-size:clamp(40px,5.2vw,94px);line-height:.79;letter-spacing:-.03em}.project-title--stacked{font-size:clamp(56px,6vw,96px);font-weight:900;line-height:.94}.title-line{display:block}.project-disciplines{display:none;margin:20px 0 0;font-size:13px;letter-spacing:.02em;opacity:.75}.project-body{display:flex;flex-direction:column;gap:16px}.project-body p{margin:0;font-family:Proxima Nova,Inter,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:1.4;letter-spacing:0;opacity:1}.chapter-text{display:flex;flex-direction:column;align-items:flex-start;align-self:center;gap:28px}.chapter-text .project-meta,.chapter-text .media-progress{margin:0}.chapter-inner{width:100%}.chapter-media{display:flex;align-items:center;justify-content:center;min-width:0}.layout-bleed{position:relative;display:flex;align-items:center;padding:var(--page-margin-top) var(--page-margin) var(--page-margin) var(--page-margin-left)}.layout-panel-wrap{width:100%;height:100%}.layout-panel{width:100%;height:100%;position:relative;padding:var(--page-margin-top) var(--page-margin) var(--page-margin) var(--page-margin-left);display:flex;align-items:center;transition:background-color .4s ease,color .4s ease}.layout-open{width:100%;height:100%;position:relative;display:flex;align-items:center;padding:var(--page-margin-top) var(--page-margin) var(--page-margin) var(--page-margin-left)}@media (min-width: 901px){.layout-bleed,.layout-panel,.layout-open{gap:clamp(48px,8vw,125px)}.layout-bleed .chapter-inner,.layout-panel .chapter-inner,.layout-open .chapter-inner{width:600px;max-width:600px;flex:0 1 600px;min-width:0}.layout-bleed .chapter-media,.layout-panel .chapter-media,.layout-open .chapter-media{width:786px;max-width:786px;flex:0 1 786px;min-width:0;max-height:100%}}@media (max-width: 900px){.shell{height:auto;min-height:100dvh;overflow-y:auto;overflow-x:hidden}.deck-background,.shell-header{position:fixed}.shell-header:before{content:"";position:absolute;inset:0 0 auto 0;height:190%;background-color:var(--page-color, transparent);-webkit-mask-image:linear-gradient(to bottom,#000 58%,transparent);mask-image:linear-gradient(to bottom,#000 58%,transparent);transition:background-color .4s ease;z-index:-1;pointer-events:none}.project-view.is-hidden{display:none}.shell-rail,.project-view,.overview-frame,.layout,.layout-panel-wrap,.layout-panel,.layout-open{height:auto;min-height:100dvh}.overview-frame--overview{width:var(--overview-card-w);margin-inline:auto;aspect-ratio:auto;height:calc(var(--overview-card-w) * 16 / 9 - 40px);min-height:0}.project-view--overview{height:100dvh;min-height:0}.chapter-text{width:100%;gap:24px}.layout-bleed,.layout-panel,.layout-open{flex-direction:column;align-items:flex-start;padding:var(--page-margin-top-mobile) var(--page-margin-mobile) var(--page-margin);gap:48px}.chapter-inner{max-width:none}.chapter-media{width:100%;max-width:100%}.layout-bleed .media-frame,.layout-panel .media-frame,.layout-open .media-frame{margin:0 auto;width:100%!important;max-width:100%}.project-title{font-size:64px;line-height:.88;letter-spacing:-.03em}.project-body p{font-size:16px;line-height:1.4}}@media (max-width: 600px){.shell-header{padding:20px}.shell-nav{gap:12px;font-size:11px}.shell-menu-pill{padding:8px 16px;font-size:12px}}.layout-resume{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent 72px,#000 112px);mask-image:linear-gradient(to bottom,transparent 0,transparent 72px,#000 112px)}.project-view--overview .layout-resume{overflow:hidden}.resume-content{--resume-label-col: minmax(240px, 380px);max-width:1760px;margin:0 auto;padding:var(--page-margin-top) var(--page-margin) 160px var(--page-margin-left)}.resume-work{display:grid;grid-template-columns:var(--resume-label-col) 1fr;column-gap:64px;align-items:start}.work-history-list{display:flex;flex-direction:column;gap:56px}.work-history-row{display:flex;align-items:flex-start;gap:24px}.work-history-logo{flex:0 0 auto;width:72px;height:72px;border-radius:18px;object-fit:cover}.work-history-text{min-width:0}.work-history-company{margin:0 0 2px;font-weight:400;font-size:15px}.work-history-role{margin:0 0 8px;font-weight:400;font-size:24px}.work-history-meta{margin:0;font-weight:400;font-size:16px;line-height:1.4;letter-spacing:0;opacity:.65}.resume-contact{display:grid;grid-template-columns:var(--resume-label-col) 1fr;column-gap:64px;align-items:start;margin-top:160px}.resume-contact-subtitle{margin:12px 0 0;font-size:18px}.resume-contact-details{display:flex;align-items:flex-start;flex-wrap:wrap;gap:64px}.resume-contact-photo{flex:0 0 auto;width:220px;height:220px;border-radius:24px;object-fit:cover}.resume-contact-photo--placeholder{display:flex;align-items:center;justify-content:center;background:#f0f0f0;color:#8a8a8a;font-size:13px;text-align:center;padding:16px}.resume-contact-links{display:flex;flex-direction:column;gap:16px;font-size:20px}.resume-contact-links a{color:inherit;text-decoration:none}.resume-contact-links a.is-underlined{text-decoration:underline;text-underline-offset:3px}@media (max-width: 900px){.resume-content{padding:var(--page-margin-top-mobile) var(--page-margin-mobile) 96px}.resume-work{display:flex;flex-direction:column;gap:32px}.resume-contact{display:flex;flex-direction:column;align-items:flex-start;margin-top:96px;gap:32px}.resume-contact-details{gap:32px}}.media-gallery{display:flex;flex-direction:column;align-items:center;gap:20px;outline-offset:6px}.media-stage{position:relative;width:100%;overflow:hidden;display:flex;flex-direction:column;touch-action:pan-y;user-select:none;-webkit-user-select:none}.media-stage[data-grabbable]{cursor:grab}.media-stage[data-grabbable][data-phase=dragging]{cursor:grabbing}.media-track{--media-slide-ms: .7s;--media-slide-easing: cubic-bezier(.65, 0, .35, 1);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);flex:1 1 auto;min-height:0;width:100%;will-change:transform;transition:none}.media-stage[data-phase=settling] .media-track{transition:transform var(--media-slide-ms) var(--media-slide-easing)}.media-stage[data-source=manual] .media-track{--media-slide-ms: .4s;--media-slide-easing: cubic-bezier(.32, .72, 0, 1)}.media-slide{grid-area:1 / 1;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;transform:translate(calc(var(--media-slide-offset, 0) * 100%))}.media-slide img{-webkit-user-drag:none}.media-frame{display:flex;align-items:center;justify-content:center;background:#f4f2ec;border:1px solid rgba(0,0,0,.08);color:#14141480;font-size:12px;letter-spacing:.04em;text-align:center;padding:16px;max-width:100%;max-height:100%}.media-frame img{width:100%;height:100%;object-fit:contain}.media-frame--phone{width:260px;aspect-ratio:9 / 19;border-radius:36px;overflow:hidden;box-shadow:0 30px 60px #0000002e}.media-frame--card{width:340px;aspect-ratio:4 / 3;border-radius:18px;box-shadow:0 24px 48px #00000029}.media-frame--desktop{width:440px;aspect-ratio:16 / 10;border-radius:14px;box-shadow:0 24px 48px #00000029}.media-frame--has-image,.media-frame--has-content{background:none;border:none;box-shadow:none;border-radius:0;padding:0}.media-progress{display:flex;gap:12px}.media-progress-mark{position:relative;width:8px;height:8px;border-radius:50%;background:var(--dot-color);transition:background-color .25s ease}button.media-progress-mark:hover:not(.is-active){background:var(--dot-color-hover)}.media-progress-mark:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.media-progress-mark.is-active{background:var(--dot-color-active);opacity:var(--dot-active-opacity)}[data-theme=dark]{--dot-color: rgba(245, 244, 241, .3);--dot-color-hover: rgba(245, 244, 241, .6);--dot-color-active: #6c87e8;--dot-active-opacity: 1}@media (min-width: 2000px){.layout-bleed,.layout-open,.layout-panel{padding-left:max(var(--page-margin-left),calc((100vw - 2000px) / 2 + var(--page-margin-left) - var(--page-margin)));padding-right:max(var(--page-margin),calc((100vw - 2000px)/2))}}@media (prefers-reduced-motion: reduce){.layout-panel,.layout,.deck-background{transition-duration:.12s!important}.media-track,.media-stage[data-source=manual] .media-track{--media-slide-ms: .12s}.project-view.is-leaving .media-gallery,.project-view.is-leaving .project-copy,.project-view.is-leaving .project-meta,.project-view.is-entering .media-gallery,.project-view.is-entering .project-copy,.project-view.is-entering .project-meta{animation:none!important}.project-view.is-leaving{opacity:0;transition:opacity .15s ease}.project-view.is-entering{opacity:1;transition:opacity .15s ease}}
