@keyframes portrait-enter{0%{opacity:0;transform:translate(5vw,3vh)scale(1.08)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes title-enter{0%{opacity:0;transform:translateY(.55em)}to{opacity:1;transform:translate(0,0)}}@keyframes flow-march{to{stroke-dashoffset:-64px}}@keyframes trace-signal{0%,24%,to{opacity:.16;transform:scale(.72)}36%,62%{opacity:1;transform:scale(1.35)}}@keyframes screen-scan{0%,12%{opacity:0;transform:translate(0)}20%,82%{opacity:.65}92%,to{opacity:0;transform:translate(228px)}}@keyframes proof-roll{to{transform:translate(-50%)}}:root{--ink:#12131a;--paper:#f2f0ea;--cobalt:#2647f5;--coral:#ff6247;--ice:#b8c4ff;--mist:#c9ccd3;--trace-width:52px;--page-gutter:clamp(1.25rem, 4vw, 4.5rem)}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--paper);color:var(--ink);margin:0;overflow-x:hidden}.portfolio{background:var(--paper);min-height:100vh;font-family:Avenir LT Pro,Arial,sans-serif}.portfolio *,.portfolio :before,.portfolio :after{box-sizing:border-box}.portfolio a{color:inherit}.portfolio button,.portfolio a{-webkit-tap-highlight-color:#2647f52e;touch-action:manipulation}.portfolio :focus-visible{outline:3px solid var(--coral);outline-offset:4px}.portfolio h1,.portfolio h2,.portfolio h3,.portfolio p,.portfolio figure{margin:0}.portfolio h1,.portfolio h2,.portfolio h3{text-wrap:balance}.portfolio p{text-wrap:pretty}.portfolio [id]{scroll-margin-top:2rem}.skip-link{z-index:200;background:var(--paper);color:var(--ink);padding:.75rem 1rem;transition:transform .15s;position:fixed;top:1rem;left:1rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.eyebrow{letter-spacing:.12em;text-transform:uppercase;font-family:Courier New,monospace;font-size:.72rem;font-weight:700;line-height:1}.site-header{z-index:30;width:100%;min-height:7rem;padding:1.35rem var(--page-gutter);color:var(--ink);grid-template-columns:1fr auto 1fr;align-items:start;gap:2rem;display:grid;position:absolute;top:0;left:0}.wordmark{letter-spacing:-.08em;flex-direction:column;width:fit-content;font-size:clamp(1.45rem,2.6vw,2.65rem);font-weight:900;line-height:.76;text-decoration:none;display:flex}.wordmark span:last-child{margin-left:.55em}.wordmark:hover{color:var(--cobalt)}.header-status{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.55rem;font-family:Courier New,monospace;font-size:.68rem;font-weight:700;display:flex;margin-top:.45rem!important}.header-status span{background:var(--coral);border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 .28rem #ff624733}.menu-trigger{border:2px solid var(--ink);background:var(--paper);min-width:7.2rem;min-height:3.5rem;color:var(--ink);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:0;justify-content:space-between;justify-self:end;align-items:center;gap:1rem;padding:.65rem .75rem .65rem 1rem;font:800 .78rem/1 Courier New,monospace;transition:background-color .16s,color .16s;display:inline-flex}.menu-trigger:hover{background:var(--ink);color:var(--paper)}.menu-glyph{background:var(--coral);place-content:center;gap:.35rem;width:1.8rem;height:1.8rem;display:grid}.menu-glyph i{background:var(--ink);width:.9rem;height:2px;display:block}.menu-dialog{background:var(--ink);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--paper);overscroll-behavior:contain;border:0;margin:0;padding:clamp(1.4rem,4vw,4.5rem);overflow:auto}.menu-dialog::backdrop{background:#12131ac7}.menu-dialog[open]{grid-template-rows:auto 1fr auto;display:grid}.menu-dialog__top,.menu-dialog__footer{letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:2rem;font:700 .72rem/1.2 Courier New,monospace;display:flex}.menu-dialog__top button{border:1px solid var(--paper);color:var(--paper);font:inherit;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:0;padding:.85rem 1.1rem}.menu-dialog nav{align-content:center;padding:3rem 0;display:grid}.menu-dialog nav a{letter-spacing:-.075em;text-transform:uppercase;border-bottom:1px solid #f2f0ea3d;grid-template-columns:3rem 1fr 3rem;align-items:center;gap:1rem;min-width:0;padding:.18em 0;font-size:clamp(2.5rem,8.4vw,8.5rem);font-weight:900;line-height:.94;text-decoration:none;transition:color .18s,padding-left .18s;display:grid}.menu-dialog nav a:hover{color:var(--coral);padding-left:.1em}.menu-dialog nav a>span{letter-spacing:.08em;align-self:start;padding-top:1.3em;font:700 .68rem/1 Courier New,monospace}.menu-dialog svg,.text-link svg,.contact a svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:1.3rem}.menu-dialog nav svg{width:2.4rem}.menu-dialog__footer a{text-transform:lowercase}.execution-trace{z-index:20;width:var(--trace-width);height:min(54vh,32rem);color:var(--coral);pointer-events:none;mix-blend-mode:difference;grid-template-rows:auto 1fr auto;justify-items:center;gap:.6rem;display:grid;position:fixed;top:50%;right:.75rem;transform:translateY(-50%)}.execution-trace svg{width:1.5rem;height:100%;overflow:visible}.trace-base,.trace-progress{fill:none;vector-effect:non-scaling-stroke}.trace-base{stroke:#ff624747;stroke-width:1px}.trace-progress{stroke:var(--coral);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:1px}.trace-label,.trace-readout{letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;font:700 .55rem/1 Courier New,monospace}.trace-readout{writing-mode:horizontal-tb}.hero{min-height:100svh;padding:9rem calc(var(--page-gutter) + var(--trace-width)) 4rem var(--page-gutter);background:var(--paper);grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);align-items:end;display:grid;position:relative;overflow:hidden}.hero:before{content:"";background:#12131a2e;width:1px;height:100%;position:absolute;top:0;left:52%}.hero__type{z-index:4;align-self:center;position:relative}.hero__type .eyebrow{margin-bottom:clamp(1.5rem,4vw,3.5rem)}.hero h1{letter-spacing:-.085em;text-transform:uppercase;max-width:7.4ch;font-size:clamp(4.4rem,10.8vw,11rem);font-weight:900;line-height:.72}.hero h1 span{opacity:0;white-space:nowrap;animation:.65s cubic-bezier(.16,1,.3,1) forwards title-enter;display:block}.hero h1 span:nth-child(2){animation-delay:90ms}.hero h1 span:nth-child(3){animation-delay:.18s}.hero h1 .hero__intro{letter-spacing:-.055em;margin-bottom:.08em;font-size:.64em;line-height:1}.hero h1 .hero__scale{color:var(--coral)}.hero h1 .hero__systems{color:var(--cobalt);letter-spacing:-.065em;margin-top:.08em;font-size:.48em;line-height:.9}.hero__thesis{max-width:35ch;font-size:clamp(1rem,1.55vw,1.35rem);line-height:1.45;margin:clamp(1.8rem,4vw,3rem) 0 0 clamp(1rem,8vw,8rem)!important}.portrait{z-index:2;aspect-ratio:1;align-self:end;width:min(42vw,42rem);animation:.9s cubic-bezier(.16,1,.3,1) .12s both portrait-enter;position:relative;margin:0 0 -4rem -4vw!important}.portrait__image{object-fit:contain;width:100%;height:auto;display:block;position:relative}.portrait:after{content:"";z-index:-1;border:2px solid var(--coral);position:absolute;inset:7% -3% 6% 5%}.hero__scroll{z-index:5;bottom:1.3rem;left:var(--page-gutter);letter-spacing:.1em;text-transform:uppercase;font:700 .66rem/1 Courier New,monospace;position:absolute}.hero__scroll span{color:var(--coral);margin-left:.5rem;display:inline-block}.current-role{min-height:88svh;padding:8rem calc(var(--page-gutter) + var(--trace-width)) 8rem var(--page-gutter);background:var(--cobalt);color:var(--paper);place-items:center;display:grid;position:relative;overflow:hidden}.current-role__ghost{color:#0000;letter-spacing:-.11em;-webkit-text-stroke:1px #f2f0ea33;-webkit-user-select:none;user-select:none;font-size:clamp(17rem,52vw,48rem);font-weight:900;line-height:.7;position:absolute;top:50%;left:-.08em;transform:translateY(-50%)}.current-role__copy{z-index:2;text-align:center;position:relative}.current-role__copy h2{letter-spacing:-.095em;margin:1rem 0 2rem;font-size:clamp(5.5rem,17vw,16rem);font-weight:900;line-height:.88}.current-role__copy>p:not(.eyebrow){font-size:clamp(1.25rem,2.6vw,2.5rem);font-weight:600}.current-role__copy time{letter-spacing:.1em;text-transform:uppercase;margin-top:1rem;font:700 .72rem/1 Courier New,monospace;display:block}.work{background:var(--ink);color:var(--paper)}.section-intro{min-height:82svh;padding:8rem calc(var(--page-gutter) + var(--trace-width)) 6rem var(--page-gutter);grid-template-columns:minmax(0,1fr) minmax(15rem,.55fr);align-content:end;gap:3rem;display:grid}.section-intro .eyebrow{grid-column:1/-1;align-self:start}.section-intro h2,.trajectory h2,.contact h2{letter-spacing:-.085em;text-transform:uppercase;font-size:clamp(4rem,10vw,10rem);font-weight:900;line-height:.76}.section-intro>p:last-child{align-self:end;max-width:31ch;padding-bottom:.4rem;font-size:clamp(1.05rem,1.7vw,1.45rem);line-height:1.45}.work-scene{border-top:1px solid #f2f0ea29;grid-template-columns:minmax(0,1.03fr) minmax(24rem,.97fr);align-items:center;min-height:100svh;display:grid;overflow:hidden}.work-scene__visual{background:var(--coral);min-height:38rem;color:var(--ink);align-self:stretch;place-items:center;display:grid;position:relative;overflow:hidden}.work-scene--screen .work-scene__visual{background:var(--ice)}.work-scene--retrieve .work-scene__visual{background:var(--paper)}.system-visual{width:min(90%,52rem);max-height:78vh;overflow:visible}.system-visual text{fill:currentColor;letter-spacing:2px;font:700 14px/1 Courier New,monospace}.diagram-kicker,.diagram-label{font-size:12px!important}.locker-sandbox rect,.locker-tools rect,.screen-document rect,.screen-matrix>rect,.screen-result circle,.classroom-library rect,.classroom-answer rect{fill:none;stroke:currentColor;stroke-width:2px;vector-effect:non-scaling-stroke}.locker-sandbox rect{fill:#f2f0ea1f;stroke-dasharray:8 10;stroke-width:3px}.locker-entry,.classroom-flow,.screen-flow,.locker-branches{fill:none;stroke:var(--cobalt);stroke-width:6px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.locker-entry,.classroom-flow,.screen-flow{stroke-dasharray:18 14;animation:1.8s linear infinite flow-march}.locker-agent circle{fill:var(--cobalt);stroke:var(--ink);stroke-width:3px;vector-effect:non-scaling-stroke}.locker-agent text{fill:var(--paper);letter-spacing:1px;font-size:11px}.locker-gate circle{fill:var(--paper);stroke:var(--ink);stroke-width:3px;vector-effect:non-scaling-stroke}.locker-gate path,.classroom-library path,.classroom-answer path{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:square;vector-effect:non-scaling-stroke}.locker-tools rect,.classroom-library rect,.classroom-answer rect{fill:var(--paper)}.classroom-flow{stroke:var(--coral)}.classroom-question circle{fill:var(--cobalt);stroke:var(--ink);stroke-width:3px;vector-effect:non-scaling-stroke}.classroom-question text{fill:var(--paper);letter-spacing:0;font-family:Avenir LT Pro,Arial,sans-serif;font-size:30px;font-weight:900}.classroom-answer circle{fill:var(--coral)}.screen-document path,.screen-matrix path,.screen-result path{fill:none;stroke:var(--ink);stroke-width:2px;vector-effect:non-scaling-stroke}.screen-flow{stroke:var(--cobalt)}.screen-document rect,.screen-result circle{fill:var(--paper)}.screen-matrix>rect{fill:#f2f0ea5c;stroke-width:3px}.screen-beam{transform-box:fill-box;transform-origin:0;animation:3.2s cubic-bezier(.65,0,.35,1) infinite screen-scan}.screen-beam rect{fill:var(--coral)}.screen-signals circle{fill:var(--cobalt);transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite trace-signal}.screen-signals circle:nth-child(2){animation-delay:.2s}.screen-signals circle:nth-child(3){animation-delay:.4s}.screen-signals circle:nth-child(4){animation-delay:.6s}.screen-signals circle:nth-child(5){animation-delay:.8s}.screen-signals circle:nth-child(6){animation-delay:1s}.screen-count{letter-spacing:-1px!important;font-family:Avenir LT Pro,Arial,sans-serif!important;font-size:32px!important;font-weight:900!important}.work-index{color:#12131a1f;letter-spacing:-.1em;font-size:clamp(12rem,30vw,31rem);font-weight:900;line-height:.7;position:absolute;bottom:-.2em;right:-.05em}.work-scene__copy{min-width:0;padding:clamp(3rem, 8vw, 8rem) calc(var(--page-gutter) + var(--trace-width)) clamp(3rem, 8vw, 8rem) clamp(2rem, 6vw, 6rem)}.work-scene__copy h3{letter-spacing:-.08em;text-transform:uppercase;margin-top:2rem;font-size:clamp(3.1rem,5.2vw,6.1rem);font-weight:900;line-height:.78}.work-scene--retrieve .work-scene__copy h3{font-size:clamp(2.8rem,4.65vw,5.35rem)}.work-statement{max-width:19ch;font-size:clamp(1.45rem,2.5vw,2.2rem);font-weight:600;line-height:1.15;margin-top:2.5rem!important}.work-proof{max-width:35ch;color:var(--mist);font-size:.98rem;line-height:1.55;margin-top:1.2rem!important}.text-link{letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid;align-items:center;gap:.8rem;width:fit-content;margin-top:2.5rem;padding-bottom:.35rem;font:700 .72rem/1 Courier New,monospace;text-decoration:none;display:inline-flex}.text-link:hover svg,.contact a:hover svg{transform:translate(.25rem)}.text-link svg,.contact a svg{transition:transform .15s}.proof{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);background:var(--paper);width:100%;color:var(--ink);overflow:hidden}.proof__track{width:max-content;animation:30s linear infinite proof-roll;display:flex}.proof:hover .proof__track{animation-play-state:paused}.proof__track p{border-right:2px solid var(--ink);grid-template-columns:auto 1fr;align-items:center;gap:1.2rem;width:clamp(19rem,30vw,32rem);min-height:15rem;padding:2rem 3rem;display:grid}.proof__track strong{letter-spacing:-.08em;font-size:clamp(4.5rem,8vw,8rem);line-height:.75}.proof__track span{letter-spacing:.08em;text-transform:uppercase;max-width:15ch;font:700 .7rem/1.3 Courier New,monospace}.trajectory{min-height:100svh;padding:8rem calc(var(--page-gutter) + var(--trace-width)) 8rem var(--page-gutter);background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(20rem,.7fr);align-content:center;gap:5rem;display:grid}.trajectory header{align-self:start}.trajectory h2{max-width:8ch;margin-top:2rem;font-size:clamp(3.6rem,6.8vw,7rem)}.trajectory ol{margin:0;padding:0;list-style:none}.trajectory li{border-top:2px solid var(--ink);grid-template-columns:4.5rem 1fr;column-gap:1.5rem;padding:1.4rem 0 2.5rem;display:grid}.trajectory li time{letter-spacing:.08em;grid-row:1/3;font:700 .72rem/1 Courier New,monospace}.trajectory li strong{letter-spacing:-.05em;font-size:clamp(2rem,4vw,4rem);line-height:.9}.trajectory li span{margin-top:.45rem;font-size:.9rem}.trajectory__aside{letter-spacing:.05em;text-transform:uppercase;max-width:32ch;font:700 .74rem/1.5 Courier New,monospace;margin-top:2rem!important}.contact{min-height:96svh;padding:8rem calc(var(--page-gutter) + var(--trace-width)) 5rem var(--page-gutter);background:var(--coral);color:var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3rem;display:grid;position:relative;overflow:hidden}.contact__copy,.contact__links{z-index:2;position:relative}.contact h2{margin-top:2rem}.contact__focus{letter-spacing:.08em;text-transform:uppercase;font:700 .78rem/1.4 Courier New,monospace;margin-top:2rem!important}.contact__email{overflow-wrap:anywhere;border-bottom:2px solid;align-items:center;gap:1rem;width:fit-content;max-width:100%;margin-top:4rem;padding-bottom:.45rem;font-size:clamp(1.1rem,2.3vw,2.2rem);font-weight:700;text-decoration:none;display:flex}.contact__links{min-width:min(20rem,32vw);display:grid}.contact__links a{letter-spacing:.08em;text-transform:uppercase;border-top:2px solid;justify-content:space-between;align-items:center;gap:2rem;padding:1rem 0;font:700 .78rem/1 Courier New,monospace;text-decoration:none;display:flex}.site-footer{padding:1.5rem calc(var(--page-gutter) + var(--trace-width)) 1.5rem var(--page-gutter);background:var(--ink);color:var(--paper);letter-spacing:.08em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;font:700 .65rem/1 Courier New,monospace;display:grid}.site-footer p:nth-child(2){justify-self:center}.site-footer a{justify-self:end}.site-footer a:hover{color:var(--coral)}@media (width<=960px){:root{--trace-width:30px}.site-header{grid-template-columns:1fr 1fr}.header-status{display:none}.hero{grid-template-columns:1fr;align-items:start;min-height:900px;padding-top:8rem}.hero:before{left:68%}.hero__type{align-self:start}.hero h1{font-size:clamp(4.2rem,16vw,8.5rem)}.hero__thesis{margin-left:0!important}.portrait{width:min(72vw,38rem);height:auto;position:absolute;bottom:-2rem;right:7%;margin:0!important}.section-intro,.work-scene,.trajectory,.contact{grid-template-columns:1fr}.section-intro{min-height:70svh}.section-intro>p:last-child{margin-top:1rem!important}.work-scene__visual{min-height:58svh}.work-scene__copy{padding-left:var(--page-gutter)}.contact__links{width:100%;min-width:0}.site-footer{grid-template-columns:1fr auto}.site-footer p:nth-child(2){display:none}}@media (width<=640px){:root{--page-gutter:1.1rem;--trace-width:0px}.execution-trace{display:none}.site-header{min-height:5.5rem;padding-top:1rem}.wordmark{grid-area:1/1;font-size:1.5rem}.menu-trigger{grid-area:1/2;width:3.2rem;min-width:3.2rem;min-height:3.2rem;padding:.55rem}.menu-trigger>span:first-child{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.menu-glyph{width:100%;height:100%}.menu-dialog nav a{grid-template-columns:2rem 1fr;padding:.25em 0;font-size:clamp(2.7rem,14vw,5rem);line-height:.9}.menu-dialog nav svg{display:none}.menu-dialog nav a>span{padding-top:.8em}.menu-dialog__footer{flex-direction:column;align-items:flex-start}.hero{min-height:max(844px,100svh);padding-top:7rem;padding-bottom:2.8rem}.hero:before{left:82%}.hero h1{font-size:clamp(3.4rem,15.5vw,5.15rem);line-height:.76}.hero h1 .hero__systems{font-size:.55em}.hero__thesis{max-width:26ch;font-size:.96rem;margin-top:1.5rem!important}.portrait{width:82vw;height:auto;bottom:-1rem;right:-4%}.hero__scroll{bottom:1rem}.current-role{min-height:75svh}.current-role__copy h2{margin-bottom:1.35rem;font-size:clamp(4.8rem,23vw,7rem);line-height:.92}.section-intro{flex-direction:column;justify-content:flex-end;gap:2rem;min-height:70svh;padding-top:6rem;padding-bottom:4rem;display:flex}.section-intro h2,.trajectory h2,.contact h2{font-size:clamp(3.5rem,16vw,5.6rem)}.work-scene{min-height:auto}.work-scene__visual{min-height:60vh}.system-visual{width:96%}.work-scene__copy{padding-top:4rem;padding-bottom:5rem}.work-scene__copy h3{font-size:clamp(2.85rem,13vw,4.8rem)}.work-scene--retrieve .work-scene__copy h3{font-size:clamp(2.65rem,11.5vw,4.25rem)}.proof__track p{grid-template-columns:1fr;gap:.7rem;width:18rem;min-height:11rem;padding:1.5rem}.proof__track strong{font-size:4.6rem}.trajectory{gap:4rem;padding-top:6rem;padding-bottom:6rem}.trajectory li{grid-template-columns:3.6rem 1fr;padding-bottom:2rem}.trajectory li strong{font-size:2.5rem}.contact{min-height:88svh;padding-top:6rem;padding-bottom:3rem}.contact__email{margin-top:2.5rem;font-size:1rem}.site-footer{padding-top:1.2rem;padding-bottom:1.2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero h1 span,.portrait,.locker-entry,.classroom-flow,.screen-flow,.screen-beam,.screen-signals circle,.proof__track{animation:none}.hero h1 span{opacity:1}}body{margin:0}@font-face{font-family:Avenir LT Pro;src:url(/assets/AvenirLTProLight-tMYDzlqc.otf)format("opentype");font-display:swap;font-style:normal;font-weight:300}@font-face{font-family:Avenir LT Pro;src:url(/assets/AvenirLTProBook-CTC4Sa6g.otf)format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:Avenir LT Pro;src:url(/assets/AvenirLTProMedium-DLxdhhKj.otf)format("opentype");font-display:swap;font-style:normal;font-weight:500}@font-face{font-family:Avenir LT Pro;src:url(/assets/AvenirLTProHeavy-D_JAgdUX.otf)format("opentype");font-display:swap;font-style:normal;font-weight:700}@font-face{font-family:Avenir LT Pro;src:url(/assets/AvenirLTProBlack-CzGX8io8.otf)format("opentype");font-display:swap;font-style:normal;font-weight:900}*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Avenir LT Pro,sans-serif}
