:root{--paper:#eeece5;--ink:#171715;--ink-2:#67665f;--rule:#17171529;--gut:clamp(16px, 2.4vw, 40px);--display:var(--font-chivo);--ui:var(--font-chivo);--text:var(--font-archivo);--disp-k:1.0887;--ui-size:13.5px;--ease:cubic-bezier(.2, .7, .1, 1);color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--paper);scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}ol,ul{list-style:none}button{font:inherit;color:inherit}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.grid{column-gap:var(--gut);padding:0 var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.disp{font-family:var(--display);letter-spacing:-.055em;font-weight:600}.mono{font-family:var(--ui);letter-spacing:.01em;color:var(--ink-2);font-size:12px}.u{display:inline-block;position:relative}.u:after{content:"";transform-origin:100%;height:1px;transition:transform .45s var(--ease);background:currentColor;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.u:focus-visible:after{transform-origin:0;transform:scaleX(1)}.hero{touch-action:pan-y pinch-zoom;height:100svh;min-height:600px;position:relative;overflow:hidden}.hero canvas{opacity:0;width:100%;height:100%;transition:opacity 1.2s var(--ease);display:block;position:absolute;inset:0}.hero canvas.ready{opacity:1}.top{top:var(--gut);z-index:2;position:absolute;left:0;right:0}.top nav{font-family:var(--ui);font-size:var(--ui-size);grid-column:7/13;justify-content:flex-end;gap:2em;display:flex}.hero-copy{left:0;right:0;bottom:var(--gut);z-index:2;pointer-events:none;position:absolute}.hero h1{font-size:calc(min(clamp(60px, 10.6vw, 190px) * var(--disp-k), (100vw - 2 * var(--gut)) / 6.6) * var(--fit-h,1));white-space:nowrap;grid-column:1/13;line-height:.86}.hero .sub{grid-column:1/6;max-width:26em;margin-top:clamp(18px,1.8vw,30px);font-size:clamp(16px,1.3vw,20px);line-height:1.4}section,footer{padding-top:clamp(96px,13vw,200px)}.head{border-top:1px solid var(--ink);grid-column:1/13;padding-top:12px}.head h2{font-family:var(--ui);font-size:var(--ui-size);font-weight:500}.project{row-gap:20px;margin-top:clamp(40px,5vw,72px)}.project+.project{margin-top:0}.project>*{padding-top:clamp(20px,2vw,28px)}.p-rule{border-top:1px solid var(--rule);grid-column:1/13;height:0;padding:0!important}.project:first-of-type .p-rule{display:none}.p-name{font-size:calc(clamp(44px, 5.2vw, 92px) * var(--disp-k) * var(--fit-p,1));white-space:nowrap;grid-column:1/4;line-height:.9}.p-body{flex-direction:column;grid-column:4/7;gap:18px;padding-bottom:clamp(48px,6vw,96px);display:flex}.p-body p{max-width:24em;font-size:clamp(16px,1.15vw,18px);line-height:1.45}.p-body .proof{color:var(--ink-2);max-width:26em;font-size:15px}.p-links{font-family:var(--ui);font-size:var(--ui-size);flex-wrap:wrap;gap:.4em 1.6em;margin-top:auto;display:flex}.p-viz{aspect-ratio:3/2;grid-column:7/13;align-self:start;position:relative}.p-viz canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.xp{grid-column:1/13;margin-top:clamp(32px,4vw,56px)}.xp>li{border-top:1px solid var(--rule)}.xp>li:last-child{border-bottom:1px solid var(--rule)}.xp-h{font:inherit}.xp-row{all:unset;box-sizing:border-box;cursor:pointer;column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));align-items:baseline;width:100%;padding:16px 0 18px;display:grid}.xp-row:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.xp .org{font-size:calc(clamp(24px, 2.4vw, 40px) * var(--disp-k) * var(--fit-x,1));white-space:nowrap;transition:transform .5s var(--ease);grid-column:1/6;line-height:1.05}.xp .what{font-family:var(--ui);font-size:var(--ui-size);color:var(--ink-2);grid-column:6/12}.xp .ln{column-gap:var(--gut);grid-template-columns:minmax(0,1fr) 5.5em;display:grid}.xp .ln+.ln{margin-top:4px}.xp .yr{white-space:nowrap;font-variant-numeric:tabular-nums}.xp .what small{font-size:inherit;margin-top:4px;display:block}.pm{grid-column:12/13;place-self:center end;width:13px;height:13px;display:none;position:relative}.xp-on .pm{display:block}.pm:before,.pm:after{content:"";background:var(--ink);height:1px;transition:transform .5s var(--ease);position:absolute;top:50%;left:0;right:0}.pm:after{transform:rotate(90deg)}.xp li.open .pm:after{transform:rotate(0)}.xp-more{grid-template-rows:1fr;display:grid}.xp-on .xp-more{transition:grid-template-rows .6s var(--ease)}.xp-on li:not(.open) .xp-more{grid-template-rows:0fr}.xp-more>div{min-height:0;overflow:hidden}.xp-in{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));padding:0 0 24px;display:grid}.xp-in>*{grid-column:6/11}.xp-in>*+*{margin-top:20px}.xp-on .xp-in>*{transition:opacity .35s, transform .5s var(--ease)}.xp-on li:not(.open) .xp-in>*{opacity:0;transform:translateY(-4px)}.xp-on li.open .xp-in>*{transition-delay:.12s}.xp-on li.open .xp-in>:nth-child(2){transition-delay:.22s}.xp-in p{font-size:16px;line-height:1.5}.xp-role h4{font-family:var(--ui);margin-bottom:6px;font-size:12.6px;font-weight:500}.xp-role h4 span{color:var(--ink-2);margin-left:.7em;font-weight:400}.interests{font-family:var(--ui);font-size:var(--ui-size);color:var(--ink-2);grid-column:6/12;margin-top:20px;line-height:1.6}.interests cite{font-style:italic}.contact{grid-column:1/13;margin-top:clamp(32px,4vw,56px)}.contact a{border-top:1px solid var(--rule);font-size:calc(clamp(36px, 5.6vw, 100px) * var(--disp-k));transition:padding .5s var(--ease);justify-content:space-between;align-items:baseline;padding:10px 0 14px;line-height:1;display:flex}.contact a:last-child{border-bottom:1px solid var(--rule)}.contact .arr{font-family:var(--text);transition:transform .5s var(--ease);font-size:.4em}.fine{padding:clamp(48px, 6vw, 96px) 0 var(--gut);color:var(--ink-2);font-size:13px;font-family:var(--ui);grid-column:1/13;justify-content:space-between;display:flex}@media (hover:hover) and (pointer:fine){.u:hover:after{transform-origin:0;transform:scaleX(1)}.xp-row:hover .org{transform:translate(10px)}.contact a:hover{padding-left:18px}.contact a:hover .arr{transform:translate(4px,-4px)}}@media (width<=760px){.top nav{flex-wrap:wrap;grid-column:1/13;justify-content:flex-start;gap:.5em 1.1em}.hero .sub,.p-name,.p-body,.p-viz{grid-column:1/13}.p-body{padding-bottom:8px}.p-viz{margin-bottom:56px}.xp .org{grid-column:1/12}.xp .what{grid-column:1/12;margin-top:6px}.xp-in>*,.interests{grid-column:1/13}}
